用途:在 Java 服务中实现或改进基于 OpenTelemetry 的分布式追踪,提升应用与集成层的可诊断性、一致性和运行安全性。
主要能力:讲解 OpenTelemetry 追踪基础;span 设计(边界、父子关系、操作命名);跨 HTTP、消息、异步任务与线程边界的上下文传播;语义约定与稳定属性命名;错误、状态与事件记录最佳实践;采样策略及性能与成本权衡;追踪属性的隐私与安全控制;追踪传播与 span 正确性的测试验证。
使用方式:按工作流推进——先定义追踪模型与关键流程,识别高价值请求与异步流,确定操作边界并选择符合语义约定的 span 名称与属性;再在关键边界添加 span,确保 HTTP 客户端/服务端、消息与执行器异步任务中上下文正确传播;随后统一记录状态/错误/事件,移除敏感数据,控制属性基数,并按环境配置采样与导出器;最后通过测试与运行时检查验证父子关系、传播连续性与后端可见性。应用追踪改动后运行 ./mvnw clean verify 或 mvn clean verify 验证。
适用场景:需要改进追踪、应用 OpenTelemetry 追踪、添加分布式追踪或重构追踪埋点的 Java 项目。
限制与约束:埋点必须正确保留上下文并避免泄露敏感数据;过度埋点与高基数属性会损害成本与信号质量。传播优先,先确保所有同步/异步边界上下文传播,再添加额外 span 细节;禁止在 span 属性或事件中存储密钥、凭据、令牌、原始载荷或 PII;用于聚合/搜索的属性避免无界值。详细指导、示例与约束见 references/183-observability-tracing-opentelemetry.md。