使用 AWS X-Ray 进行容器追踪
在可观测性最佳实践指南的这一部分中,我们将深入探讨以下与使用 AWS X-Ray 进行容器追踪相关的主题:
- AWS X-Ray 简介
- 使用 Amazon EKS 附加组件为 AWS Distro for OpenTelemetry 收集 Traces
- 结论
简介
AWS X-Ray 是一项服务,它收集关于应用程序处理的请求的数据,并提供工具供您查看、过滤和获取洞察,以识别问题和优化机会。对于应用程序的任何被追踪的请求,您不仅可以看到请求和响应的详细信息,还可以看到应用程序对下游 AWS 资源、微服务、数据库和 Web API 的调用信息。
对应用程序进行 instrument 涉及发送传入和传出请求以及应用程序内其他事件的 trace 数据,以及每个请求的元数据。许多 instrument 场景仅需要配置更改。例如,您可以对 Java 应用程序发 出的所有传入 HTTP 请求和对 AWS 服务的下游调用进行 instrument。有多种 SDK、agent 和工具可用于对应用程序进行 X-Ray tracing 的 instrument。有关更多信息,请参阅对应用程序进行 instrument。
我们将通过使用 Amazon EKS 附加组件为 AWS Distro for OpenTelemetry 从 Amazon EKS 集群收集 traces 来了解容器化应用程序追踪。
使用 Amazon EKS 附加组件为 AWS Distro for OpenTelemetry 收集 Traces
AWS X-Ray 提供应用程序追踪功能,对所有已部署的微服务提供深入洞察。使用 X-Ray,每个请求在流经相关微服务时都可以被追踪。这为 DevOps 团队提供了理解服务如何与对等服务交互所需的洞察,使他们能够更快地分析和调试问题。
AWS Distro for OpenTelemetry (ADOT) 是 OpenTelemetry 项目的安全、AWS 支持的发行版。用户只需对应用程序进行一次 instrument,即可使用 ADOT 将相关的 metrics 和 traces 发送到多个监控解决方案。Amazon EKS 现在允许用户在集群启动并运行后随时将 ADOT 作为附加组件启用。ADOT 附加组件包含最新的安全补丁和错误修复,并经过 AWS 验证可与 Amazon EKS 配合使用。
ADOT 附加组件 是 Kubernetes Operator 的一种实现,它是 Kubernetes 的软件扩展,利用自定义资源来管理应用程序及其组件。该附加组件监视名为 OpenTelemetryCollector 的自定义资源,并根据自定义资源中指定的配置设置管理 ADOT Collector 的生命周期。
ADOT Collector 具有 pipeline 的概念,它由三种关键类型的组件组成,即 receiver、processor 和 exporter。receiver 是数据进入 collector 的方式。它以特定格式接受数据,将其转换为内部格式,并传递给 pipeline 中定义的 processor 和 exporter。它可以是拉取或推送模式。Processor 是一个可选组件,用于在数据被接收和导出之间执行批处理、过滤和转换等任务。Exporter 用于确定将 metrics、logs 或 traces 发送到哪个目标。Collector 架构允许通过 Kubernetes YAML manifest 设置多个这样的 pipeline 实例。
下图展示了配置了 traces pipeline 的 ADOT Collector,它将遥测数据发送到 AWS X-Ray。Traces pipeline 由一个 AWS X-Ray Receiver 实例和 AWS X-Ray Exporter 组成,将 traces 发送到 AWS X-Ray。
