Java中用Prometheus和Grafana监控Spring Boot应用需三步:暴露指标(加actuator和micrometer依赖并配置端点)、采集存储(配置Prometheus抓取/actuator/prometheus)、可视化展示(Grafana接入Prometheus并导入预置面板)。

Java 中用 Prometheus 和 Grafana 监控 Spring Boot 应用,核心是三步:暴露指标、采集存储、可视化展示。不需要改业务逻辑,靠配置和少量依赖就能跑起来。
加依赖并启用 Actuator 端点
在 pom.xml 中引入两个关键依赖:
-
spring-boot-starter-actuator:提供健康检查、指标端点等基础能力 -
micrometer-registry-prometheus:把 Micrometer 指标转成 Prometheus 可抓取的文本格式
Spring Boot 2.3+ 默认已集成 Micrometer,所以只要加对依赖,指标就自动有了。别漏掉配置项:
management:
endpoints:
web:
exposure:
include: prometheus, health, metrics
metrics:
export:
prometheus:
enabled: true
tags:
application: ${spring.application.name}
profile: ${spring.profiles.active}
启动后访问 /actuator/prometheus,能看到类似 jvm_memory_used_bytes{area="heap",id="PS Old Gen"} 1.2345e+08 的原始指标数据,说明这一步通了。
配 Prometheus 抓取目标
下载 Prometheus(官网最新版),修改 prometheus.yml,添加 job:
- job_name: 'springboot-app' metrics_path: '/actuator/prometheus' static_configs: - targets: ['localhost:8080']
如果应用部署在其他机器或容器里,把 targets 改成对应 IP 和端口。启动 Prometheus 后,打开 http://localhost:9090/targets,状态为 UP 就表示能正常拉取指标。
分析 Java Spring Boot 后端 Controller 代码,自动生成 Markdown 格式的接口文档。当用户说“生成 Java 接口文档”、“生成 API 文档”、“从 Spring 代码生成文档”时触发。
注意:Prometheus 默认每 15 秒拉一次,不支持主动推送;若服务实例动态变化(比如 K8s 环境),建议配合服务发现配置,而不是写死 IP。
用 Grafana 展示指标
安装 Grafana(官网下载),启动后访问 http://localhost:3000(默认账号 admin/admin)。进入 Data Sources → Add data source → 选 Prometheus,填入 http://localhost:9090,点 Save & Test。
导入现成面板更省事。搜索 ID 6756(Spring Boot JVM Dashboard)或 12856(Micrometer Spring Boot 2/3),直接导入。里面已预置内存使用率、线程数、HTTP 请求延迟、GC 次数等关键图表。
想看自定义业务指标?比如订单创建次数,代码里用 Counter.builder("order.created").register(meterRegistry) 记录,Grafana 里查 order_created_total 就行,标签(如 application、profile)会自动带过来。
常见问题提醒
有些坑容易踩,提前留意:
- 防火墙或网络策略可能拦截
/actuator/prometheus端点,生产环境建议加 Basic Auth 或反向代理限制访问 - 指标命名要规范,避免含空格、特殊字符;推荐用小写字母+下划线,比如
http_server_requests_seconds_sum - 高频打点(如每毫秒一次)可能拖慢应用,用
DistributionSummary替代Timer控制采样精度 - 如果 Grafana 面板数据为空,先确认 Prometheus 是否真有该指标(用
http://localhost:9090/graph手动输入 PromQL 查一下)
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










