参考文章:
Spring Boot Actuator 可以帮助你监控和管理 Spring Boot 应用,比如健康检查、审计、统计和 HTTP 追踪等。所有的这些特性可以通过 JMX 或者HTTP endpoints 来获得。Actuator 同时还可以与外部应用监控系统整合,比如 Prometheus, Graphite, DataDog, Influx, Wavefront, New Relic等。这些系统提供了非常好的仪表盘、图标、分析和告警等功能,使得你可以通过统一的接口轻松的监控和管理你的应用。
Actuator使用Micrometer来整合上面提到的外部应用监控系统。这使得只要通过非常小的配置就可以集成任何应用监控系统。
添加依赖
要使用 Prometheus 监控 SpringBoot 应用,只需要在 pom 文件中添加如下两个依赖
1
2
3
4
5
6
7
8<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>修改 application.yml 配置文件,分别在 spring, management, server 代码块增加以下内容,对外暴露监控端点指标
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24spring:
application:
name: qdmwms
... 省略 N 行 ...
management:
endpoints:
web:
exposure:
include:
- 'prometheus'
- 'health'
- 'info'
jmx:
exposure:
include: '*'
metrics:
tags:
application: ${spring.application.name}
... 省略 N 行 ...
server:
port: 18100
tomcat:
mbeanregistry:
enabled: true重启应用,访问
https://localhost:18100/actuator/prometheus
,查看指标
配置 Prometheus
配置 Prometheus 采集指标
- 编辑 prometheus.yml 配置文件,在最下面添加以下内容
1
2
3
4
5
6
7
8
9
10
11
12
13# 以下配置是需要监控 Springboot 的 JVM 指标的 Job
- file_sd_configs:
- files:
- 'configs/springboot.yml'
refresh_interval: 10s
job_name: 'springboot'
metrics_path: /actuator/prometheus
metric_relabel_configs:
relabel_configs:
- source_labels: [__address__]
regex: (.*):(\d+)
target_label: instance
replacement: $1- 新增 configs/springboot 配置文件,内容如下
1
2
3
4
5
6
7- labels:
env: 'test'
region: 'dg2'
project: 'qdmwms'
targets:
- '192.168.55.65:18100'
- '192.168.55.63:18100'刷新 Prometheus 配置
1
curl -X POST http://localhost:9090/-/reload
查看 Prometheus 的 web 界面 Target 选项
配置 Grafana
- 从 Grafana 官网寻找 JVM 监控的 Dashboard,然后导入到 Grafana,效果如下