在我的一个应用程序中,我希望一次监视各种服务,最好是以一种方式。
该应用程序使用NodeJS作为web服务器,以及WebPack监视器。这个应用程序还有一个PHP部分,它使用了Workerman和其他模块--我想从他们所有的模块中获取统计数据。
对于较小的视图,假设我有两个脚本:app.js和backend.php。JS文件是一个小型的way服务器,它提供React和其他内容的页面,PHP脚本用作通过AJAX访问数据库和在PHP中做其他更好的事情的方法。
我现在要做的是收集统计数据。例如,当有人连接到nodejs服务器时,我想增加一个名为"requests“的计数器,当通过PHP访问数据库中的特定内容时,我也想推入一个计数器。
有哪些系统可以让我收集跨语言的统计数据?我的软件堆栈是: Redis,MySQL,PHP,NodeJS。
发布于 2015-08-26 01:07:41
您可以尝试使用Axibase Time-Series Database社区版。这是免费的。它集成了用于警报的规则引擎和用于可视化的图形。有一个PHP客户端和statsd storage driver
披露:我为Axibase工作。
发布于 2015-08-11 16:05:15
两个选项--使用数据库(MySQL?)或者使用监控/分析工具。
第一个选项将为您提供灵活性,但需要您进行一些开发工作。
第二种选择需要部署监控工具和实现事件。为此,你可以使用web分析工具(很好,因为你可以使用它来监控后端流程,客户端事件和产品相关的事件,如果需要的话,所有这些都在同一个地方),如谷歌分析或http://piwik.org/……或者,你可以使用像Graphite这样的工具(与其他分析工具相比,graphite很奇怪,但它是有作用的),同样,你应该使用libs来向它推送统计数据,比如http://graphite.wikidot.com/:https://github.com/etsy/statsd
上面提到的任何一个都可以让你很好地监控东西……
在使用javascript API进行web分析的情况下,您应该在节点中构建包装器,并为PHP提供ping和发送事件名称的路由。瞧!
发布于 2015-08-21 18:06:14
您始终可以实现一些自定义跟踪,并将数据保存到现有的数据存储中。但是,正确的检测并不是那么容易。
我不建议使用MySql作为存储。插入的MySql性能不是很好,所以这可能会减慢应用程序的速度,并引入大量开销。
Redis速度很快,但对于时间事件和序列来说,它的结构不是很好。
有一些特殊的时间序列数据库是为处理日志、指标和时间序列而量身定做的:https://influxdb.com、http://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.com、http://newrelic.com、http://boundary.com
https://stackoverflow.com/questions/31930372
复制相似问题