過去問ドリル

AI-200:Developing AI Cloud Solutions on Azure Azure ソリューションのセキュリティ保護・監視・トラブルシューティング 問4

Azure ソリューションのセキュリティ保護・監視・トラブルシューティング/Azure ソリューションの監視とトラブルシューティング(OpenTelemetry・KQL)

API(Azure Container Apps)から Azure Functions、さらに Azure Cosmos DB へと処理が流れるシステムで、OpenTelemetry を使って Application Insights に計測データを送っています。ところが、1件の要求の処理が API 側と Functions 側で別々のトランザクションとして表示され、エンド ツー エンドでつながって見えません。原因として最も考えられるものはどれですか。

当サイトのオリジナル問題(AI-200:Developing AI Cloud Solutions on Azureの出題範囲「Azure ソリューションのセキュリティ保護・監視・トラブルシューティング」に対応。実際の試験問題ではありません)

正解:A

解説

分散トレースでは、サービスをまたぐ呼び出しのたびにトレース ID などの情報(トレース コンテキスト)を後続のサービスに伝えます。これにより、各サービスで記録された処理(スパン)が1つのトレースとしてつながります。HTTP 呼び出しでは W3C Trace Context の traceparent ヘッダーで伝えるのが標準です。伝達されないと、後続のサービスは新しいトレースを始めてしまい、別々のトランザクションとして表示されます。

下線の用語は 用語集 で意味を確認できます。

選択肢ごとの解説

  • A正しい。トレース コンテキストが伝わっていないと、各サービスの処理が1つのトレースとして結び付きません。
  • B誤り。接続文字列は、本番環境では環境変数で設定するのが推奨される方法です。トレースが分断される原因にはなりません。
  • C誤り。サンプリングは保存する計測データの量を減らす仕組みです。保存されるデータが減ることはあっても、1件の要求を別々のトランザクションに分ける原因にはなりません。
  • D誤り。OpenTelemetry は、トレース・メトリック・ログを収集できます。Application Insights にトレースを送ることもできます。
AI-200:Developing AI Cloud Solutions on Azureの問題を演習モードで解く