微服务监控:Sleuth + Zipkin + Prometheus
文章目录
第一章:监控的意义——给系统做“全身体检”
想象你管理一家医院,病人从挂号、问诊、化验到取药要经过多个科室。如果某个环节卡住(比如化验科机器故障),整个流程就会停滞。微服务监控就像医院的体检中心,它帮你:
- 追踪流程:知道每个请求经过哪些服务(类似追踪病人动线)。
- 发现问题:定位响应慢的服务(像发现化验科排队过长)。
- 预警风险:提前发现服务器CPU飙高(像检测到病人体温异常)。
Sleuth 负责生成追踪日志,Zipkin 展示调用链路,Prometheus 监控系统指标,三者组成了微服务的“体检套餐”。
第二章:Sleuth——给每个请求贴上“病历号”
生活场景类比:
病人挂号后会拿到病历号,所有检查单、处方都关联这个号码。Sleuth 的作用就是为每个请求分配唯一ID(Trace ID),并在服务间传递,像病历号一样贯穿整个流程。
代码实战:生成追踪日志
步骤 1:添加依赖
<!-- 所有微服务中添加 Sleuth -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>
步骤 2:查看日志效果
访问任意接口,日志会自动添加追踪信息:
2023-10-01 10:00:00 [user-service,b3d7e8c5f2a1d9e3,9e8f7a6b5c4d3e2f] INFO ...
b3d7e8c5f2a1d9e3
是 Trace ID(全局唯一)9e8f7a6b5c4