監控框架 - prometheus - 參數指標


基於SpringBoot2.0+ Actuator metrics的監控(基於Oracle JDK9,G1)

引言

SpringBoot2在spring-boot-actuator中引入了micrometer,對1.x的metrics進行了重構,另外支持對接的監控系統也更加豐富(Atlas、Datadog、Ganglia、Graphite、Influx、JMX、NewRelic、Prometheus、SignalFx、StatsD、Wavefront)。本文以Prometheus為例闡述SpringBoot2.0的監控。

springboot2.0接入

pom.xml

<dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-actuator</artifactId>
      <version>2.1.7.RELEASE</version>
</dependency>
<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-registry-prometheus</artifactId>
    <version>1.1.5<version>
</dependency>

  

application.yml

#======================= prometheus配置 ========================================#
management:
  endpoints:
    web:
      exposure:
        include: "*"
  metrics:
    tags:
      application: ${spring.application.name}

 

注入bean

import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.actuate.autoconfigure.metrics.MeterRegistryCustomizer;

@Bean
MeterRegistryCustomizer<MeterRegistry> configurer(@Value("${spring.application.name}") String applicationName){
    return registry -> registry.config().commonTags("application", applicationName);
}

 

 

訪問

ip+端口/actuator/prometheus

 

SpringBoot2.0 Actuator監控指標分析

查看ip+端口/actuator/prometheus. 搜索指定關鍵字 注意關鍵字  jvm.memory.max  在搜索的時候應該是  jvm_memory_max

序號 參數 參數說明 是否監控 監控手段 重要度
--- JVM ---      
1 jvm.memory.max JVM最大內存      
2 jvm.memory.committed JVM可用內存 展示並監控堆內存和Metaspace 重要
3 jvm.memory.used JVM已用內存 展示並監控堆內存和Metaspace 重要
4 jvm.buffer.memory.used JVM緩沖區已用內存      
5 jvm.buffer.count 當前緩沖區數      
6 jvm.threads.daemon JVM守護線程數 顯示在監控頁面  
7 jvm.threads.live JVM當前活躍線程數 顯示在監控頁面;監控達到閾值時報警 重要
8 jvm.threads.peak JVM峰值線程數 顯示在監控頁面  
9 jvm.classes.loaded 加載classes數      
10 jvm.classes.unloaded 未加載的classes數      
11 jvm.gc.memory.allocated GC時,年輕代分配的內存空間      
12 jvm.gc.memory.promoted GC時,老年代分配的內存空間      
13 jvm.gc.max.data.size GC時,老年代的最大內存空間      
14 jvm.gc.live.data.size FullGC時,老年代的內存空間      
15 jvm.gc.pause GC耗時 顯示在監控頁面  
--- TOMCAT ---      
16 tomcat.sessions.created tomcat已創建session數      
17 tomcat.sessions.expired tomcat已過期session數      
18 tomcat.sessions.active.current tomcat活躍session數      
19 tomcat.sessions.active.max tomcat最多活躍session數 顯示在監控頁面,超過閾值可報警或者進行動態擴容 重要
20 tomcat.sessions.alive.max.second tomcat最多活躍session數持續時間      
21 tomcat.sessions.rejected 超過session最大配置后,拒絕的session個數 顯示在監控頁面,方便分析問題  
22 tomcat.global.error 錯誤總數 顯示在監控頁面,方便分析問題  
23 tomcat.global.sent 發送的字節數      
24 tomcat.global.request.max request最長時間      
25 tomcat.global.request 全局request次數和時間      
26 tomcat.global.received 全局received次數和時間      
27 tomcat.servlet.request servlet的請求次數和時間      
28 tomcat.servlet.error servlet發生錯誤總數      
29 tomcat.servlet.request.max servlet請求最長時間      
30 tomcat.threads.busy tomcat繁忙線程 顯示在監控頁面,據此檢查是否有線程夯住  
31 tomcat.threads.current tomcat當前線程數(包括守護線程) 顯示在監控頁面 重要
32 tomcat.threads.config.max tomcat配置的線程最大數 顯示在監控頁面 重要
33 tomcat.cache.access tomcat讀取緩存次數      
34 tomcat.cache.hit tomcat緩存命中次數      
--- CPU... ---      
35 system.cpu.count CPU數量      
36 system.load.average.1m load average 超過閾值報警 重要
37 system.cpu.usage 系統CPU使用率      
38 process.cpu.usage 當前進程CPU使用率 超過閾值報警  
39 http.server.requests http請求調用情況 顯示10個請求量最大,耗時最長的URL;統計非200的請求量 重要
40 process.uptime 應用已運行時間 顯示在監控頁面  
41 process.files.max 允許最大句柄數 配合當前打開句柄數使用  
42 process.start.time 應用啟動時間點 顯示在監控頁面  
43 process.files.open 當前打開句柄數 監控文件句柄使用率,超過閾值后報警 重要

監控dashboard可使用grafana。

 

常見運算符

     (a) = 等號 表示 精確匹配
    (b) != 表示 不等於提供的字符串
    (c) =~ 表示 正則匹配
    (d) !~ 表示 正則不匹配

prometheus使用文檔

https://fuckcloudnative.io/prometheus/3-prometheus/functions.html


免責聲明!

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



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