無限ノック › DVA 練習問題一覧 › 問題
DVAトラブルシューティングと最適化

マルチテナントのSaaSアプリケーションをLambdaとAPI Gatewayで構築している開発者が、AWS X-Rayでコードを計装しています。X-Rayコンソールのフィルタ式(例: `annotation.tenantId = "tenant-123"`)を使って特定テナントのトレースを絞り込み、レイテンシ問題を調査したいと考えています。tenantId を記録するために使用すべきX-Ray SDKのメソッドはどれですか?

A
putAnnotation("tenantId", tenantId) を使用してアノテーションとして記録する
✓ 正解
putAnnotation()で記録したアノテーションはインデックス化されるため、フィルタ式(annotation.tenantId="tenant-123")でトレースを検索・絞り込みできます。テナントIDのようなフィルタリング用途に最適です。
B
putMetadata("tenantId", tenantId) を使用してメタデータとして記録する
putMetadata()で記録したメタデータはインデックス化されないためフィルタ式では検索できません。デバッグ用の大きなオブジェクト記録に向いており、トレース絞り込みには使用できません。
C
beginSubsegment(tenantId) を使用してサブセグメント名に tenantId を含める
beginSubsegment()はサブセグメントを作成するAPIであり、アノテーション記録機能はなく、サブセグメント名はフィルタ式での絞り込みに使用できません。
D
putAlarmData() でCloudWatchカスタムメトリクスにtenantIdディメンションを追加する
putAlarmData()はCloudWatch AlarmのAPIであり、X-Ray SDKのメソッドではありません。X-Rayのトレースフィルタリング機能とは無関係のサービスです。

解説

X-RayのアノテーションとメタデータはAPIが異なり、用途が明確に分かれています。 選択肢Aは、putAnnotation()を使用してアノテーションとして記録します。アノテーションはインデックス化されるため、フィルタ式(annotation.tenantId = "tenant-123")でトレースを検索・絞り込みできます。テナントIDのようなフィルタリング用途の属性記録に最適なベストプラクティスです。 選択肢Bは、putMetadata()はメタデータを記録しますが、メタデータはインデックス化されないためフィルタ式では検索できません。デバッグ用の大きなオブジェクトの記録に向いており、トレースの絞り込みには使用できません。 選択肢Cは、beginSubsegment()はサブセグメントの作成に使用するAPIであり、アノテーションの記録機能はありません。サブセグメント名にtenantIdを含めてもフィルタ式での絞り込みはできません。 選択肢Dは、putAlarmData()はCloudWatch AlarmのAPIであり、X-Ray SDKのメソッドではありません。X-Rayのトレースフィルタリング機能とは無関係のサービスです。

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

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

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