Live:CloudOps Webinars & Hands-on Workshops ·Register ↗
跳到主要内容

AWS X-Ray

采样规则

使用 X-Ray 的采样规则可以在 AWS 控制台中配置,通过本地配置文件配置,或两者兼用。本地配置将覆盖在控制台中设置的规则。

信息

尽可能使用 X-Ray 控制台、API 或 CloudFormation。这允许您在运行时更改应用程序的采样行为。

您可以为以下每个条件分别设置采样率:

  • 服务名称(例如 billing、payments)
  • 服务类型(例如 EC2、Container)
  • HTTP 方法
  • URL 路径
  • 资源 ARN
  • 主机(例如 www.example.com)

最佳实践是设置一个采样率,该采样率能收集足够的数据来诊断问题和了解性能概况,同时不会收集过多的数据以至于难以管理。例如,对着陆页面的流量采样 1%,但对支付页面的请求采样 10%,这将很好地符合强大的可观测性实践。

有些事务您可能希望 100% 捕获。但请谨慎,因为 traces 不是为了对工作负载的访问进行取证审计!

注意

由于 traces 不是用于审计或取证分析,请避免 100% 的采样率。这可能会产生错误的期望,认为 X-Ray(默认使用 UDP 发射器)永远不会丢失事务 trace。

作为一般规则,捕获事务 traces 不应该给您的员工或 AWS 账单带来繁重的负担。在您了解工作负载发出的数据量时,慢慢地将 traces 添加到您的环境中。

信息

默认情况下,X-Ray SDK 每秒记录第一个请求和额外请求的 5%。 始终设置一个您可以容忍的储存大小。储存大小决定了您每秒捕获的最大请求数。这可以保护您免受恶意攻击、不必要的费用和配置错误的影响。

Daemon 配置

X-Ray daemon 旨在将发送遥测数据到 X-Ray 数据平面进行分析的工作卸载。因此,它不应该在源应用程序运行的服务器、容器或实例上消耗过多资源。

信息

最佳实践是在另一个实例或容器上运行 X-Ray daemon,从而强制实施关注点分离,并使您的源系统不受阻碍。

信息

在容器编排模式中,例如 Kubernetes,将 X-Ray daemon 作为 sidecar 运行是一种常见做法。

该 daemon 具有安全的默认设置,在大多数情况下可以在 EC2、ECS、EKS 或 Fargate 环境中运行而无需进一步配置。但是,对于混合环境和其他云环境,如果您使用 Direct Connect 或 VPN 来集成远程环境,您可能需要调整 Endpoint 以反映 VPC endpoint

提示

如果您必须在与源应用程序相同的实例或虚拟机上运行 X-Ray daemon,请考虑设置 TotalBufferSizeMB 以确保 X-Ray 不会消耗超出您能承受的系统资源。

注释

AWS X-Ray 支持将任意元数据与您的 traces 一起发送。这些称为注释。它们是一项强大的功能,允许您对 traces 进行逻辑分组。注释也是有索引的,便于查找与单个实体相关的 traces。

当您使用 X-Ray 的自动检测 SDK 时,注释可能不会自动出现。您需要将它们添加到您的代码中,这极大地丰富了您的 traces,并为您创造了生成 X-Ray Insights、基于注释的 metrics、告警和来自系统行为的异常检测模型的方法,以及在观察到影响用户的组件时自动创建工单和修复。

信息

使用注释来了解环境中的数据流。

信息

基于注释 traces 的性能和结果创建告警。