使用metrics統計接口tps


metrics的簡單介紹

metrics是一種性能指標工具,有很多開源工具使用之來來作為其性能監控,如Hadoop,Kafka,Spark,JStorm等。

metrics使用最主要有三個東西:

  1. Metric Registries
  2. Metrics 度量指標的類型
  3. Metrics Report 數據展示方案

metricsRegistry

MetricRegistry類是Metrics的核心,它是存放應用中所有metrics的容器。也是我們使用 Metrics 庫的起點。

每一個 metric 都有它獨一無二的名字,Metrics 中使用句點名字,如 com.example.Queue.size。當你在 com.example.Queue 下有兩個 metric 實例,可以指定地更具體:com.example.Queue.requests.size 和 com.example.Queue.response.size 。使用MetricRegistry類,可以非常方便地生成名字。

五種Metrics類型

guages

最簡單的度量指標,只有一個簡單的返回值,或者叫瞬時狀態,例如,我們想衡量一個待處理隊列中任務的個數。

Counters

Counter 就是計數器,Counter 只是用 Gauge 封裝了 AtomicLong 。

Meters

Meter度量一系列事件發生的速率(rate),例如TPS。Meters會統計最近1分鍾,5分鍾,15分鍾,還有全部時間的速率。

Histograms

Histogram統計數據的分布情況。比如最小值,最大值,中間值,還有中位數,75百分位, 90百分位, 95百分位, 98百分位, 99百分位, 和 99.9百分位的值(percentiles)。

Timers

Timer其實是 Histogram 和 Meter 的結合, histogram 某部分代碼/調用的耗時, meter統計TPS。

怎么使用暫時不給出代碼了,先來看看如何統計接口的tps

Metrics Report

metrics提供了豐富的Report,如JMX、Console、CSV、SLF4J以及圖形、HTTP等等

統計接口tps

我采取的辦法是使用spring的interceptor與Meters ,Report使用的是ConsoleReport,代碼如下

package lew.bing.exp.spr; import com.codahale.metrics.ConsoleReporter; import com.codahale.metrics.Meter; import com.codahale.metrics.Metric; import com.codahale.metrics.MetricRegistry; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.HashMap; import java.util.Map; import java.util.concurrent.TimeUnit; /** * Created by 劉國兵 on 2018/7/14. */ public class MetricsInterceptor implements HandlerInterceptor { private Map<String,Meter> metricMap = new HashMap<>(); private MetricRegistry metrics = new MetricRegistry(); public MetricsInterceptor() { metricMap.put("/",metrics.meter("/")); ConsoleReporter reporter = ConsoleReporter.forRegistry(metrics) .convertRatesTo(TimeUnit.SECONDS) .convertDurationsTo(TimeUnit.MILLISECONDS) .build(); reporter.start(1, TimeUnit.SECONDS);// 1s報道一次 } @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { String servletPath = request.getServletPath(); if (metricMap.containsKey(servletPath)) { metricMap.get(servletPath).mark();// 統計tps } return true; } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { // 可以統計失敗以及成功次數 } } 

連續點擊瀏覽器請求接口,控制台打印如下:

18-7-14 18:36:08 ===============================================================

-- Meters ----------------------------------------------------------------------
/
             count = 3
         mean rate = 0.60 events/second
     1-minute rate = 0.60 events/second
     5-minute rate = 0.60 events/second
    15-minute rate = 0.60 events/second


18-7-14 18:36:09 ===============================================================

-- Meters ----------------------------------------------------------------------
/
             count = 10
         mean rate = 1.67 events/second
     1-minute rate = 0.60 events/second
     5-minute rate = 0.60 events/second
    15-minute rate = 0.60 events/second


18-7-14 18:36:10 ===============================================================

-- Meters ----------------------------------------------------------------------
/
             count = 15
         mean rate = 2.14 events/second
     1-minute rate = 0.60 events/second
     5-minute rate = 0.60 events/second
    15-minute rate = 0.60 events/second


18-7-14 18:36:11 ===============================================================

-- Meters ----------------------------------------------------------------------
/
             count = 21
         mean rate = 2.62 events/second
     1-minute rate = 0.60 events/second
     5-minute rate = 0.60 events/second
    15-minute rate = 0.60 events/second


18-7-14 18:36:12 ===============================================================

-- Meters ----------------------------------------------------------------------
/
             count = 27
         mean rate = 3.00 events/second
     1-minute rate = 0.60 events/second
     5-minute rate = 0.60 events/second
    15-minute rate = 0.60 events/second


18-7-14 18:36:13 ===============================================================

-- Meters ----------------------------------------------------------------------
/
             count = 33
         mean rate = 3.30 events/second
     1-minute rate = 1.03 events/second
     5-minute rate = 0.69 events/second
    15-minute rate = 0.63 events/second


18-7-14 18:36:14 ===============================================================

-- Meters ----------------------------------------------------------------------
/
             count = 38
         mean rate = 3.45 events/second
     1-minute rate = 1.03 events/second
     5-minute rate = 0.69 events/second
    15-minute rate = 0.63 events/second


18-7-14 18:36:15 ===============================================================

-- Meters ----------------------------------------------------------------------
/
             count = 44
         mean rate = 3.66 events/second
     1-minute rate = 1.03 events/second
     5-minute rate = 0.69 events/second
    15-minute rate = 0.63 events/second


18-7-14 18:36:16 ===============================================================

-- Meters ----------------------------------------------------------------------
/
             count = 50
         mean rate = 3.84 events/second
     1-minute rate = 1.03 events/second
     5-minute rate = 0.69 events/second
    15-minute rate = 0.63 events/second


18-7-14 18:36:17 ===============================================================

-- Meters ----------------------------------------------------------------------
/
             count = 55
         mean rate = 3.93 events/second
     1-minute rate = 1.03 events/second
     5-minute rate = 0.69 events/second
    15-minute rate = 0.63 events/second


18-7-14 18:36:18 ===============================================================

-- Meters ----------------------------------------------------------------------
/
             count = 61
         mean rate = 4.06 events/second
     1-minute rate = 1.40 events/second
     5-minute rate = 0.77 events/second
    15-minute rate = 0.66 events/second


18-7-14 18:36:19 ===============================================================

-- Meters ----------------------------------------------------------------------
/
             count = 67
         mean rate = 4.19 events/second
     1-minute rate = 1.40 events/second
     5-minute rate = 0.77 events/second
    15-minute rate = 0.66 events/second


18-7-14 18:36:20 ===============================================================

-- Meters ----------------------------------------------------------------------
/
             count = 72
         mean rate = 4.23 events/second
     1-minute rate = 1.40 events/second
     5-minute rate = 0.77 events/second
    15-minute rate = 0.66 events/second


18-7-14 18:36:21 ===============================================================

-- Meters ----------------------------------------------------------------------
/
             count = 78
         mean rate = 4.33 events/second
     1-minute rate = 1.40 events/second
     5-minute rate = 0.77 events/second
    15-minute rate = 0.66 events/second


18-7-14 18:36:22 ===============================================================

-- Meters ----------------------------------------------------------------------
/
             count = 83
         mean rate = 4.37 events/second
     1-minute rate = 1.40 events/second
     5-minute rate = 0.77 events/second
    15-minute rate = 0.66 events/second


18-7-14 18:36:23 ===============================================================

-- Meters ----------------------------------------------------------------------
/
             count = 89
         mean rate = 4.45 events/second
     1-minute rate = 1.73 events/second
     5-minute rate = 0.85 events/second
    15-minute rate = 0.68 events/second


18-7-14 18:36:24 ===============================================================

-- Meters ----------------------------------------------------------------------
/
             count = 92
         mean rate = 4.38 events/second
     1-minute rate = 1.73 events/second
     5-minute rate = 0.85 events/second
    15-minute rate = 0.68 events/second


18-7-14 18:36:25 ===============================================================

-- Meters ----------------------------------------------------------------------
/
             count = 92
         mean rate = 4.18 events/second
     1-minute rate = 1.73 events/second
     5-minute rate = 0.85 events/second
    15-minute rate = 0.68 events/second


18-7-14 18:36:26 ===============================================================

-- Meters ----------------------------------------------------------------------
/
             count = 92
         mean rate = 4.00 events/second
     1-minute rate = 1.73 events/second
     5-minute rate = 0.85 events/second
    15-minute rate = 0.68 events/second


18-7-14 18:36:27 ===============================================================

-- Meters ----------------------------------------------------------------------
/
             count = 92
         mean rate = 3.83 events/second
     1-minute rate = 1.73 events/second
     5-minute rate = 0.85 events/second
    15-minute rate = 0.68 events/second


18-7-14 18:36:28 ===============================================================

-- Meters ----------------------------------------------------------------------
/
             count = 92
         mean rate = 3.68 events/second
     1-minute rate = 1.64 events/second
     5-minute rate = 0.85 events/second
    15-minute rate = 0.68 events/second


18-7-14 18:36:29 ===============================================================

-- Meters ----------------------------------------------------------------------
/
             count = 92
         mean rate = 3.54 events/second
     1-minute rate = 1.64 events/second
     5-minute rate = 0.85 events/second
    15-minute rate = 0.68 events/second


18-7-14 18:36:30 ===============================================================

-- Meters ----------------------------------------------------------------------
/
             count = 92
         mean rate = 3.41 events/second
     1-minute rate = 1.64 events/second
     5-minute rate = 0.85 events/second
    15-minute rate = 0.68 events/second


18-7-14 18:36:31 ===============================================================

-- Meters ----------------------------------------------------------------------
/
             count = 92
         mean rate = 3.29 events/second
     1-minute rate = 1.64 events/second
     5-minute rate = 0.85 events/second
    15-minute rate = 0.68 events/second


18-7-14 18:36:32 ===============================================================

-- Meters ----------------------------------------------------------------------
/
             count = 92
         mean rate = 3.17 events/second
     1-minute rate = 1.64 events/second
     5-minute rate = 0.85 events/second
    15-minute rate = 0.68 events/second


18-7-14 18:36:33 ===============================================================

-- Meters ----------------------------------------------------------------------
/
             count = 92
         mean rate = 3.07 events/second
     1-minute rate = 1.51 events/second
     5-minute rate = 0.83 events/second
    15-minute rate = 0.68 events/second


18-7-14 18:36:34 ===============================================================

-- Meters ----------------------------------------------------------------------
/
             count = 92
         mean rate = 2.97 events/second
     1-minute rate = 1.51 events/second
     5-minute rate = 0.83 events/second
    15-minute rate = 0.68 events/second


18-7-14 18:36:35 ===============================================================

-- Meters ----------------------------------------------------------------------
/
             count = 92
         mean rate = 2.87 events/second
     1-minute rate = 1.51 events/second
     5-minute rate = 0.83 events/second
    15-minute rate = 0.68 events/second


18-7-14 18:36:36 ===============================================================

-- Meters ----------------------------------------------------------------------
/
             count = 92
         mean rate = 2.79 events/second
     1-minute rate = 1.51 events/second
     5-minute rate = 0.83 events/second
    15-minute rate = 0.68 events/second


18-7-14 18:36:37 ===============================================================

-- Meters ----------------------------------------------------------------------
/
             count = 92
         mean rate = 2.71 events/second
     1-minute rate = 1.51 events/second
     5-minute rate = 0.83 events/second
    15-minute rate = 0.68 events/second


18-7-14 18:36:38 ===============================================================

-- Meters ----------------------------------------------------------------------
/
             count = 92
         mean rate = 2.63 events/second
     1-minute rate = 1.39 events/second
     5-minute rate = 0.82 events/second
    15-minute rate = 0.68 events/second

簡單的使用metrics統計tps就介紹到這,metrics還有健康檢查,可以用來檢測連接數據庫是否可用等,感興趣的同學可以多了解了解。



作者:247609107a39
鏈接:https://www.jianshu.com/p/f9b911a651ff
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權並注明出處。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM