Extracting TraceId and SpanId from JSON Log Body
This guide demonstrates how to extract trace and span identifiers from the body of your logs using Scout's otel native transform processors, enabling better distributed tracing correlation and observability.
Overview
When working with logs that contain trace and span identifiers in their body (often in JSON format), you need to extract these values to standard fields to enable proper trace correlation. This guide shows how to use Scout's transform processor to parse and extract these values.
Step 1: Initialize Default Values
First, we'll initialize default trace and span IDs to ensure these fields always exist:
processors:
transform/initialize:
log_statements:
- context: log
statements:
- set(trace_id.string, "00000000000000000000000000000000")
- set(span_id.string, "0000000000000000")
Step 2: Extract TraceId
Next, we'll extract the traceId from the JSON body:
transform/extract_trace:
error_mode: ignore
log_statements:
- context: log
statements:
- set(trace_id.string, ParseJSON(log.body)["traceId"])
Note: Replace
traceIdif you are using other key name.
Step 3: Extract SpanId
Similarly, we'll extract the spanId from the JSON body:
transform/extract_span:
error_mode: ignore
log_statements:
- context: log
statements:
- set(span_id.string, ParseJSON(log.body)["spanId"])
Note: Replace
spanIdif you are using other key name.
Step 4: Configure Pipeline
Finally, add these processors to your logs pipeline:
logs/otlp:
receivers: [otlp]
processors:
[transform/initialize, transform/extract_trace, transform/extract_span]
exporters: [debug]
Notes
- The
error_mode: ignoredirective prevents pipeline failures when a log entry doesn't contain the expected fields - This configuration assumes the trace and span IDs are directly available at the top level of the JSON structure
- The example uses the debug exporter, but you should replace it with your actual exporters and recievers.
Related Guides
- OTTL Functions Reference — Complete function catalog
- Extract Log Level from Body — Parse log severity levels
- OTTL Span Transformations — Transform trace spans
- OTel Collector Configuration — Collector configuration basics