Metrics是一个给JAVA服务的各项指标提供度量工具的包,在JAVA代码中嵌入Metrics代码,可以方便的对业务代码的各个指标进行监控,同时,Metrics能够很好的跟Ganlia、Graphite结合,方便的提供图形化接口。基本使用方式直接将core包(目前稳定版本3.0.1)导入pom文件即可,配置如下:
com.codahale.metrics
metrics-core
3.0.1
core包主要提供如下核心功能:
Metrics Registries类似一个metrics容器,维护一个Map,可以是一个服务一个实例。
支持五种metric类型:Gauges、Counters、Meters、Histograms和Timers。
可以将metrics值通过JMX、Console,CSV文件和SLF4J loggers发布出来。
5种Metrics类型:
1. Gauges
Gauges是一个最简单的计量,一般用来统计瞬时状态的数据信息
2. Counter
Counter是Gauge的一个特例,维护一个计数器,可以通过inc()和dec()方法对计数器做修改。
3. Meters
Meters用来度量某个时间段的平均处理次数(request per second),每1、5、15分钟的TPS。比如一个service的请求数,通过metrics.meter()实例化一个Meter之后,然后通过meter.mark()方法就能将本次请求记录下来
4. Histograms
Histograms主要使用来统计数据的分布情况,最大值、最小值、平均值、中位数,百分比(75%、90%、95%、98%、99%和99.9%)。
5. Timers
Timers主要是用来统计某一块代码段的执行时间以及其分布情况,具体是基于Histograms和Meters来实现的。
report类型
官方文档:http://metrics.dropwizard.io/3.2.3/
代码库:https://github.com/dropwizard/metrics
更详细参考资料:
https://www.cnblogs.com/nexiyi/p/metrics_sample_1.html
http://www.cnblogs.com/nexiyi/p/metrics_sample_2.html