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