本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 X-Ray 见解
AWS X-Ray 会持续分析您账户中的跟踪数据,以识别应用程序中出现的紧急问题。当错误率超出预期范围时,它会创建见解来记录问题并跟踪问题产生的影响,直到问题被解决。借助见解,您可以:
-
确定应用程序哪里出现了问题,问题的根本原因,以及关联的影响。您可以从见解提供的影响分析中获取到某个问题的严重性和优先级。
-
随着时间推移,当问题发生变化时收到通知。见解通知可以与使用 Amazon EventBridge 的监控和警报解决方案相集成。这种集成让您可以根据问题的严重性发送自动化电子邮件或警报。
X-Ray 控制台可识别跟踪地图中正在发生事件的节点。若要查看见解摘要,请选择受影响的节点。还可以从左侧导航窗格中选择见解,查看和筛选见解。

当 X-Ray 在服务地图的一个或多个节点中检测到异常时,便会创建见解。该服务使用统计建模来预测应用程序中服务的预期故障率。前述示例中存在的异常为 AWS Elastic Beanstalk 中的故障数量增多。Elastic Beanstalk 服务器经历了多次 API 调用超时,导致下游节点出现异常。
在 X-Ray 控制台中启用见解
必须为希望使用见解功能的每个组都启用见解。可以从组页面启用见解。
注意
X-Ray 使用 GetInsightSummarts、GetInsightEvents 和 GetInsightImpactGraph API 操作从见解中检索数据。若要查看见解,请使用 awsxrayReadOnlyAccess IAM 托管策略,或将以下自定义策略添加到您的 IAM 角色:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "xray:GetInsightSummaries", "xray:GetInsight", "xray:GetInsightEvents", "xray:GetInsightImpactGraph" ], "Resource": [ "*" ] } ] }
有关更多信息,请参阅 AWS X-Ray 如何与 IAM 协同工作。
启用见解通知
可以使用见解通知为每个见解事件创建一则通知,例如,当创建见解、发生重大更改,或关闭见解时。客户可以通过 Amazon EventBridge 接收此类通知,并使用条件规则采取行动,例如 SNS 通知、Lambda 调用、将消息发布到 SQS 队列,或任意的目标 EventBridge 支持。我们会尽可能发送见解通知,但并不保证。有关目标的更多信息,请参阅 Amazon EventBridge 目标。
您可以从组页面为任意已启用见解的组启用见解通知。
配置 Amazon EventBridge 条件规则
-
导航到左侧导航栏中的规则,然后选择创建规则。
-
提供规则的名称和描述。
-
选择事件模式,然后选择自定义模式。提供一个包含
"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"
] } }
-
-
选择并配置当某个事件匹配此规则时,您想要调用的目标。
-
(可选)提供标签以便更轻松地识别和选择此规则。
-
选择创建。
注意
X-Ray 见解通知将事件发送到 Amazon EventBridge,后者暂不支持客户托管密钥。有关更多信息,请参阅 AWS X-Ray 中的数据保护。
见解
见解概述页面试图回答以下三个关键问题:
-
什么是潜在问题?
-
什么是根本原因?
-
什么是影响?
异常服务一节介绍了每个服务的时间表,展示了事件过程中故障率的变化情况。时间表显示了出现故障的跟踪数量,根据记录的流量,以实心条带指明预计的故障数量。事件窗口将见解的持续时间可视化。当 X-Ray 观察到指标出现异常并且启用见解后依旧存在的时候,事件窗口启动。
以下示例显示的是导致某个事件的故障出现增加:

根本原因一节显示了聚焦根本原因服务和受影响路径的跟踪地图。可以选择根本原因地图右上角的眼睛图标,以隐藏未受影响的节点。根本原因服务是 X-Ray 识别到异常的最远的下游节点。它可以代表您检测的某项服务,或是您服务使用检测客户端调用过的外部服务。例如,如果您调用带有检测的 AWS SDK 客户端的 Amazon DynamoDB,DynamoDB 中的故障数量会增强,从而导致将 DynamoDB 作为根本原因的见解。
若要进一步调查根本原因,请在根本原因图上选择查看根本原因详情。您可以使用分析页面来调查根本原因以及相关消息。有关更多信息,请参阅 与 Analytics 控制台交互。

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

此示例显示在事件发生过程中,在顶部节点带有故障的跟踪增加了。下游服务中的事件并不总是与客户端错误的增加相对应。
选择分析见解会在窗口中打开 X-Ray Analytics 控制台,您可以在其中深入研究产生见解的跟踪集。有关更多信息,请参阅 与 Analytics 控制台交互。
了解影响
AWS X-Ray 会衡量某个持续问题造成的影响,并作为一部分生成见解和通知。有两种方法来衡量影响:
-
对 X-Ray 组的影响
-
对根本原因服务的影响
此影响由在给定时间内发生故障或造成错误的请求比例决定。通过这种影响分析,您可以根据自己的特定情况得出问题的严重性和优先级。除了见解通知以外,影响还是控制台体验的一部分。
重复数据删除
AWS X-Ray 见解会重复去除多个微服务中存在的重复问题。它使用异常检测来确定是某个问题根本原因的服务,确定其他相关服务是否由于同一根本原因展现出异常行为,并将结果记录为单个见解。
查看见解的进展
X-Ray 会定期重新评估见解直到问题得到解决,并将每个显著的中间变化记录为通知,可以作为 Amazon EventBridge 事件发送。这让您能够构建流程和工作流以确定问题随时间推移如何变化,并采取适当操作,例如发送电子邮件,或与使用 EventBridge 的警报系统相集成。
您可以在影响页面上的影响时间表中查看事件活动。默认情况下,时间表会显示最受影响的服务,直到您选择另一项服务。

要查看某个事件的跟踪地图和示意图,请从影响时间表中选择该事件。跟踪地图显示应用程序中受事件影响的服务。在“影响分析”下,图表显示选定节点和组中客户端的故障时间表。

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