用途:为 Spring Boot 应用添加可观测性能力,包括 Micrometer 指标、分布式追踪和结构化日志,属于关键优先级(P0)任务。
主要能力与实施流程:
- 在 pom.xml 中添加追踪与指标依赖。
- 在 application.yaml 中配置追踪、Actuator 与日志关联。
- 使用 MDC 上下文添加结构化日志。
- 通过 curl localhost:8080/actuator/prometheus 验证,并检查日志中的 trace ID。
分布式追踪:启用 trace/span ID 注入;跨线程(@Async)与客户端传播上下文;使用 OpenTelemetry 桥接(micrometer-tracing-bridge-otel)。
结构化日志:生产环境使用 JSON 日志(logstash-logback-encoder);用 MDC 记录上下文信息(如 userId、tenantId),并始终在 finally 块中清理 MDC;仅输出到 stdout,由容器负责日志转发。
Actuator 安全:用 Admin 角色保护 /actuator/**;启用 K8s 存活/就绪探针;用 curl localhost:8080/actuator/prometheus 确认指标已暴露。
反模式:不要使用 System.out,统一用 @Slf4j;不要开放 Actuator,需用 Admin 角色保护;不要自行实现追踪,应使用 Micrometer 配合 OTel 桥接。
限制:资料未提供具体依赖版本、完整配置示例与代码细节,相关实现示例需参考原文链接。