非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)。