Metrics-Java版的指標度量工具

介紹

Metrics是一個給JAVA服務的各項指標提供度量工具的包,在JAVA代碼中嵌入Metrics代碼,能夠方便的對業務代碼的各個指標進行監控,同時,Metrics可以很好的跟Ganlia、Graphite結合,方便的提供圖形化接口。基本使用方式直接將core包(目前穩定版本3.0.1)導入pom文件便可,配置以下:
git

<dependency>
    <groupId>com.codahale.metrics</groupId>
    <artifactId>metrics-core</artifactId>
    <version>3.0.1</version>
</dependency>

core包主要提供以下核心功能: github

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),每一、五、15分鐘的TPS。好比一個service的請求數,經過metrics.meter()實例化一個Meter以後,而後經過meter.mark()方法就能將本次請求記錄下來。統計結果有總的請求數,平均每秒的請求數,以及最近的一、五、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包。 apache

<dependency>                                   
 	<groupId>com.codahale.metrics</groupId>
       	<artifactId>metrics-healthchecks</artifactId>
 	<version>3.0.1</version>
</dependency>

使用起來和與上述幾種類型的Metrics有點相似,可是須要從新實例化一個Metrics容器HealthCheckRegistry,待檢測模塊繼承抽象類HealthCheck並實現check()方法便可,而後將該模塊註冊到HealthCheckRegistry中,判斷的時候經過isHealthy()接口便可。

其餘支持

metrics提供了對Ehcache、Apache HttpClient、JDBI、Jersey、Jetty、Log4J、Logback、JVM等的集成,能夠方便地將Metrics輸出到Ganglia、Graphite中,供用戶圖形化展現。 工具

參考資料

http://metrics.codahale.com/oop

https://github.com/dropwizard/metricsspa

http://blog.csdn.net/scutshuxue/article/details/8350135.net

http://blog.synyx.de/2013/09/yammer-metrics-made-easy-part-i/blog

http://blog.synyx.de/2013/09/yammer-metrics-made-easy-part-ii/繼承

http://wiki.apache.org/hadoop/HADOOP-6728-MetricsV2接口

相關文章
相關標籤/搜索