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

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

Amazon API Gateway 主动追踪支持 Amazon X-Ray

当用户请求通过 Amazon API Gateway API 传输到底层服务时,您可以使用 X-Ray 对用户请求进行跟踪和分析。API Gateway 支持对所有 API Gateway 端点类型进行 X-Ray 跟踪:区域、边缘优化和私有。在所有可用 X-Ray Amazon Web Services 区域 的地方,你都可以在亚马逊 API Gateway 上使用 X-Ray。有关更多信息,请参阅《API Gateway 开发人员指南》中的使用 Amazon X-Ray跟踪 API Gateway API 执行情况

注意

X-Ray 仅支持通过 API Gateway 跟踪 REST API。

Amazon API Gateway 为以下各项提供主动追踪支持 Amazon X-Ray。在 API 阶段启用活动跟踪以对传入请求进行采样,并将跟踪发送到 X-Ray。

如何在 API 阶段启用主动跟踪
  1. 打开 API Gateway 控制台,网址为:https://console.aws.amazon.com/apigateway/

  2. 选择一个 API。

  3. 选择一个阶段。

  4. 日志/跟踪选项卡上,选择启用 X-Ray 跟踪,然后选择保存更改

  5. 在左侧导航面板中,选择资源

  6. 如需重新部署具有新设置的 API,请选择操作下拉列表,然后选择部署 API

API Gateway 使用您在 X-Ray 控制台中定义的采样规则来确定要记录的请求。您可以创建仅适用于 API 的规则,或者仅适用于包含特定标头的请求的规则。API Gateway 在分段的属性中记录标头,以及有关阶段和请求的详细信息。有关更多信息,请参阅配置采样规则

注意

使用 API Gateway HTTP 集成跟踪 REST API 时,每个分段的服务名称都设置为从 API Gateway 到您的 HTTP 集成端点的请求网址路径,从而在 X-Ray 跟踪地图上为每个唯一网址路径生成一个服务节点。大量的 URL 路径可能会导致跟踪地图超过 10,000 个节点的限制,从而导致错误。

如需最大限度减少 API Gateway 创建的服务节点数量,请考虑在 URL 查询字符串或通过 POST 的请求正文里传递参数。这两种方法都能确保参数不是 URL 路径的一部分,这可能会减少不同的 URL 路径和服务节点。

对于所有传入请求,API Gateway 将跟踪标头添加到还没有跟踪标头的传入 HTTP 请求。

X-Amzn-Trace-Id: Root=1-5759e988-bd862e3fe1be46a994272793
X-Ray 跟踪 ID 格式

X-Ray trace_id 由以连字符分隔的三组数字组成。例如,1-58406520-a006649127e371903a2de979。这包括:

  • 版本号,即1

  • 原始请求的时间,以 Unix 纪元时间表示,使用 8 个十六进制数字。

    例如,太平洋标准时间 2016 年 12 月 1 日上午 10:00,纪元时间为1480615200秒或十六58406520进制数字。

  • 跟踪的全局唯一的 96 位标识符,采用 24 个十六进制数字

如果禁用了主动跟踪,只要请求来自采样的请求并已开始跟踪,则该阶段仍会记录分段。例如,已检测的 Web 应用程序可通过 HTTP 客户端调用 API Gateway API。当您使用 X-Ray 开发工具包检测 HTTP 客户端时,将向包含采样决策的传出请求添加跟踪标头。API Gateway 读取跟踪标头并为采样请求创建分段。

如果您使用 API Gateway 为您的 API 生成 Java SDK,则可以通过在客户端生成器中添加请求处理程序来检测 SDK 客户端,就像手动检测 Amazon SDK 客户端一样。有关说明,请参阅使用适用于 Java 的 X-Ray SD Amazon K 追踪 SDK 调用