如何排除 X-Ray 中的跟踪限额错误?

1 分钟阅读
0

我想要排除错误“此跟踪已达到其最大分配限额。有关详细信息,请参阅‘AWS X-Ray 端点和限额’”。

简短描述

以下情况可能会导致跟踪文档超过 AWS X-Ray 中允许的限制:

  • 对于跟踪文档大小超过 500 KB 的跟踪,您发送的批处理分段数量有所增加。
  • 对于跟踪文档大小超过 100 KB 的跟踪,您发送了非批处理分段。
  • 您添加了自定义分段、元数据和注释,导致跟踪文档大小增加。

X-Ray 跟踪文档大小的上限会根据您一起发送的分段数量而动态变化。这是因为有超出限制跟踪功能。对于在附加到跟踪的批次中一起发送的大量分段,上限为 500 KB。对于按附加到跟踪的时间间隔发送的单个分段,上限为 100 KB。

发送跟踪的速度越快(批量发送的分段越多),压缩效率就越高。发送跟踪的速度越慢(按时间间隔逐个发送分段),跟踪拆分成多个修订版本的次数就越多。此外,发送跟踪的速度越慢,它消耗的后端缓存存储容量就越多。跟踪持续时间越长,产生的重复项越多,导致 X-Ray 收集的数据就越少。

解决方法

**注意:**如果在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请确保您使用的是最新的 AWS CLI 版本

X-Ray 控制台中查看跟踪,或运行以下命令来确认跟踪文档超过大小限制:

aws xray batch-get-traces --trace-ids <EXAMPLE_TRACE_ID>

**注意:**请将 EXAMPLE_TRACE_ID 替换为您的跟踪 ID。

对于更大的跟踪,X-Ray 会收集以下信息:

{
    "Id": "<EXAMPLE_TRACE_ID>",
    "Duration": 187.859,
    "LimitExceeded": true,
    "Segments": [
         ...
     ]
     ....
 }

**注意:**如果 LimitExceeded 参数为 true,则表示您超过了跟踪或分段限额。

对于跟踪文档大小超过 500 KB 的跟踪,批处理分段数量增加

当您将 Step Functions 与 X-Ray 集成时,就会出现这种情况。当您将 Step Functions 与 X-Ray 集成时,无法自定义 X-Ray 跟踪或不跟踪哪些内容。当您通过所有 AWS Lambda 函数传递跟踪 ID 时,分段数据将添加到跟踪 ID 中。

如果使用的是 Step Functions,请完成以下步骤:

  1. 转到 Step Functions,然后关闭主动跟踪。
  2. 仅针对关键工作流在 Lambda 函数之间传递跟踪 ID,且不要超过跟踪上限。
  3. 如果 Lambda 正在接收来自上游服务的跟踪标头,请删除 Lambda 执行角色的 PutTraceSegments 权限。上限会动态进行调整。

如果不是使用 Step Functions,请完成以下步骤:

  1. 调试您的代码,检查您是否为不同请求传递了相同的跟踪 ID。
  2. 断开跟踪。为此,请勿将调用中的跟踪 ID 传递给下游服务。
  3. 从断点创建新的跟踪 ID。

**注意:**如果为每个应用程序创建跟踪 ID,则您的跟踪计数会增加。为便于跟踪,请保留关键应用程序工作流,作为一个跟踪的一部分。

有关详细信息,请参阅 AWS X-Ray 和 Step Functions

跟踪文档大小超过 100 KB 的跟踪的非批处理分段

对于这种情况,请使用上一节中的解决方法。

断开跟踪,获得新上限 100 KB。或者,在应用程序中批处理更多分段,将上限增加到 500 KB。仅开放式遥测 SDK 支持批处理分段。如果使用的是 X-Ray SDK,请更改应用程序发送分段的方式。

添加了自定义分段、元数据和注释,导致文档大小增加

要减小跟踪文档的大小,请勿向同一个跟踪 ID 添加额外的自定义分段。请仅为必要的工作流添加自定义分段。此外,要减小跟踪文档的大小,请减少跟踪中的元数据和注释。

AWS 官方
AWS 官方已更新 1 年前