spring boot 集成 prometheus 的核心是通过 micrometer 暴露指标并由 prometheus server 拉取,需添加 spring-boot-starter-actuator 和 micrometer-registry-prometheus 依赖,配置启用 /actuator/prometheus 端点,验证返回 openmetrics 格式数据,并可注册 counter、gauge、@timed 等自定义业务指标。

Spring Boot 集成 Prometheus 监控应用性能指标,核心是通过 Micrometer 暴露标准指标,再由 Prometheus Server 主动拉取。整个过程不复杂,但关键配置和细节容易出错。
添加必要依赖
在 pom.xml 中引入两个核心依赖:
-
spring-boot-starter-actuator:提供健康检查、指标端点等基础能力 -
micrometer-registry-prometheus:将 Micrometer 指标转换为 Prometheus 可识别的文本格式
示例(建议指定版本,避免兼容问题):
启用并暴露 Prometheus 端点
在 application.yml 中配置 Actuator 和 Prometheus 导出:
- 必须显式开启
/actuator/prometheus端点,否则 Prometheus 抓不到数据 - 推荐只暴露必要端点,而非
include: "*"(安全考虑) - 可添加自定义标签,便于多实例区分,例如按服务名、IP、端口打标
配置示例:
management:endpoints:
web:
exposure:
include: prometheus, health, info
endpoint:
prometheus:
enabled: true
metrics:
export:
prometheus:
enabled: true
step: 15s
tags:
application: ${spring.application.name}
instance: ${spring.cloud.client.ip-address}:${server.port}
验证指标是否正常暴露
启动应用后,直接访问:
http://localhost:8080/actuator/prometheus
应返回符合 OpenMetrics 文本格式 的指标内容,例如:
# HELP jvm_memory_used_bytes The amount of used memory# TYPE jvm_memory_used_bytes gauge
jvm_memory_used_bytes{area="heap",id="PS Old Gen"} 1.2345678E7
# HELP http_server_requests_seconds The duration of requests
# TYPE http_server_requests_seconds summary
http_server_requests_seconds_count{method="GET",uri="/api/users",status="200"} 42
若返回 404,检查端点是否启用;若返回空或格式错误,确认依赖版本是否匹配 Spring Boot 版本。
注册自定义业务指标
除了 JVM、HTTP 等自动指标,你还可以用 Micrometer 注册业务相关指标:
- 用
Counter统计订单创建次数:counter("order.created.total").increment() - 用
Gauge暴露当前库存水位:gauge("inventory.level", inventoryService::getCount) - 用
@Timed注解自动记录方法耗时:@Timed(value = "user.service.find", histogram = true)
所有自定义指标会自动出现在 /actuator/prometheus 输出中,无需额外配置导出逻辑。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











