非OTLPログ形式におけるトレースコンテキスト

この記事は英語の原文を日本語に翻訳したものです。原文: https://opentelemetry.io/docs/specs/otel/compatibility/logging_trace_context/

翻訳元: open-telemetry/opentelemetry-specification v1.60.0(コミット 29ae8c7

ステータス: Stable

概要

OTLPのLog Recordは、トレースコンテキストを表すトップレベルのフィールドを持ちます。この文書は、非OTLPログ形式でトレースコンテキストをどのように記録すべきかを定義します。まとめると、既存の形式では以下のフィールド名を使うべきです(SHOULD)。

  • TraceIdには"trace_id"(小文字・16進エンコード)。
  • SpanIdには"span_id"(小文字・16進エンコード)。
  • trace flagsには"trace_flags"(W3Cのtraceflags形式に従ってフォーマットする)。

これら3つのフィールドはすべて任意です(どの組み合わせが有効とみなされるかの詳細はデータモデルを参照してください)。

Syslog RFC5424

Trace ID、Span ID、trace flagsは、SD-ID “OpenTelemetry"を通じて記録すべきです(SHOULD)。

例:

[opentelemetry trace_id="102981abcd2901" span_id="abcdef1010" trace_flags="01"]

プレーンテキスト形式

各フィールドは、その形式で慣習的に使われる方式に従って記録すべきです(SHOULD)(例えばLTSVであればfield:value形式)。例:

host:192.168.0.1<TAB>trace_id:102981abcd2901<TAB>span_id:abcdef1010<TAB>time:[01/Jan/2010:10:11:23 -0400]<TAB>req:GET /health HTTP/1.0<TAB>status:200

JSON形式

各フィールドは、JSON構造のトップレベルのフィールドとして記録すべきです(SHOULD)。例:

{
  "timestamp":1581385157.14429,
  "body":"Incoming request",
  "trace_id":"102981abcd2901",
  "span_id":"abcdef1010"
}

その他の構造化形式

各フィールドは、その形式で慣習的に使われる方式に従って、ログレコードのトップレベルの構造化属性として記録すべきです(SHOULD)。