博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Metrics-Java版的指标度量工具
阅读量:6820 次
发布时间:2019-06-26

本文共 1564 字,大约阅读时间需要 5 分钟。

介绍

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发布出来。
五种Metrics类型:
  1. Gauges
    Gauges是一个最简单的计量,一般用来统计瞬时状态的数据信息,比如系统中处于pending状态的job。
  2. Counter
    Counter是Gauge的一个特例,维护一个计数器,可以通过inc()和dec()方法对计数器做修改。使用步骤与Gauge基本类似,在MetricRegistry中提供了静态方法可以直接实例化一个Counter。
  3. Meters
    Meters用来度量某个时间段的平均处理次数(request per second),每1、5、15分钟的TPS。比如一个service的请求数,通过metrics.meter()实例化一个Meter之后,然后通过meter.mark()方法就能将本次请求记录下来。统计结果有总的请求数,平均每秒的请求数,以及最近的1、5、15分钟的平均TPS。
  4. Histograms
    Histograms主要使用来统计数据的分布情况,最大值、最小值、平均值、中位数,百分比(75%、90%、95%、98%、99%和99.9%)。例如,需要统计某个页面的请求响应时间分布情况,可以使用该种类型的Metrics进行统计。
  5. Timers
    Timers主要是用来统计某一块代码段的执行时间以及其分布情况,具体是基于Histograms和Meters来实现的。

Health Checks

Metrics提供了一个独立的模块:Health Checks,用于对Application、其子模块或者关联模块的运行是否正常做检测。该模块是独立metrics-core模块的,使用时则导入metrics-healthchecks包。

com.codahale.metrics
metrics-healthchecks
3.0.1
 
使用起来和与上述几种类型的Metrics有点类似,但是需要重新实例化一个Metrics容器HealthCheckRegistry,待检测模块继承抽象类HealthCheck并实现check()方法即可,然后将该模块注册到HealthCheckRegistry中,判断的时候通过isHealthy()接口即可。

其他支持

metrics提供了对Ehcache、Apache HttpClient、JDBI、Jersey、Jetty、Log4J、Logback、JVM等的集成,可以方便地将Metrics输出到Ganglia、Graphite中,供用户图形化展示。

参考资料

转载于:https://www.cnblogs.com/yepei/p/5650328.html

你可能感兴趣的文章
HTML 页面中Buton 按钮提交,一个很坑的问题
查看>>
kitchen测试salt-formulas
查看>>
拿Nginx 部署你的静态网页
查看>>
23种设计模式
查看>>
制作自己的镜像(一)
查看>>
openstack命令整理
查看>>
服务Recipes
查看>>
mysql理解与基本用户管理
查看>>
解读电商平台10大促销活动类型
查看>>
Linux基本优化指南
查看>>
静态代理
查看>>
控件WebView显示网页
查看>>
Linux Mint下Spyder使用Python3
查看>>
MySQL数据库管理工具
查看>>
JP-Word简谱编辑 V4.35官方正式版
查看>>
Javascript面试题
查看>>
据说是iOS开发一年总结的笔记,有空看看
查看>>
修改 ubuntu 默认启动项
查看>>
Java递归删除目录中的子目录和文件的方法
查看>>
Android startActivity 隐式调用, 启动其他Activity过程
查看>>