11#![ allow( unused_imports) ]   // some used only for telemetry feature 
22use  opentelemetry:: trace:: { TraceId ,  TracerProvider } ; 
3- use  opentelemetry_sdk:: { runtime,  trace as  sdktrace,  trace:: Config ,  Resource } ; 
3+ use  opentelemetry_sdk:: { runtime,  trace as  sdktrace,  Resource } ; 
4+ use  sdktrace:: { Config ,  SdkTracerProvider } ; 
45use  tracing_subscriber:: { prelude:: * ,  EnvFilter ,  Registry } ; 
56
67///  Fetch an opentelemetry::trace::TraceId as hex through the full tracing stack 
78pub  fn  get_trace_id ( )  -> TraceId  { 
89    use  opentelemetry:: trace:: TraceContextExt  as  _;  // opentelemetry::Context -> opentelemetry::trace::Span 
910    use  tracing_opentelemetry:: OpenTelemetrySpanExt  as  _;  // tracing::Span to opentelemetry::Context 
10-     tracing:: Span :: current ( ) 
11+     TraceId :: INVALID 
12+     /*tracing::Span::current() 
1113        .context() 
1214        .span() 
1315        .span_context() 
1416        .trace_id() 
17+     */ 
1518} 
1619
1720#[ cfg( feature = "telemetry" ) ]  
@@ -24,7 +27,7 @@ fn resource() -> Resource {
2427} 
2528
2629#[ cfg( feature = "telemetry" ) ]  
27- fn  init_tracer ( )  -> sdktrace :: Tracer  { 
30+ fn  init_tracer ( )  -> SdkTracerProvider  { 
2831    use  opentelemetry_otlp:: { SpanExporter ,  WithExportConfig } ; 
2932    let  endpoint = std:: env:: var ( "OPENTELEMETRY_ENDPOINT_URL" ) . expect ( "Needs an otel collector" ) ; 
3033    let  exporter = SpanExporter :: builder ( ) 
@@ -33,9 +36,9 @@ fn init_tracer() -> sdktrace::Tracer {
3336        . build ( ) 
3437        . unwrap ( ) ; 
3538
36-     let  provider = sdktrace:: TracerProvider :: builder ( ) 
37-         . with_batch_exporter ( exporter,  runtime:: Tokio ) 
39+     let  provider = SdkTracerProvider :: builder ( ) 
3840        . with_resource ( resource ( ) ) 
41+         . with_batch_exporter ( exporter) 
3942        . build ( ) ; 
4043
4144    opentelemetry:: global:: set_tracer_provider ( provider. clone ( ) ) ; 
0 commit comments