监控框架 - prometheus - 参数指标
阅读原文时间:2023年07月09日阅读:3

基于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的监控。

pom.xml

org.springframework.boot spring-boot-starter-actuator 2.1.7.RELEASE
io.micrometer micrometer-registry-prometheus 1.1.5

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 configurer(@Value("${spring.application.name}") String applicationName){
return registry -> registry.config().commonTags("application", applicationName);
}

ip+端口/actuator/prometheus

查看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) !~ 表示 正则不匹配

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