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

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

使用 X-Ray 见解

Amazon X-Ray 持续分析您账户中的跟踪数据,以识别应用程序中出现的紧急问题。当错误率超出预期范围时,它会创建见解来记录问题并跟踪问题产生的影响,直到问题被解决。借助见解,您可以:

  • 确定应用程序哪里出现了问题,问题的根本原因,以及关联的影响。您可以从见解提供的影响分析中获取到某个问题的严重性和优先级。

  • 随着时间推移,当问题发生变化时收到通知。Insights 通知可以通过 Amazon EventBridge 与您的监控和警报解决方案集成。这种集成让您可以根据问题的严重性发送自动化电子邮件或警报。

X-Ray 控制台可在追踪图中识别正在发生事件的节点。若要查看见解摘要,请选择受影响的节点。还可以从左侧导航窗格中选择见解,查看和筛选见解。


      带有洞察摘要的跟踪地图节点。

当 X-Ray 在服务地图的一个或多个节点中检测到异常时,便会创建见解。该服务使用统计建模来预测应用程序中服务的预期故障率。在前面的示例中,异常是故障的 Amazon Elastic Beanstalk增加。Elastic Beanstalk 服务器经历了多次 API 调用超时,导致下游节点出现异常。

在 X-Ray 控制台中启用见解

必须为希望使用见解功能的每个组都启用见解。可以从页面启用见解。

  1. 打开 X-Ray 控制台

  2. 选择现有组或通过选择创建组创建一个新组,然后选择启用见解。有关如何在 X-Ray 控制台中配置组的更多信息,请参阅配置组

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

    
            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 配合使用

启用洞察通知

可以使用见解通知为每个见解事件创建一则通知,例如,当创建见解、发生重大更改,或关闭见解时。客户可以通过 Amazon EventBridge 事件接收这些通知,并使用条件规则采取诸如 SNS 通知、Lambda 调用、向 SQS 队列发布消息或任何目标支持的操作。 EventBridge 我们会尽可能发送见解通知,但并不保证。有关目标的更多信息,请参阅 Amazon EventBridge 目标

您可以从页面为任意已启用见解的组启用见解通知。

为 X-Ray 组启用通知
  1. 打开 X-Ray 控制台

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

配置 Amazon EventBridge 条件规则
  1. 打开 Amazon 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" ] }
    • 事件模式要匹配指定的 statecategory

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

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

  7. 选择创建

注意

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

见解

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

  • 什么是潜在问题?

  • 什么是根本原因?

  • 什么是影响?

异常服务一节介绍了每个服务的时间线,展示了事件过程中故障率的变化情况。时间线显示了出现故障的跟踪数量,根据记录的流量,以实心条带指明预计的故障数量。事件窗口将见解的持续时间可视化。当 X-Ray 观察到指标出现异常并且启用见解后依旧存在的时候,事件窗口启动。

以下示例显示的是导致某个事件的故障出现增加:


        X-Ray 见解的概述页面。

根本原因” 部分显示了以根本原因服务和受影响路径为重点的跟踪地图。可以选择根本原因地图右上角的眼睛图标,以隐藏未受影响的节点。根本原因服务是 X-Ray 识别到异常的最远的下游节点。它可以代表您检测的某项服务,或是您服务使用检测客户端调用过的外部服务。例如,如果您使用 Amazon 经过检测的软件开发工具包客户端调用 Amazon DynamoDB,那么 DynamoDB 错误的增加会导致以 DynamoDB 为根本原因的见解。

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


        X-Ray 见解的概述页面。

在地图中继续上游的故障会影响多个节点,并会导致多种异常。如果某个故障一直传回到发出请求的用户,就会出现客户端故障。这是追踪地图根节点的故障。影响示意图为整个组的客户端体验提供了时间线。根据以下状态的比例来计算此体验:故障错误瓶颈没错


        X-Ray 事件的影响图。

此示例显示在事件发生过程中,在顶部节点带有故障的跟踪增加了。下游服务中的事件并不总是与客户端错误的增加相对应。

选择分析见解会在窗口中打开 X-Ray Analytics 控制台,您可以在其中深入研究产生见解的跟踪集。有关更多信息,请参阅与 Analytics 控制台交互

了解影响

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

  • 对 X-Ray 的影响

  • 对根本原因服务的影响

此影响由在给定时间内发生故障或造成错误的请求比例决定。通过这种影响分析,您可以根据自己的特定情况得出问题的严重性和优先级。除了见解通知以外,影响还是控制台体验的一部分。

重复数据删除

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

查看见解的进展

X-Ray 会定期重新评估见解,直到它们得到解决,并将每项明显的中间更改记录为通知,该通知可以作为 Ama EventBridge zon 事件发送。这使您能够构建流程和工作流程以确定问题如何随时间推移而发生变化,并采取适当的措施,例如发送电子邮件或使用 EventBridge与警报系统集成。

您可以在影响页面上的影响时间线中查看事件活动。默认情况下,时间线会显示最受影响的服务,直到您选择另一项服务。


        检查包含影响时间线的页面。

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


        X-Ray 见解的影响分析图。

若要更加深入地了解某个事件中涉及的跟踪,请在检查页面上选择分析事件。可以使用分析页面来优化跟踪列表并确定受影响的用户。有关更多信息,请参阅 与 Analytics 控制台交互