@@ -244,28 +244,28 @@ where
244
244
// Visit fields.
245
245
event. record ( & mut visitor) ;
246
246
247
- #[ cfg( feature = "experimental_use_tracing_span_context" ) ]
248
- if let Some ( span) = _ctx. event_span ( event) {
249
- use opentelemetry:: trace:: TraceContextExt ;
250
- use tracing_opentelemetry:: OtelData ;
251
- if let Some ( otd) = span. extensions ( ) . get :: < OtelData > ( ) {
252
- if let Some ( span_id) = otd. builder . span_id {
253
- let opt_trace_id = if otd. parent_cx . has_active_span ( ) {
254
- Some ( otd. parent_cx . span ( ) . span_context ( ) . trace_id ( ) )
255
- } else {
256
- span. scope ( ) . last ( ) . and_then ( |root_span| {
257
- root_span
258
- . extensions ( )
259
- . get :: < OtelData > ( )
260
- . and_then ( |otd| otd. builder . trace_id )
261
- } )
262
- } ;
263
- if let Some ( trace_id) = opt_trace_id {
264
- log_record. set_trace_context ( trace_id, span_id, None ) ;
265
- }
266
- }
267
- }
268
- }
247
+ // #[cfg(feature = "experimental_use_tracing_span_context")]
248
+ // if let Some(span) = _ctx.event_span(event) {
249
+ // use opentelemetry::trace::TraceContextExt;
250
+ // use tracing_opentelemetry::OtelData;
251
+ // if let Some(otd) = span.extensions().get::<OtelData>() {
252
+ // if let Some(span_id) = otd.builder.span_id {
253
+ // let opt_trace_id = if otd.parent_cx.has_active_span() {
254
+ // Some(otd.parent_cx.span().span_context().trace_id())
255
+ // } else {
256
+ // span.scope().last().and_then(|root_span| {
257
+ // root_span
258
+ // .extensions()
259
+ // .get::<OtelData>()
260
+ // .and_then(|otd| otd.builder.trace_id)
261
+ // })
262
+ // };
263
+ // if let Some(trace_id) = opt_trace_id {
264
+ // log_record.set_trace_context(trace_id, span_id, None);
265
+ // }
266
+ // }
267
+ // }
268
+ // }
269
269
270
270
//emit record
271
271
self . logger . emit ( log_record) ;
@@ -611,117 +611,117 @@ mod tests {
611
611
}
612
612
}
613
613
614
- #[ cfg( feature = "experimental_use_tracing_span_context" ) ]
615
- #[ test]
616
- fn tracing_appender_inside_tracing_crate_context ( ) {
617
- use opentelemetry:: { trace:: SpanContext , Context , SpanId , TraceId } ;
618
- use opentelemetry_sdk:: trace:: InMemorySpanExporterBuilder ;
619
- use tracing_opentelemetry:: OpenTelemetrySpanExt ;
620
-
621
- // Arrange
622
- let exporter: InMemoryLogExporter = InMemoryLogExporter :: default ( ) ;
623
- let logger_provider = SdkLoggerProvider :: builder ( )
624
- . with_simple_exporter ( exporter. clone ( ) )
625
- . build ( ) ;
626
-
627
- // setup tracing layer to compare trace/span IDs against
628
- let span_exporter = InMemorySpanExporterBuilder :: new ( ) . build ( ) ;
629
- let tracer_provider = SdkTracerProvider :: builder ( )
630
- . with_simple_exporter ( span_exporter. clone ( ) )
631
- . build ( ) ;
632
- let tracer = tracer_provider. tracer ( "test-tracer" ) ;
633
-
634
- let level_filter = tracing_subscriber:: filter:: LevelFilter :: ERROR ;
635
- let log_layer =
636
- layer:: OpenTelemetryTracingBridge :: new ( & logger_provider) . with_filter ( level_filter) ;
637
-
638
- let subscriber = tracing_subscriber:: registry ( )
639
- . with ( log_layer)
640
- . with ( tracing_opentelemetry:: layer ( ) . with_tracer ( tracer) ) ;
641
-
642
- // Avoiding global subscriber.init() as that does not play well with unit tests.
643
- let _guard = tracing:: subscriber:: set_default ( subscriber) ;
644
-
645
- // Act
646
- tracing:: error_span!( "outer-span" ) . in_scope ( || {
647
- error ! ( "first-event" ) ;
648
-
649
- tracing:: error_span!( "inner-span" ) . in_scope ( || {
650
- error ! ( "second-event" ) ;
651
- } ) ;
652
- } ) ;
653
-
654
- assert ! ( logger_provider. force_flush( ) . is_ok( ) ) ;
655
-
656
- let logs = exporter. get_emitted_logs ( ) . expect ( "No emitted logs" ) ;
657
- assert_eq ! ( logs. len( ) , 2 , "Expected 2 logs, got: {logs:?}" ) ;
658
-
659
- let spans = span_exporter. get_finished_spans ( ) . unwrap ( ) ;
660
- assert_eq ! ( spans. len( ) , 2 ) ;
661
-
662
- let trace_id = spans[ 0 ] . span_context . trace_id ( ) ;
663
- assert_eq ! ( trace_id, spans[ 1 ] . span_context. trace_id( ) ) ;
664
- let inner_span_id = spans[ 0 ] . span_context . span_id ( ) ;
665
- let outer_span_id = spans[ 1 ] . span_context . span_id ( ) ;
666
- assert_eq ! ( outer_span_id, spans[ 0 ] . parent_span_id) ;
667
-
668
- let trace_ctx0 = logs[ 0 ] . record . trace_context ( ) . unwrap ( ) ;
669
- let trace_ctx1 = logs[ 1 ] . record . trace_context ( ) . unwrap ( ) ;
670
-
671
- assert_eq ! ( trace_ctx0. trace_id, trace_id) ;
672
- assert_eq ! ( trace_ctx1. trace_id, trace_id) ;
673
- assert_eq ! ( trace_ctx0. span_id, outer_span_id) ;
674
- assert_eq ! ( trace_ctx1. span_id, inner_span_id) ;
675
-
676
- // Set context from remote.
677
- let remote_trace_id = TraceId :: from_u128 ( 233 ) ;
678
- let remote_span_id = SpanId :: from_u64 ( 2333 ) ;
679
- let remote_span_context = SpanContext :: new (
680
- remote_trace_id,
681
- remote_span_id,
682
- TraceFlags :: SAMPLED ,
683
- true ,
684
- Default :: default ( ) ,
685
- ) ;
686
-
687
- // Act again.
688
- tracing:: error_span!( "outer-span" ) . in_scope ( || {
689
- let span = tracing:: Span :: current ( ) ;
690
- let parent_context = Context :: current ( ) . with_remote_span_context ( remote_span_context) ;
691
- span. set_parent ( parent_context) ;
692
-
693
- error ! ( "first-event" ) ;
694
-
695
- tracing:: error_span!( "inner-span" ) . in_scope ( || {
696
- error ! ( "second-event" ) ;
697
- } ) ;
698
- } ) ;
699
-
700
- assert ! ( logger_provider. force_flush( ) . is_ok( ) ) ;
701
-
702
- let logs = exporter. get_emitted_logs ( ) . expect ( "No emitted logs" ) ;
703
- assert_eq ! ( logs. len( ) , 4 , "Expected 4 logs, got: {logs:?}" ) ;
704
- let logs = & logs[ 2 ..] ;
705
-
706
- let spans = span_exporter. get_finished_spans ( ) . unwrap ( ) ;
707
- assert_eq ! ( spans. len( ) , 4 ) ;
708
- let spans = & spans[ 2 ..] ;
709
-
710
- let trace_id = spans[ 0 ] . span_context . trace_id ( ) ;
711
- assert_eq ! ( trace_id, remote_trace_id) ;
712
- assert_eq ! ( trace_id, spans[ 1 ] . span_context. trace_id( ) ) ;
713
- let inner_span_id = spans[ 0 ] . span_context . span_id ( ) ;
714
- let outer_span_id = spans[ 1 ] . span_context . span_id ( ) ;
715
- assert_eq ! ( outer_span_id, spans[ 0 ] . parent_span_id) ;
716
-
717
- let trace_ctx0 = logs[ 0 ] . record . trace_context ( ) . unwrap ( ) ;
718
- let trace_ctx1 = logs[ 1 ] . record . trace_context ( ) . unwrap ( ) ;
719
-
720
- assert_eq ! ( trace_ctx0. trace_id, trace_id) ;
721
- assert_eq ! ( trace_ctx1. trace_id, trace_id) ;
722
- assert_eq ! ( trace_ctx0. span_id, outer_span_id) ;
723
- assert_eq ! ( trace_ctx1. span_id, inner_span_id) ;
724
- }
614
+ // #[cfg(feature = "experimental_use_tracing_span_context")]
615
+ // #[test]
616
+ // fn tracing_appender_inside_tracing_crate_context() {
617
+ // use opentelemetry::{trace::SpanContext, Context, SpanId, TraceId};
618
+ // use opentelemetry_sdk::trace::InMemorySpanExporterBuilder;
619
+ // use tracing_opentelemetry::OpenTelemetrySpanExt;
620
+
621
+ // // Arrange
622
+ // let exporter: InMemoryLogExporter = InMemoryLogExporter::default();
623
+ // let logger_provider = SdkLoggerProvider::builder()
624
+ // .with_simple_exporter(exporter.clone())
625
+ // .build();
626
+
627
+ // // setup tracing layer to compare trace/span IDs against
628
+ // let span_exporter = InMemorySpanExporterBuilder::new().build();
629
+ // let tracer_provider = SdkTracerProvider::builder()
630
+ // .with_simple_exporter(span_exporter.clone())
631
+ // .build();
632
+ // let tracer = tracer_provider.tracer("test-tracer");
633
+
634
+ // let level_filter = tracing_subscriber::filter::LevelFilter::ERROR;
635
+ // let log_layer =
636
+ // layer::OpenTelemetryTracingBridge::new(&logger_provider).with_filter(level_filter);
637
+
638
+ // let subscriber = tracing_subscriber::registry()
639
+ // .with(log_layer)
640
+ // .with(tracing_opentelemetry::layer().with_tracer(tracer));
641
+
642
+ // // Avoiding global subscriber.init() as that does not play well with unit tests.
643
+ // let _guard = tracing::subscriber::set_default(subscriber);
644
+
645
+ // // Act
646
+ // tracing::error_span!("outer-span").in_scope(|| {
647
+ // error!("first-event");
648
+
649
+ // tracing::error_span!("inner-span").in_scope(|| {
650
+ // error!("second-event");
651
+ // });
652
+ // });
653
+
654
+ // assert!(logger_provider.force_flush().is_ok());
655
+
656
+ // let logs = exporter.get_emitted_logs().expect("No emitted logs");
657
+ // assert_eq!(logs.len(), 2, "Expected 2 logs, got: {logs:?}");
658
+
659
+ // let spans = span_exporter.get_finished_spans().unwrap();
660
+ // assert_eq!(spans.len(), 2);
661
+
662
+ // let trace_id = spans[0].span_context.trace_id();
663
+ // assert_eq!(trace_id, spans[1].span_context.trace_id());
664
+ // let inner_span_id = spans[0].span_context.span_id();
665
+ // let outer_span_id = spans[1].span_context.span_id();
666
+ // assert_eq!(outer_span_id, spans[0].parent_span_id);
667
+
668
+ // let trace_ctx0 = logs[0].record.trace_context().unwrap();
669
+ // let trace_ctx1 = logs[1].record.trace_context().unwrap();
670
+
671
+ // assert_eq!(trace_ctx0.trace_id, trace_id);
672
+ // assert_eq!(trace_ctx1.trace_id, trace_id);
673
+ // assert_eq!(trace_ctx0.span_id, outer_span_id);
674
+ // assert_eq!(trace_ctx1.span_id, inner_span_id);
675
+
676
+ // // Set context from remote.
677
+ // let remote_trace_id = TraceId::from_u128(233);
678
+ // let remote_span_id = SpanId::from_u64(2333);
679
+ // let remote_span_context = SpanContext::new(
680
+ // remote_trace_id,
681
+ // remote_span_id,
682
+ // TraceFlags::SAMPLED,
683
+ // true,
684
+ // Default::default(),
685
+ // );
686
+
687
+ // // Act again.
688
+ // tracing::error_span!("outer-span").in_scope(|| {
689
+ // let span = tracing::Span::current();
690
+ // let parent_context = Context::current().with_remote_span_context(remote_span_context);
691
+ // span.set_parent(parent_context);
692
+
693
+ // error!("first-event");
694
+
695
+ // tracing::error_span!("inner-span").in_scope(|| {
696
+ // error!("second-event");
697
+ // });
698
+ // });
699
+
700
+ // assert!(logger_provider.force_flush().is_ok());
701
+
702
+ // let logs = exporter.get_emitted_logs().expect("No emitted logs");
703
+ // assert_eq!(logs.len(), 4, "Expected 4 logs, got: {logs:?}");
704
+ // let logs = &logs[2..];
705
+
706
+ // let spans = span_exporter.get_finished_spans().unwrap();
707
+ // assert_eq!(spans.len(), 4);
708
+ // let spans = &spans[2..];
709
+
710
+ // let trace_id = spans[0].span_context.trace_id();
711
+ // assert_eq!(trace_id, remote_trace_id);
712
+ // assert_eq!(trace_id, spans[1].span_context.trace_id());
713
+ // let inner_span_id = spans[0].span_context.span_id();
714
+ // let outer_span_id = spans[1].span_context.span_id();
715
+ // assert_eq!(outer_span_id, spans[0].parent_span_id);
716
+
717
+ // let trace_ctx0 = logs[0].record.trace_context().unwrap();
718
+ // let trace_ctx1 = logs[1].record.trace_context().unwrap();
719
+
720
+ // assert_eq!(trace_ctx0.trace_id, trace_id);
721
+ // assert_eq!(trace_ctx1.trace_id, trace_id);
722
+ // assert_eq!(trace_ctx0.span_id, outer_span_id);
723
+ // assert_eq!(trace_ctx1.span_id, inner_span_id);
724
+ // }
725
725
726
726
#[ test]
727
727
fn tracing_appender_standalone_with_tracing_log ( ) {
0 commit comments