跳转至

以非 OTLP 日志格式跟踪上下文

Status: Experimental

Table of Contents - [Overview](#overview) - [Syslog RFC5424](#syslog-rfc5424) - [Plain Text Formats](#plain-text-formats) - [JSON Formats](#json-formats) - [Other Structured Formats](#other-structured-formats)

Overview

OTLP Logs Records have top level fields representing trace context. This document defines how trace context should be recorded in non-OTLP Log Formats. To summarize, the following field names should be used in legacy formats:

  • "trace_id" for TraceId, hex-encoded.
  • "span_id" for SpanId, hex-encoded.
  • "trace_flags" for trace flags, formatted according to W3C traceflags format.

All 3 fields are optional (see the data model for details of which combination of fields is considered valid).

Syslog RFC5424

Trace id, span id and traceflags SHOULD be recorded via SD-ID "opentelemetry".

For example:

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

Plain Text Formats

The fields SHOULD be recorded according to the customary approach used for a particular format (e.g. field:value format for LTSV). For example:

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 Formats

The fields SHOULD be recorded as top-level fields in the JSON structure. For example:

1
2
3
4
5
6
{
  "timestamp": 1581385157.14429,
  "body": "Incoming request",
  "trace_id": "102981ABCD2901",
  "span_id": "abcdef1010"
}

Other Structured Formats

The fields SHOULD be recorded as top-level structured attributes of the log record as it is customary for the particular format.