

# OPS04-BP05 实施分布式跟踪
<a name="ops_observability_dist_trace"></a>

 分布式跟踪提供了一种方法，可在请求通过分布式系统的各个组件时对其进行监控和可视化。通过从多个来源捕获跟踪数据并在一个统一视图中对其进行分析，团队可以更好地了解请求是如何流动的、哪里存在瓶颈以及优化工作的重点。 

 **期望的结果：** 全面了解流经分布式系统的请求，从而精确调试、优化性能和改善用户体验。 

 **常见反模式：** 
+  检测不一致：并非分布式系统中的所有服务都经过跟踪检测。 
+  忽略延迟：只关注错误，而不考虑延迟或性能逐渐下降的情况。 

 **建立此最佳实践的好处：** 
+ 全面了解系统：以可视化方式呈现请求从进入到退出的整个路径。
+  增强调试功能：快速识别出现故障或性能问题的地方。 
+  改善用户体验：监控并根据实际用户数据进行优化，确保系统满足现实需求。 

 **未建立这种最佳实践的情况下暴露的风险等级：** 高 

## 实施指导
<a name="implementation-guidance"></a>

 首先确定工作负载中所有需要检测的元素。将所有组件都考虑在内后，利用 AWS X-Ray 和 OpenTelemetry 之类的工具收集跟踪数据，以便使用 X-Ray 和 Amazon CloudWatch ServiceLens Map 等工具进行分析。定期与开发人员一起进行审查，并使用 Amazon DevOps Guru、X-Ray Analytics 和 X-Ray Insights 等工具来补充这些讨论，以挖掘更深层次的信息。根据跟踪数据确立警报，以便在结果面临风险时，按照工作负载监控计划中定义的流程发出通知。 

### 实施步骤
<a name="implementation-steps"></a>

 要有效地实施分布式跟踪，请执行以下操作： 

1.  **采用 [AWS X-Ray](https://aws.amazon.com/xray/)：** 将 X-Ray 集成到您的应用程序中，以深入了解其行为和性能并查明瓶颈。利用 X-Ray Insights 自动分析跟踪数据。 

1.  **检测您的服务：** 确认从 [AWS Lambda](https://aws.amazon.com/lambda/) 函数到 [EC2 实例](https://aws.amazon.com/ec2/)的每项服务都发送跟踪数据。您检测的服务越多，端到端视图就越清晰。 

1.  **纳入 [CloudWatch 真实用户监控](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM.html) 和 [合成监控](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries.html)：** 将真实用户监控（RUM）和合成监控与 X-Ray 集成。这允许捕捉现实世界的用户体验并模拟用户交互，以识别潜在问题。 

1.  **使用 [CloudWatch 代理](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html)：** 代理可以从 X-Ray 或 OpenTelemetry 发送跟踪，从而增强所获得见解的深度。 

1.  **使用 [Amazon DevOps Guru](https://aws.amazon.com/devops-guru/)：** DevOps Guru 使用来自 X-Ray、CloudWatch、AWS Config 和 AWS CloudTrail 的数据来提供可行的建议。 

1.  **分析跟踪数据：** 定期查看跟踪数据，以识别可能影响应用程序性能的模式、异常或瓶颈。 

1.  **设置警报：** 在 [CloudWatch](https://aws.amazon.com/cloudwatch/) 中针对异常模式或过长的延迟时间配置警报，以便于主动解决问题。 

1.  **持续改进：** 在添加或修改服务时，重新审视您的跟踪策略，以捕获所有相关数据点。 

 **实施计划的工作量级别：** 中 

## 资源
<a name="resources"></a>

 **相关最佳实践：** 
+  [OPS04-BP01 识别关键绩效指标](ops_observability_identify_kpis.md) 
+  [OPS04-BP02 实施应用程序遥测](ops_observability_application_telemetry.md) 
+  [OPS04-BP03 实施用户体验遥测](ops_observability_customer_telemetry.md) 
+  [OPS04-BP04 实施依赖项遥测](ops_observability_dependency_telemetry.md) 

 **相关文档：** 
+ [AWS X-Ray 开发人员指南 ](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html)
+ [ Amazon CloudWatch 代理用户指南 ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html)
+ [ Amazon DevOps Guru 用户指南 ](https://docs.aws.amazon.com/devops-guru/latest/userguide/welcome.html)

 **相关视频：** 
+ [ Use AWS X-Ray Insights ](https://www.youtube.com/watch?v=tl8OWHl6jxw)
+ [AWS on Air ft.Observability: Amazon CloudWatch and AWS X-Ray](https://www.youtube.com/watch?v=qBDBnPkZ-KI)

 **相关示例：** 
+ [ Instrumenting your Application with AWS X-Ray](https://aws.amazon.com/getting-started/hands-on/distributed-tracing-with-xray/)