metrics
一些关于metrics的文档,demo以及源码学习笔记.
metrics主要用于度量。
起因
在研究了rocketmq的benchmark之后,又研究了kafka的benchmark。研究到kafka的benchmark时发现其用到了metrics。然后思索了下,其实这个也可以用在我们的基础平台上,可以是我们度量这个维度更模块化一些。换句话说,可以借鉴metrics的一些优秀的地方改造与完善我们基础平台现有的度量体系。
能力维度
收集方面主要包括:
- 计数 (提供了便捷的API mark())
- 自定义度量逻辑
- 柱状图统计
- 耗时统计
- 健康检查
输出方面主要包括:
- 控制台输出
- JMX输出(MBean)
- http (需要metrics-servlet部件)
对第三方开源部件的现成的metrics:
- EhCache
- Jetty
等等...
console的输出
17-2-2 11:32:15 ================================================================
-- Meters ----------------------------------------------------------------------
requests
count = 2000
mean rate = 8.66 events/second
1-minute rate = 9.41 events/second
5-minute rate = 188.95 events/second
15-minute rate = 311.52 events/second
requests1
count = 1000
mean rate = 4.33 events/second
1-minute rate = 4.70 events/second
5-minute rate = 94.47 events/second
15-minute rate = 155.76 events/second
JMX输出
题外话
metrics分层清晰
infoq上有一个twitter的监控系统分享,他们做的非常大: http://www.infoq.com/cn/presentations/how-twitter-monitoring-system-deal-with-billion-order-metrics?utm_campaign=rightbar_v2&utm_source=infoq&utm_medium=presentations_link&utm_content=link_text