Monitoring and Metrics

优质
小牛编辑
126浏览
2023-12-01

Overview

这个领域包含Metrics数据的收集、存储、显示与告警四个领域.\ 其中收集又包括系统信息(CPU/内存)或第三方服务(MySQL),及应用、业务数据(TPS)两条分支。\ 有繁多的开源系统,各自覆盖了其中一个或多个领域。

每个软件只做自己的一部分,效果比大而全的系统效果要好。

Collectd

专门的系统数据采集项目: http://collectd.org/ ,基于C。

它的插件机制支持收集CPU/内存之外,也可以收集其他系统信息如Redis,MySQL,还有JMX的插件,也可以自己写脚本收集。支持将结果写到本地的RRDTool,或者远程的https://www.xnip.cn/doc/nllozjzk,或者mongodb,csv文件,http等。 还有Nagios插件将数据发给Nagios。

Metrics Library

Java开源的应用Metrics库有两个:Yammer CodehaleNetflix Servo,其中Netflix Servo完全不成熟,而Yammer Codehale也有种种不如意的地方(详见Metrics Library)

另外Statsd是另一个跨语言的有趣实现,是一个Node.js应用,开着TCP端口,所有metric数据都会实时发给它,它10秒汇总后再发给https://www.xnip.cn/doc/nllozjzk或其他地方。但全部metric都在网络上传输有点狠,还是更愿意 Yammer Codehale这种在JVM内计算再发送的方式。

SpringSide最后的做法是汇总了Yammer Codehale 和 Statsd 的优点,重新写了一次。

https://www.xnip.cn/doc/nllozjzk

https://www.xnip.cn/doc/nllozjzk基于Python,有三部分,一个是基于Twist的TCP Server,负责收集数据,然后存储成类似于RRDTool格式的精度递减数据,然后提供一个基于Django的Web应用,支持Restful的URL,输出图片或JSON数据,支持在URL里带有各种有用的函数。不考虑性能,https://www.xnip.cn/doc/nllozjzk非常完美。