Skip to content

Commit 80629c8

Browse files
authored
Minor update to stdout exporter example to show log correlation (#2459)
1 parent 3694ff9 commit 80629c8

File tree

3 files changed

+15
-40
lines changed

3 files changed

+15
-40
lines changed

opentelemetry-stdout/examples/basic.rs

Lines changed: 11 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use once_cell::sync::Lazy;
44
use opentelemetry::{global, KeyValue};
55

66
#[cfg(feature = "trace")]
7-
use opentelemetry::trace::{Span, Tracer};
7+
use opentelemetry::trace::Tracer;
88

99
#[cfg(feature = "metrics")]
1010
use opentelemetry_sdk::metrics::{PeriodicReader, SdkMeterProvider};
@@ -60,52 +60,23 @@ fn init_logs() -> opentelemetry_sdk::logs::LoggerProvider {
6060

6161
#[cfg(feature = "trace")]
6262
fn emit_span() {
63-
use opentelemetry::{
64-
trace::{SpanContext, SpanId, TraceFlags, TraceId, TraceState},
65-
InstrumentationScope,
66-
};
63+
use opentelemetry::{trace::TraceContextExt, InstrumentationScope};
6764

6865
let scope = InstrumentationScope::builder("stdout-example")
6966
.with_version("v1")
7067
.with_attributes([KeyValue::new("scope_key", "scope_value")])
7168
.build();
7269

7370
let tracer = global::tracer_with_scope(scope);
74-
let mut span = tracer.start("example-span");
75-
span.set_attribute(KeyValue::new("attribute_key1", "attribute_value1"));
76-
span.set_attribute(KeyValue::new("attribute_key2", "attribute_value2"));
77-
span.add_event(
78-
"example-event-name",
79-
vec![KeyValue::new("event_attribute1", "event_value1")],
80-
);
81-
span.add_link(
82-
SpanContext::new(
83-
TraceId::from_hex("58406520a006649127e371903a2de979").expect("invalid"),
84-
SpanId::from_hex("b6d7d7f6d7d6d7f6").expect("invalid"),
85-
TraceFlags::default(),
86-
false,
87-
TraceState::NONE,
88-
),
89-
vec![
90-
KeyValue::new("link_attribute1", "link_value1"),
91-
KeyValue::new("link_attribute2", "link_value2"),
92-
],
93-
);
94-
95-
span.add_link(
96-
SpanContext::new(
97-
TraceId::from_hex("23401120a001249127e371903f2de971").expect("invalid"),
98-
SpanId::from_hex("cd37d765d743d7f6").expect("invalid"),
99-
TraceFlags::default(),
100-
false,
101-
TraceState::NONE,
102-
),
103-
vec![
104-
KeyValue::new("link_attribute1", "link_value1"),
105-
KeyValue::new("link_attribute2", "link_value2"),
106-
],
107-
);
108-
span.end();
71+
tracer.in_span("example-span", |cx| {
72+
let span = cx.span();
73+
span.set_attribute(KeyValue::new("my-attribute", "my-value"));
74+
span.add_event(
75+
"example-event-name",
76+
vec![KeyValue::new("event_attribute1", "event_value1")],
77+
);
78+
emit_log();
79+
})
10980
}
11081

11182
#[cfg(feature = "metrics")]

opentelemetry-stdout/src/logs/exporter.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,9 @@ fn print_logs(batch: LogBatch<'_>) {
8282
if let Some(trace_context) = record.trace_context() {
8383
println!("\t TraceId: {:?}", trace_context.trace_id);
8484
println!("\t SpanId: {:?}", trace_context.span_id);
85+
if let Some(trace_flags) = trace_context.trace_flags {
86+
println!("\t TraceFlags: {:?}", trace_flags);
87+
}
8588
}
8689
if let Some(timestamp) = record.timestamp() {
8790
let datetime: DateTime<Utc> = timestamp.into();

opentelemetry-stdout/src/trace/exporter.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ fn print_spans(batch: Vec<export::trace::SpanData>) {
9696
println!("\tName : {}", &span.name);
9797
println!("\tTraceId : {}", &span.span_context.trace_id());
9898
println!("\tSpanId : {}", &span.span_context.span_id());
99+
println!("\tTraceFlags : {:?}", &span.span_context.trace_flags());
99100
println!("\tParentSpanId: {}", &span.parent_span_id);
100101
println!("\tKind : {:?}", &span.span_kind);
101102

0 commit comments

Comments
 (0)