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

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

    - <b>stdout-log</b> と組み合わせると、トレース情報はログデータとして保存されます。
### 設定フィールド \{#configuration-fields}


| フィールド | 説明 | デフォルト値 | 注釈 |
| --- | --- | --- | --- |
| <b>x-txid Header</b> | 各リクエストに対して一意のトランザクションIDを自動的に割り当てます。 | 有効 | 変更できません。 |
| <b>W3C Activation</b> | <b>x-txid</b> の代わりに <b>traceparent</b> ヘッダーを有効にします。 | 無効 | W3Cトレースツールとの相互運用性が必要な場合は有効にできます。 |

<b>Choosing between x-txid and W3C traceparent:</b>

- システムが標準APIトレースメカニズムに依存している場合、<b>x-txid</b> を使用する必要があります。
- OpenTelemetryのような外部可観測ツールとの相互運用性が必要な場合は、<b>W3C traceparent</b> を有効にします。