diff --git a/opentelemetry-stdout/src/trace/exporter.rs b/opentelemetry-stdout/src/trace/exporter.rs index 88baed57e8..f5d1e24315 100644 --- a/opentelemetry-stdout/src/trace/exporter.rs +++ b/opentelemetry-stdout/src/trace/exporter.rs @@ -94,18 +94,28 @@ fn print_spans(batch: Vec) { }); println!(); - println!("\tName : {}", &span.name); - println!("\tTraceId : {}", &span.span_context.trace_id()); - println!("\tSpanId : {}", &span.span_context.span_id()); - println!("\tTraceFlags : {:?}", &span.span_context.trace_flags()); - println!("\tParentSpanId: {}", &span.parent_span_id); - println!("\tKind : {:?}", &span.span_kind); + println!("\tName : {}", &span.name); + println!("\tTraceId : {}", &span.span_context.trace_id()); + println!("\tSpanId : {}", &span.span_context.span_id()); + println!("\tTraceFlags : {:?}", &span.span_context.trace_flags()); + if span.parent_span_id == opentelemetry::SpanId::INVALID { + println!("\tParentSpanId : None (root span)"); + } else { + println!("\tParentSpanId : {}", &span.parent_span_id); + } + println!("\tKind : {:?}", &span.span_kind); let datetime: DateTime = span.start_time.into(); - println!("\tStart time: {}", datetime.format("%Y-%m-%d %H:%M:%S%.6f")); + println!( + "\tStart time : {}", + datetime.format("%Y-%m-%d %H:%M:%S%.6f") + ); let datetime: DateTime = span.end_time.into(); - println!("\tEnd time: {}", datetime.format("%Y-%m-%d %H:%M:%S%.6f")); - println!("\tStatus: {:?}", &span.status); + println!( + "\tEnd time : {}", + datetime.format("%Y-%m-%d %H:%M:%S%.6f") + ); + println!("\tStatus : {:?}", &span.status); let mut print_header = true; for kv in span.attributes.iter() {