メインコンテンツまでスキップ

Transaction ID (Txid)

概要

TXID Policy は、各受信リクエストに一意のトランザクションIDを割り当てるように設計されています。このIDは、異なるサービス間でリクエストを追跡することを可能にし、分散システムにおけるデバッグ、監視、およびログ記録を容易にします。このポリシーは、各リクエストに x-txid ヘッダーがタグ付けされることを保証し、後でトレースおよび分析に使用できます。

なぜTXIDを使用するのか?

  • troubleshooting における問題の特定を助けます。
  • 分散システムにおける observability を改善します。
  • 異なるAPIレイヤー間で logging consistency を可能にします。

設定の詳細

トランザクションIDヘッダー (x-txid)

  • ポリシーは、すべての受信リクエストに対して一意の x-txid ヘッダーを自動的に生成します。
  • このIDはリクエストのライフサイクル全体で一貫しており、異なるサービス間でのトレース可能性を保証します。
  • 例:
x-txid: 550e8400-e29b-41d4-a716-446655440000
  • サービスがすでに x-txid ヘッダーを含まない場合、システムは自動的に生成します。

W3Cの有効化

ポリシーは、オプションの W3Cの有効化 設定を提供します。有効にすると、システムは W3C Trace Context Specification に従い、x-txid ヘッダーを使用しません。

  • W3Cが無効な場合(デフォルト):
    • システムは x-txid ヘッダーにトランザクションIDを割り当てます。
  • W3Cが有効な場合:
    • x-txid の代わりに、traceparent というHTTPヘッダーが渡されます。
    • traceparentヘッダーは W3C Trace Context 標準に従ってフォーマットされます。
    • これにより、W3C標準をサポートする外部のログ記録およびトレースツールとの相互運用性が可能になります。
    • 例:
traceparent: 00-3fcf0fea8f014021927305eb2842715b-59ee61718d864a72-01
  • stdout-log と組み合わせることで、トレース情報はログデータとして保存されます。

設定フィールド

フィールド説明デフォルト値注記
x-txid Header各リクエストに一意のトランザクションIDを自動的に割り当てます。有効変更できません。
W3C Activationtraceparent ヘッダーを x-txid の代わりに有効にします。無効W3Cトレースツールとの相互運用性が必要な場合は有効にできます。
Choosing between x-txid and W3C traceparent:
  • システムが標準APIトレースメカニズムに依存している場合、x-txid を使用する必要があります。
  • OpenTelemetryのような外部の可観測性ツールとの相互運用性が必要な場合は、W3C traceparent を有効にしてください。