【问题标题】:Monitor a variety of things监控各种事物
【发布时间】:2015-08-10 22:42:41
【问题描述】:

在我的一个应用程序中,我想同时监控各种服务,而且最多只能以一种方式监控。

该应用程序使用 NodeJS 作为 Web 服务器,以及 WebPack 观察器。该应用程序还有一个 PHP 部分使用 Workerman 和其他 rmodules - 我想从所有这些模块中收集统计信息。

对于较小的视图,假设我有两个脚本:app.jsbackend.php。 JS 文件是一个小型网络服务器,它为页面提供 React 和其他东西,而 PHP 脚本用作通过 AJAX 访问数据库并执行其他更好的 PHP 操作的方式。

我现在想做的是收集统计数据。就像当有人连接到 nodejs 服务器时,我想将一个名为“requests”的计数器提高一个,当通过 PHP 访问数据库中的特定内容时,我也想推送一个计数器。

有哪些系统可以让我收集跨语言的统计信息?我的软件堆栈是:Redis、MySQL、PHP、NodeJS。

【问题讨论】:

  • 如果您尝试从多个进程持续收集数据,那么您可能只需要一个多用户数据库,这样每个进程只要有一些数据要记录就可以更新一个数据库。然后,您同样可以使用数据库从数据库生成报告(搜索、查询等)。

标签: php node.js monitoring


【解决方案1】:

你可以试试Axibase Time-Series Database社区版。免费。它集成了用于警报的规则引擎和用于可视化的图表。有一个PHP客户端和statsd storage driver

披露:我为 Axibase 工作。

【讨论】:

  • 正在调查。因为它有一个免费版本,它看起来非常强大和有趣。有任何已知的客户端库吗?或者我应该问,PHP 和 NodeJS 客户端可用吗?
  • 目前支持的客户端库有 5 个:Java、R、PHP、Python 和 Ruby。其中一些可以写入和读取数据,而另一些如 R 仅用于读取数据。我是否正确,您基本上需要在 PHP 和 nodejs 页面和函数中增加计数器?
  • 是的。我想跟踪各个点的表现。所以它只是关于写作,而不是关于阅读。显示收集的数据时需要阅读。
  • 如果你需要可视化,内置的小部件应该覆盖它:axibase.com/products/axibase-time-series-database/visualization/…
  • @IngwiePhoenix:Node library 在此答案发布一个月后发布。
【解决方案2】:

两个选项 - 使用数据库(MySQL?)或使用监控/分析工具。

第一个选项将为您提供灵活性,但需要您进行一些开发工作。

第二个选项需要部署监控工具和实施事件。为此,您可以使用网络分析工具(很好,因为如果需要,您可以使用它来监控后端流程、客户端事件和产品相关事件,并且都在同一个地方),例如 Google Analytics 或 http://piwik.org/... 或你可以使用像 Graphite http://graphite.wikidot.com/ 之类的东西(与其他分析工具相比,石墨很奇怪,但它可以达到目的),同样你应该使用库来推送统计信息,比如 statsd:https://github.com/etsy/statsd

任何提到的都可以让你很好地监控东西......

如果使用 javascript API 进行 Web 分析,您应该在节点中构建包装器,并使用 PHP 的路由来 ping 并发送事件名称...瞧

【讨论】:

  • 我找到了 StatsD 和 Graphite,正如你所提到的,它们的几率很大。但它们似乎是为数不多的用于监控的自托管服务之一。我看到的其他系统是 SaaS 系统,我必须为此付费。但我只是一个没有收入的单人开发军队(:......你知道我可以在我自己的服务器上部署的 Graphite+Statsd 的 osme 替代品吗?
  • Piwik 是自托管的,但它是网络分析...我不知道任何其他自托管监控工具
【解决方案3】:

您始终可以实现一些自定义跟踪并将数据保存到现有数据存储中。但是正确的仪器并不那么容易。

我不建议使用 MySql 作为存储。 MySql 的插入性能不太好,因此可能会减慢您的应用程序并引入大量开销。

Redis 速度很快,但对于时间事件和系列来说结构不佳。

有一些特殊的时间序列数据库专门用于处理日志、指标和时间序列:https://influxdb.comhttp://graphite.wikidot.com/http://elastic.co、...

但是,实际上,有一些开箱即用的工具可以满足您的需求。此外,您可以为日志和指标选择一些 SAAS 服务。 有些服务既为 nodejs/php 提供了良好的库,又为存储数据和分析数据提供了适当的工具堆栈。 虽然您每天的请求少于 10k,但应该便宜/免费。

对于开源仪器库和托管的 influxdb+grafana 或 ELK 堆栈,请查看 http://devmetrics.io/logslib 和日志/指标指南:http://www.devmetrics.io/blog/post/logs-vs-metrics-best-practices

有关专有工具,请查看http://datadoghq.comhttp://newrelic.comhttp://boundary.com

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-15
    • 2011-01-16
    • 2011-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多