@@ -283,7 +283,7 @@ impl DatadogPipelineBuilder {
283283 }
284284
285285 /// Install the Datadog trace exporter pipeline using a simple span processor.
286- pub fn install_simple ( mut self ) -> Result < Tracer , TraceError > {
286+ pub fn install_simple ( mut self ) -> Result < ( Tracer , TracerProvider ) , TraceError > {
287287 let ( config, service_name) = self . build_config_and_service_name ( ) ;
288288 let exporter = self . build_exporter_with_service_name ( service_name) ?;
289289 let mut provider_builder = TracerProvider :: builder ( ) . with_simple_exporter ( exporter) ;
@@ -295,13 +295,16 @@ impl DatadogPipelineBuilder {
295295 . with_attributes ( None )
296296 . build ( ) ;
297297 let tracer = provider. tracer_with_scope ( scope) ;
298- let _ = global:: set_tracer_provider ( provider) ;
299- Ok ( tracer)
298+ let _ = global:: set_tracer_provider ( provider. clone ( ) ) ;
299+ Ok ( ( tracer, provider ) )
300300 }
301301
302302 /// Install the Datadog trace exporter pipeline using a batch span processor with the specified
303303 /// runtime.
304- pub fn install_batch < R : RuntimeChannel > ( mut self , runtime : R ) -> Result < Tracer , TraceError > {
304+ pub fn install_batch < R : RuntimeChannel > (
305+ mut self ,
306+ runtime : R ,
307+ ) -> Result < ( Tracer , TracerProvider ) , TraceError > {
305308 let ( config, service_name) = self . build_config_and_service_name ( ) ;
306309 let exporter = self . build_exporter_with_service_name ( service_name) ?;
307310 let mut provider_builder = TracerProvider :: builder ( ) . with_batch_exporter ( exporter, runtime) ;
@@ -313,8 +316,8 @@ impl DatadogPipelineBuilder {
313316 . with_attributes ( None )
314317 . build ( ) ;
315318 let tracer = provider. tracer_with_scope ( scope) ;
316- let _ = global:: set_tracer_provider ( provider) ;
317- Ok ( tracer)
319+ let _ = global:: set_tracer_provider ( provider. clone ( ) ) ;
320+ Ok ( ( tracer, provider ) )
318321 }
319322
320323 /// Assign the service name under which to group traces
0 commit comments