本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 AWS X-Ray 跟踪中的请求 AWS AppSync
您可以使用在AWS X-Ray中跟踪请求的执行情况 AWS AppSync。您可以在所有 X-Ray 可用的 AWS 区域 AWS AppSync X-Ray 中使用。 X-Ray 为您详细概述了整个 GraphQL 请求。这使您能够分析 API 及其基础解析器和数据来源中的延迟。您可以使用 X-Ray 服务映射来查看请求的延迟,包括与集成的任何 AWS 服务 X-Ray。您还可以配置采样规则,根据您指定的标准来判断要记录 X-Ray 哪些请求以及以什么采样速率进行记录。
有关在中采样的更多信息 X-Ray,请参阅在 AWS X-Ray 控制台中配置采样规则。
设置和配置
您可以通过 AWS AppSync控制台启用 GraphQL API 的 X-Ray 跟踪。
-
登录 AWS AppSync 控制台。
-
从导航面板中选择 Settings (设置)。
-
在 “启用” 下 X-Ray,打开 “启用 X-Ray”。
-
选择 “保存” 。 X-Ray 现在,您的 API 已启用跟踪。
如果您使用 AWS CLI 或 AWS CloudFormation,还可以在创建新 AWS AppSync API 或更新现有 AWS AppSync API 时启用 X-Ray 跟踪,方法是将该xrayEnabled属性设置为true。
为 AWS AppSync API 启用 X-Ray 跟踪后,系统会自动在您的账户中创建具有相应权限的 AWS Identity and Access Management 服务相关角色。这允许 AWS AppSync 以安全的方式向发送跟踪。 X-Ray
使用以下方法追踪您的 API X-Ray
采样
通过使用采样规则,您可以控制您在 AWS AppSync 中记录的数据量,并即刻修改采样行为而不必修改或重新部署您的代码。例如,此规则对 API ID 为 3n572shhcpfokwhdnq1ogu59v6 的 GraphQL API 的请求进行采样。
-
规则名称 -
test-sample -
优先级 -
10 -
容器大小 -
10 -
固定速率 -
10 -
服务名称 -
* -
服务类型 -
AWS::AppSync::GraphQLAPI -
HTTP 方法 -
* -
资源 ARN —
arn:aws:appsync:us-west-2:123456789012:apis/3n572shhcpfokwhdnq1ogu59v6 -
主机 -
*
了解跟踪
当您为 GraphQL API 启用 X-Ray 跟踪时,您可以使用 X-Ray 跟踪详细信息页面来检查有关向 API 发出的请求的详细延迟信息。以下示例显示了此特定请求的跟踪视图以及服务地图。该请求是对名为 postAPI 且具有 Post 类型的 API 发出的,其数据包含在名为 PostTable-Example 的 Amazon DynamoDB 表中。
下面的跟踪映像对应于以下 GraphQL 查询:
query getPost { getPost(id: "1") { id title } }
getPost 查询的解析器使用底层 DynamoDB 数据来源。以下跟踪视图显示对 DynamoDB 的调用,以及查询执行的各个部分的延迟:
-
在上图中,
/getPost表示指向正在解析的元素的完整路径。在这种情况下,由于getPost是根Query类型上的字段,因此它直接显示在路径的根目录之后。 -
requestMappingTemplateEvaluation表示 AWS AppSync 在查询中评估此元素的请求映射模板所花的时间。 -
Query.getPost表示类型和字段(采用Type.field格式)。它可以包含多个子段,具体取决于 API 的结构和被跟踪的请求。-
DynamoDB表示附加到此解析器的数据来源。它包含对 DynamoDB 进行网络调用以解析该字段的延迟。 -
responseMappingTemplateEvaluation表示 AWS AppSync 在查询中评估此元素的响应映射模板所花的时间。
-
在中查看追踪记录时 X-Ray,通过选择子分段并浏览详细视图,可以获得有关区段中子 AWS AppSync 分段的更多上下文和元数据信息。
对于某些深度嵌套或复杂的查询,请注意,传送给 X-Ray 的区段 AWS AppSync 可能大于区段文档中AWS X-Ray 定义的区段文档允许的最大大小。 X-Ray 不显示超过限制的区段。