Metrics Java实时监控类库

介绍

Metrics是一个给JAVA服务的各项指标提供度量工具的包,在JAVA代码中嵌入Metrics代码,可以方便的对业务代码的各个指标进行监控,同时,Metrics能够很好的跟Ganglia、Graphite,influxdb 优秀监控工具整合使用,方便的提供图形化接口。

应用场景

  1. 每秒钟的请求数是多少(TPS)?

  2. 平均每个请求处理的时间?

  3. 请求处理的最长耗时?

  4. 请求处理的响应的直方图?

  5. 请求处理正确响应率?

  6. 等待处理的请求队列长度?

  7. 查看整个系统的的CPU使用率、内存占用、jvm运行情况;以及系统运行出错率等等一系列的实时数据采集时,最简单的方法就是在系统的入口、出口和关键位置设置埋点,然后将采集到的信息发送到实时监控平台或者存入到缓存和DB中做进一步的分析和展示。

Metrics的基本功能

Metrics提供了五个基本的度量类型:

  1. Gauges(度量)

  2. Counters(计数器)

  3. Histograms(直方图数据)

  4. Meters(TPS计算器)

  5. Timers(计时器)

Metrics中MetricRegistry是中心容器,它是程序中所有度量的容器,所有新的度量工具都要注册到一个MetricRegistry实例中才可以使用,尽量在一个应用中保持让这个MetricRegistry实例保持单例。