Java服务监控【Prometheus+Grafana】
效果

环境准备
1. 安装Prometheus(Windows)
scrape_configs:
- job_name: 'java-app'
scrape_interval: 15s
metrics_path: '/actuator/prometheus'
static_configs:
- targets: ['localhost:8080']
prometheus.exe --config.file=prometheus.yml
2. 安装Grafana
grafana-server.exe --homepath "D:\soft\install\grafana\grafana"
3. 设置开机自启(Windows任务计划程序)
- 新建任务 → “操作”里设置:
- 程序或脚本:prometheus.exe
- 添加参数:–config.file=D:\soft\work\prometheus-3.6.0-rc.0.windows-amd64\prometheus.yml
- 起始于:D:\soft\work\prometheus-3.6.0-rc.0.windows-amd64
- Grafana 同理,指定 --homepath 目录

Java项目配置
1. 引入依赖
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
2. 启用 Spring Boot Actuator
management:
endpoints:
web:
exposure:
include: health,info,prometheus
endpoint:
prometheus:
enabled: true
3. 验证
http://localhost:8080/actuator/prometheus
Grafana配置
- 登录 Grafana → 添加数据源 → 选择 Prometheus
- URL: http://localhost:9090
- 导入 Dashboard(监控 JVM/服务器)
- 经典模板:
- JVM (Micrometer): 4701
- Spring Boot Stats: 10280
- Node Exporter(系统指标): 1860
- 通过 “Dashboards → New → Import” 导入
- 监控信息可包含:
- 系统级:CPU、内存、磁盘、网络
- JVM:堆内存、GC、线程数、类加载
- 应用级:请求 QPS、响应时间、异常数
- 数据库/自定义:SQL 执行时间、业务指标
- 监控数据编写,可以让ai帮忙生成相关代码Import导入使用
常见问题记录
- Prometheus 报错 non-compliant scrape target
解决:在 prometheus.yml 中指定
fallback_scrape_protocol: PrometheusText1.0.0
总结
- Java 项目通过 Micrometer + Prometheus 暴露指标
- 本地安装 Prometheus + Grafana 实现可视化监控
- 监控维度覆盖 系统、JVM、应用、数据库、自定义指标
- 注意定时任务 & 日志可能导致 内存瞬时飙升,要用分批处理 + GC 日志排查