spring boot2配置Prometheus&Grafana
micrometer
micrometer简介
Springboot2在spring-boot-actuator中引入了micrometer,对1.x的metrics进行了重构,另外支持对接的监控系统也更加丰富(Atlas、Datadog、Ganglia、Graphite、Influx、JMX、NewRelic、Prometheus、SignalFx、StatsD、Wavefront
)。micrometer除了一些基本metrics与dropwizard-metrics相类似外,重点支持了tag。配合支持tag/label的监控系统,使得我们可以更加方便地对metrics进行多维度的统计查询及监控。
micrometer与spring boot集成架构
应用通过micrometer采集和暴露监控端点给prometheus,prometheus通过pull模式来采集监控时序数据信息。之后作为数据源提供给grafana进行展示。
spring boot2.X.X配置策略
添加依赖
在pom 文件中添加Prometheus 所需依赖
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-core</artifactId>
</dependency>
<!-- Micrometer Prometheus registry -->
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
<!-- Micormeter core dependecy -->
</dependency>
yaml文件
management:
endpoint:
metrics:
enabled: true
prometheus:
enabled: true
endpoints:
web:
exposure:
include: '*'
metrics:
export:
prometheus:
enabled: true
Metrics接口
地址:http://localhost:9109/actuator/prometheus
# 最大文件处理数量
process_files_max_files 10240.0
# Tomcat 当前活跃 session 数量
tomcat_sessions_active_current_sessions 0.0
# Tomcat session 最大存活时间
tomcat_sessions_alive_max_seconds 0.0
# 预估的池中缓冲区的总容量
jvm_buffer_total_capacity_bytes{id="direct",} 81920.0
jvm_buffer_total_capacity_bytes{id="mapped",} 0.0
# 当前守护进程的线程数量
jvm_threads_daemon_threads 23.0
# 全局最长一次请求的时间
tomcat_global_request_max_seconds{name="http-nio-8080",} 10.007
# HELP tomcat_sessions_active_max_sessions
# 最大活跃 session 数量
tomcat_sessions_active_max_sessions 0.0
# CPU 利用率
system_cpu_usage 0.2865671641791045
# 预估 Java 虚拟机用于此缓冲池的内存
jvm_buffer_memory_used_bytes{id="direct",} 81920.0
jvm_buffer_memory_used_bytes{id="mapped",} 0.0
# 当前在 Java 虚拟机中加载的类的数量
jvm_classes_loaded_classes 7910.0
# 为 Java 虚拟机提交的内存量(以字节为单位)
jvm_memory_committed_bytes{area="heap",id="PS Survivor Space",} 1.6252928E7
jvm_memory_committed_bytes{area="heap",id="PS Old Gen",} 1.53092096E8
jvm_memory_committed_bytes{area="heap",id="PS Eden Space",} 1.77733632E8
jvm_memory_committed_bytes{area="nonheap",id="Metaspace",} 4.1680896E7
jvm_memory_committed_bytes{area="nonheap",id="Code Cache",} 9502720.0
jvm_memory_committed_bytes{area="nonheap",id="Compressed Class Space",} 5767168.0
# 当前线程数,包括守护进程和非守护进程的线程
jvm_threads_live_threads 27.0
# 配置的 Tomcat 的最大线程数
tomcat_threads_conf