DVAトラブルシューティングと最適化

開発者がAWS X-Rayを使用してLambda関数のトレーシングを実装しています。注文処理のトレースに顧客IDや大きな注文詳細JSONを記録したいと考えています。X-Rayコンソールで顧客IDを使ってトレースをフィルタリングできるようにする必要があります。正しい実装方法はどれですか?

A
putAnnotations(アノテーション)に顧客IDと注文詳細JSONの両方を記録する
アノテーション(Annotations)はインデックス化されており検索可能ですが、大きなJSONオブジェクトをアノテーションに格納するとインデックス化コストが増大し非効率です。
B
putMetadata(メタデータ)に顧客IDと注文詳細JSONの両方を記録する
メタデータ(Metadata)は任意のオブジェクトを格納できますが、インデックス化されないため、アノテーションのような検索フィルタリングには使用できません。
C
顧客IDはputAnnotationsで記録し、注文詳細JSONはputMetadataで記録する
✓ 正解
顧客IDなどの検索キーはアノテーションで記録して検索可能にし、大きなJSONはメタデータに格納することで、インデックス効率と詳細情報保存のバランスが最適です。
D
カスタムサブセグメントを作成して、顧客IDをサブセグメント名に含める
カスタムサブセグメントのセグメント名には長さ制限があり、顧客IDを含める方法は実装上の制限により現実的ではありません。

解説

X-Rayのアノテーション(Annotations)はインデックス化されており、コンソールのフィルター式でトレース検索に使用できます。値は文字列・数値・ブール値のみ対応。メタデータ(Metadata)は任意のオブジェクトを格納できますが、インデックス化されないためフィルタリング不可です。大きなJSONはメタデータに格納し、検索キーとなる値のみアノテーションに使用するのがベストプラクティスです。

ドメイン別正答率・予想スコアでリアルタイムに実力把握

無限ノックでDVAを徹底対策。全問AI生成のオリジナル問題。

無料で演習を始める →
DVA の問題一覧に戻る