「このトレースは割り当てられた最大クォータに達しました」というエラーを解決したい。詳細については、「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 サイズ を超えるトレースに対して、バッチ・セグメントの数が増加
この状況は、ステップ関数を 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 を作成すると、トレース数が増加します。トレースを容易にするために、重要なアプリケーションワークフローを 1 つのトレースの一部として保持します。
詳細については、「AWS X-Ray and Step Functions」を参照してください。
トレースドキュメントのサイズが 100 KB を超えるトレース用の、バッチ未処理のセグメント
この状況では、先行するセクションのソリューションを使用します。
新規の上限が 100 KB になるようトレースをブレークします。または、上限を 500 KB に増やすには、アプリケーションでより多くのセグメントをバッチ処理します。セグメントのバッチ処理は、オープンテレメトリー SDK でのみサポートされます。X-Ray SDK を使用する場合は、アプリケーションがセグメントを送信する方法を変更します。
カスタムセグメント、メタデータ、および注釈を追加したことで、ドキュメントのサイズを拡大しました。
トレースドキュメントのサイズを縮小するには、同じトレース ID にカスタムセグメントを追加しないようにします。必要なワークフローに対してのみ、カスタムセグメントを追加します。また、トレースドキュメントのサイズを縮小するには、トレース内のメタデータと注釈を減らします。