トレース文脈伝播(とれいすぶんみゃくでんぱ)
最終更新:2026/4/28
トレース文脈伝播は、分散システムにおいて、リクエスト処理の過程で伝播される文脈情報を指す。
ポイント
トレース文脈伝播は、マイクロサービスアーキテクチャにおける問題の追跡やパフォーマンス分析に不可欠な技術である。リクエストが複数のサービスを経由する際に、関連する情報を一貫して保持する。
トレース文脈伝播とは
トレース文脈伝播(Trace Context Propagation)は、分散システムにおけるリクエストの追跡を可能にするための技術です。現代の多くのアプリケーションは、複数のマイクロサービスで構成されており、単一のリクエストが複数のサービスを経由して処理されることが一般的です。このような環境において、特定のリクエストがどのサービスで、どのような処理を受けているかを把握することは、問題の診断やパフォーマンスのボトルネックの特定に不可欠です。
トレース文脈伝播は、リクエストがサービス間を移動する際に、そのリクエストに関連する情報を伝播することでこれを実現します。この情報には、トレースID(Trace ID)、スパンID(Span ID)、親スパンID(Parent Span ID)などが含まれます。トレースIDは、単一のリクエスト全体を識別するためのIDであり、スパンIDは、リクエストの処理における特定の操作(例えば、データベースへのアクセスやAPIの呼び出し)を識別するためのIDです。親スパンIDは、スパン間の親子関係を示すIDです。
トレース文脈伝播の仕組み
トレース文脈伝播は、通常、HTTPヘッダーなどの標準的な通信プロトコルを利用して行われます。各サービスは、受信したリクエストのヘッダーからトレース文脈情報を抽出し、自身の処理に関する情報を追加して、次のサービスにリクエストを送信する際にヘッダーに含めます。これにより、リクエストがシステム全体を通過するにつれて、トレース文脈情報が連鎖的に伝播されます。
トレース文脈伝播の標準
トレース文脈伝播を実現するための標準として、OpenTelemetryやZipkinなどが広く利用されています。これらの標準は、トレース文脈情報の形式や伝播方法を定義しており、異なるサービスやプログラミング言語で実装されたアプリケーション間での互換性を確保します。