我想要排除错误“此跟踪已达到其最大分配限额。有关详细信息,请参阅‘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,请完成以下步骤:
- 转到 Step Functions,然后关闭主动跟踪。
- 仅针对关键工作流在 Lambda 函数之间传递跟踪 ID,且不要超过跟踪上限。
- 如果 Lambda 正在接收来自上游服务的跟踪标头,请删除 Lambda 执行角色的 PutTraceSegments 权限。上限会动态进行调整。
如果不是使用 Step Functions,请完成以下步骤:
- 调试您的代码,检查您是否为不同请求传递了相同的跟踪 ID。
- 断开跟踪。为此,请勿将调用中的跟踪 ID 传递给下游服务。
- 从断点创建新的跟踪 ID。
**注意:**如果为每个应用程序创建跟踪 ID,则您的跟踪计数会增加。为便于跟踪,请保留关键应用程序工作流,作为一个跟踪的一部分。
有关详细信息,请参阅 AWS X-Ray 和 Step Functions。
跟踪文档大小超过 100 KB 的跟踪的非批处理分段
对于这种情况,请使用上一节中的解决方法。
断开跟踪,获得新上限 100 KB。或者,在应用程序中批处理更多分段,将上限增加到 500 KB。仅开放式遥测 SDK 支持批处理分段。如果使用的是 X-Ray SDK,请更改应用程序发送分段的方式。
添加了自定义分段、元数据和注释,导致文档大小增加
要减小跟踪文档的大小,请勿向同一个跟踪 ID 添加额外的自定义分段。请仅为必要的工作流添加自定义分段。此外,要减小跟踪文档的大小,请减少跟踪中的元数据和注释。