22use  opentelemetry:: trace:: { TraceId ,  TracerProvider } ; 
33use  opentelemetry_sdk:: { runtime,  trace as  sdktrace,  trace:: Config ,  Resource } ; 
44use  tracing_subscriber:: { prelude:: * ,  EnvFilter ,  Registry } ; 
5+ use  opentelemetry_otlp:: { SpanExporter ,  WithExportConfig } ; 
56
67///  Fetch an opentelemetry::trace::TraceId as hex through the full tracing stack 
78pub  fn  get_trace_id ( )  -> TraceId  { 
@@ -27,14 +28,12 @@ fn resource() -> Resource {
2728fn  init_tracer ( )  -> sdktrace:: Tracer  { 
2829    use  opentelemetry_otlp:: WithExportConfig ; 
2930    let  endpoint = std:: env:: var ( "OPENTELEMETRY_ENDPOINT_URL" ) . expect ( "Needs an otel collector" ) ; 
30-     let  exporter = opentelemetry_otlp :: new_exporter ( ) . tonic ( ) . with_endpoint ( endpoint) ; 
31+     let  exporter = SpanExporter :: builder ( ) . with_tonic ( ) . with_endpoint ( endpoint) . build ( ) . unwrap ( ) ; 
3132
32-     let  provider = opentelemetry_otlp:: new_pipeline ( ) 
33-         . tracing ( ) 
34-         . with_exporter ( exporter) 
35-         . with_trace_config ( Config :: default ( ) . with_resource ( resource ( ) ) ) 
36-         . install_batch ( runtime:: Tokio ) 
37-         . expect ( "valid tracer" ) ; 
33+     let  provider = sdktrace:: TracerProvider :: builder ( ) 
34+         . with_batch_exporter ( exporter,  runtime:: Tokio ) 
35+         . with_config ( Config :: default ( ) . with_resource ( resource ( ) ) ) 
36+         . build ( ) ; 
3837
3938    opentelemetry:: global:: set_tracer_provider ( provider. clone ( ) ) ; 
4039    provider. tracer ( "tracing-otel-subscriber" ) 
0 commit comments