使用 X-Ray - Amazon X-Ray
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 X-Ray

Amazon X-Ray持续分析您账户中的跟踪数据,以识别应用程序中的紧急问题。当故障率超过预期范围时,它会创建洞察力,记录问题并跟踪其影响,直到问题得到解决。有了见解,您可以:

  • 确定应用程序中的问题发生在哪里、问题的根本原因以及相关影响。Insights 提供的影响分析使您能够得出问题的严重性和优先级。

  • 随着时间的推移,问题会发生变化时接收通知。使用亚马逊,Insights 通知可以与您的监控和警报解决方案集成 EventBridge。这种集成使您能够根据问题的严重性自动发送电子邮件或警报。

X-Ray 控制台可识别服务地图中存在持续事件的节点。要查看Insightsightsightsightsightsight 您还可以通过从左侧导航窗格中选择 Insights 来查看和筛选见解


      带有洞察摘要的服务映射节点。

X-Ray 在服务映射的一个或多个节点中检测到异常时会产生洞察力。该服务使用统计建模来预测应用程序中服务的预期故障率。在前述示例中,异常是来自的故障的增加Amazon Elastic Beanstalk。Elastic Beanstalk 服务器经历了多次 API 调用超时,导致下游节点出现异常。

在 X-Ray 控制台中启用洞察力

必须为要使用见解功能的每个群组启用见解。您可以从 “群组” 页面启用见解。

  1. 打开 X-Ray 控制台

  2. 选择现有群组或通过选择 “创建群组” 来创建新群组,然后选择 “启用 Insights”。有关在 X-Ray 控制台中配置组的更多信息,请参阅配置组

  3. 在左侧的导航窗格中,选择 Insights,然后选择要查看的Insights。

    
            X-Ray 控制台中的见解列表。
注意

X-Ray 使用 GetInsightSummaries GetInsight GetInsightEvents、、和 GetInsightImpactGraph API 操作从见解中检索数据。要查看见解,请使用 AWSXrayReadOnlyAccess IAM 托管策略或向您的 IAM 角色添加以下自定义策略:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "xray:GetInsightSummaries", "xray:GetInsight", "xray:GetInsightEvents", "xray:GetInsightImpactGraph" ], "Resource": [ "*" ] } ] }

有关更多信息,请参阅 Amazon X-Ray 如何与 IAM 协同工作

Enable Insig

使用见解通知,会为每个见解事件创建通知,例如见解何时创建、发生重大更改或关闭。客户可以通过亚马逊 EventBridge 事件接收这些通知,并使用条件规则来执行诸如 SNS 通知、Lambda 调用、向 SQS 队列发布消息或任何目标 EventBridge 支持之类的操作。Insights 通知将尽最大努力发出Insights,但不能保证。有关目标的更多信息,请参阅 Amazon Targ EventBridge ets

您可以从群组页面为任何启用了见解的群组启用见解通知。

Enable X-Ray 组的通知
  1. 打开 X-Ray 控制台

  2. 选择现有群组或通过选择创建群组来创建新群组,确保选中 “启用见解”,然后选择 “启用通知”。有关在 X-Ray 控制台中配置组的更多信息,请参阅配置组

配置亚马逊 EventBridge 条件规则
  1. 打开亚马逊 EventBridge 控制台

  2. 导航到左侧导航栏中的 “规则”,然后选择 “创建规则”。

  3. 为规则提供名称和描述。

  4. 选择 “事件模式”,然后选择 “自定义模式”。提供包含"source": [ "aws.xray" ]和的模式"detail-type": [ "AWS X-Ray Insight Update" ]。以下是可能模式的一些示例。

    • 匹配来自 X-Ray 洞察的所有传入事件的事件模式:

      { "source": [ "aws.xray" ], "detail-type": [ "AWS X-Ray Insight Update" ] }
    • 匹配指定state和的事件模式category

      { "source": [ "aws.xray" ], "detail-type": [ "AWS X-Ray Insight Update" ], "detail": { "State": [ "ACTIVE" ], "Category": [ "FAULT" ] } }
  5. 选择并配置当事件符合此规则时要调用的目标。

  6. (可选)提供标签以便更轻松地识别和选择此规则。

  7. 选择 Create(创建)

注意

X-Ray Insights 通知会将事件发送到亚马逊 EventBridge,而亚马逊目前不支持客户管理的密钥。有关更多信息,请参阅 Amazon X-Ray 中的数据保护

洞察力概述

见解的概述页面试图回答三个关键问题:

  • 是什么?

  • 是什么?

  • 是什么?

异常服务部分显示了每项服务的时间表,说明了事故期间故障率的变化。时间轴显示覆盖在实心波段上的故障轨迹数量,根据记录的流量量指示预期的故障数量。洞察的持续时间由 “事件” 窗口可视化。事件窗口从 X-Ray 观察到指标变为异常时开始,并在洞察活动期间持续存在。

以下示例显示了导致事故的故障的增加:


        X-Ray

根本原因部分显示了侧重于根本原因服务和受影响路径的服务地图。您可以通过选择根本原因地图右上角的眼睛图标来隐藏未受影响的节点。根本原因服务是 X-Ray 发现异常的最远的下游节点。它可以表示您检测过的服务,也可以表示您的服务使用仪表客户端调用的外部服务。例如,如果您使用仪表化的Amazon SDK 客户端调用 Amazon DynamoDB,则来自 DynamoDB 的错误的增加会导致我们以 DynamoDB 为根本原因。

要进一步调查根本原因,请在根本原因图表上选择 “查看根本原因详细信息”。您可以使用 “分析” 页面调查根本原因和相关消息。有关更多信息,请参阅 与 Analytics 控制台交互


        X-Ray

持续在地图上游的故障可能会影响多个节点并导致多种异常。如果错误一直传递给提出请求的用户,则结果是客户端故障。这是服务映射根节点的故障。影响图提供了整个团队的客户体验时间表。此体验是根据以下状态的百分比计算的:故障错误节流和正


        X-Ray 事件的影响图。

此示例显示了事件发生期间,根节点出现故障的迹线数量有所增加。下游服务中的事件并不总是与客户端错误的增加相对应。

选择 “分析洞察” 将在一个窗口中打开 X-Ray Analytics 控制台,您可以在其中深入研究导致洞察的一组痕迹。有关更多信息,请参阅 与 Analytics 控制台交互

了解影响

Amazon X-Ray衡量持续存在的问题所造成的影响,以此作为生成见解和通知的一部分。衡量影响的方法有两种:

  • 对 X-Ray 的影响

  • 对根本原因服务的影响

这种影响取决于在给定时间段内失败或导致错误的请求的百分比。这种影响分析允许您根据自己的特定情景推导出问题的严重性和优先级。除了见解通知外,这种影响还可作为控制台体验的一部分提供。

重复数据删除

Amazon X-Rayinsights 可消除多个微服务之间的重复问题。它使用异常检测来确定问题根本原因的服务,确定其他相关服务是否由于相同的根本原因而表现出异常行为,并将结果记录为单一见解。

查看见解的进展

X-Ray 会定期重新评估见解,直到问题得到解决,并将每项显著的中间变更记录为通知,该通知可以作为亚马逊 EventBridge 事件发送。这使您能够建立流程和工作流程,以确定问题在一段时间内发生了怎样的变化,并采取适当的措施,例如发送电子邮件或使用与警报系统集成 EventBridge。

您可以在 “检查” 页面的 “影响时间表” 中查看事件事件。默认情况下,时间轴会显示受影响最大的服务,直到您选择其他服务为止。


        使用影响时间表检查页面。

要查看事件的服务地图和图表,请从影响时间轴中进行选择。服务地图显示了您的应用程序中受事件影响的服务。在影响分析下,图表显示了所选节点和组中客户端的故障时间表。


        用于 X-Ray 洞察力的冲击分析图。

要更深入地查看事件中涉及的跟踪,请在 “检查” 页面上选择 “分析事件”。您可以使用 Analytics 页面优化跟踪列表并识别受影响的用户。有关更多信息,请参阅与 Analytics 控制台交互