监视各种事情

在我的一个应用程序中,我想要一次监视多种服务,最多只能以一种方式监视。

该应用程序使用NodeJS作为Web服务器,以及WebPack观察器。 还有一个使用Workerman和其他模块的应用程序的PHP部分 – 我想从他们所有人收集统计数据。

对于较小的视图,让我们想象我有两个脚本: app.jsbackend.php 。 JS文件是一个小型的网页服务器,可以为网页提供React和东西,而PHP脚本可以作为通过AJAX访问数据库的一种方式,还可以做其他更好的PHP事情。

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

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

你可以试试Axibase时间序列数据库社区版。 免费。 它集成了警报的规则引擎和可视化的graphics。 有一个PHP客户端和statsd存储驱动程序

披露:我为Axibase工作。

有两种select – 使用数据库(MySQL?)或使用监视/分析工具。

第一个选项会给你灵活性,但会需要你的一些开发工作。

第二种select将需要部署监测工具和实施事件。 为此,您可以使用networking分析工具(因为您可以使用它来监控后端stream程,客户端事件和与产品相关的事件(如果需要的话),所有这些都在同一地点),比如Google Analytics或http://piwik.org / …或者你可以使用像Graphite.graphic(石墨是相当奇怪的比较其他分析工具,但它的目的)的东西,也为它,你应该使用库推动统计它像statsd: https : //github.com/etsy/statsd

任何提到将允许你很好地监视的东西…

在使用JavaScript API进行网站分析的情况下,您应该在节点中使用路由构build包装,以便PHP能够ping通并发送事件名称。VOILA

您始终可以实施一些自定义的跟踪并将数据保存到现有数据存储区。 但适当的仪器并不容易。

我不会推荐使用MySql作为存储。 插入的MySql性能不是很好,所以可能会减慢你的应用程序,并引入大量的开销。

Redis的速度很快,但对于时间事件和系列来说并不好。

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

但是,实际上,有一些工具可以满足您的需求。 此外,您可以select一些SAAS服务来logging日志和指标。 有一些服务为nodejs / php提供了良好的库文件,并提供了一些适当的工具来存储和分析数据。 虽然你每天less于10K的请求应该是便宜/免费的。

对于开源工具lib和托pipeinfluxdb + grafana或ELK堆栈看看http://devmetrics.io/logslib和日志/指标指南: http : //www.devmetrics.io/blog/post/logs-vs-metrics-最佳实践

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