基于Metrics的微服务监控体系踩坑记录
最近在为公司新上线的微服务架构搭建监控体系,踩了不少坑,分享给大家避免重蹈覆辙。
问题背景
我们采用了Spring Boot + Spring Cloud微服务架构,服务数量达到20+,原本计划使用Prometheus + Grafana进行监控,但实际实施中遇到了诸多挑战。
核心踩坑点
1. Metrics收集不全 最初配置了spring-boot-starter-actuator,但在Grafana中发现很多关键指标缺失。通过排查发现需要手动添加以下依赖:
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-core</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
2. 指标维度缺失 服务间调用链路追踪不完整,通过添加OpenTelemetry集成解决:
management:
metrics:
web:
client:
enabled: true
server:
enabled: true
3. 数据存储瓶颈 Prometheus数据量增长过快,配置了retention策略:
storage:
tsdb:
retention.time: 15d
实践建议
建议采用多层监控架构,结合应用内Metrics、服务间追踪和基础设施监控,构建完整的监控闭环。
可复现步骤:
- 添加Micrometer相关依赖
- 配置Prometheus数据源
- 验证指标收集情况
- 设置告警规则

讨论