分布式追踪:从实践到部署的全面指南
1. 分布式追踪在 CI/CD 中的应用
分布式追踪可以作为 CI/CD 框架的一部分,用于记录构建和部署过程中各个部分所花费的时间。它可以集成到创建虚拟机或配置容器的任务运行器中,帮助我们了解构建和部署生命周期中哪些部分最耗时。此外,对于提供 API 服务的应用,追踪还能为其增加价值。如果已经对后端执行时间进行追踪,还可以将部分追踪数据提供给客户,帮助他们对自己的软件进行性能分析。
2. 仪器化质量检查清单
在对现有服务进行仪器化或为新服务创建仪器化指南时,有一份确保整个应用程序仪器化质量的检查清单会很有帮助。以下是详细的检查清单:
- Span 状态和创建 :
- 给定 span 下的所有错误条件应将 span 状态设置为错误状态。
- RPC 框架结果代码应映射到 span 状态(如内部错误、未找到等)。
- 所有启动的 span 都应完成,尽可能在不可恢复错误的情况下也是如此。
- Span 应仅代表对服务请求生命周期具有语义重要性的工作,尽量避免在仅接收合成流量的端点(如 /status 或 /health 端点)周围创建 span。
- Span 边界 :
- 出口和入口 span 应具有适当的标签(设置 SpanKind)。
- 出口和入口 span 应具有适当的关系(客户端/服务器、消费者/生产者)。
- 内部 span 应正确标记,不暗示远程调用。
- 属性 :
- Span 应包含其所代表服务的版本属