File tree Expand file tree Collapse file tree 1 file changed +18
-3
lines changed Expand file tree Collapse file tree 1 file changed +18
-3
lines changed Original file line number Diff line number Diff line change @@ -623,10 +623,25 @@ def __init__(
623
623
"LANGSMITH_OTEL_ENABLED is set but OpenTelemetry packages are not installed. "
624
624
"Install with `pip install langsmith[otel]`"
625
625
)
626
+ existing_provider = otel_trace .get_tracer_provider ()
627
+ tracer = existing_provider .get_tracer (__name__ )
626
628
if otel_tracer_provider is None :
627
- otel_tracer_provider = get_otlp_tracer_provider ()
628
- # Set as global tracer provider if we're creating a new one
629
- otel_trace .set_tracer_provider (otel_tracer_provider )
629
+ # Use existing global provider if available
630
+ if not (
631
+ isinstance (existing_provider , otel_trace .ProxyTracerProvider )
632
+ and hasattr (tracer , "_tracer" )
633
+ and isinstance (
634
+ cast (
635
+ otel_trace .ProxyTracer ,
636
+ tracer ,
637
+ )._tracer ,
638
+ otel_trace .NoOpTracer ,
639
+ )
640
+ ):
641
+ otel_tracer_provider = cast (TracerProvider , existing_provider )
642
+ else :
643
+ otel_tracer_provider = get_otlp_tracer_provider ()
644
+ otel_trace .set_tracer_provider (otel_tracer_provider )
630
645
631
646
self .otel_exporter = OTELExporter (tracer_provider = otel_tracer_provider )
632
647
You can’t perform that action at this time.
0 commit comments