Get the global trace provider used by tracing utilities.
The default provider and processor are initialized lazily on first access so
importing the SDK does not create network clients or threading primitives.
Source code in src/agents/tracing/setup.py
| def get_trace_provider() -> TraceProvider:
"""Get the global trace provider used by tracing utilities.
The default provider and processor are initialized lazily on first access so
importing the SDK does not create network clients or threading primitives.
"""
global GLOBAL_TRACE_PROVIDER
global _SHUTDOWN_HANDLER_REGISTERED
provider = GLOBAL_TRACE_PROVIDER
if provider is not None:
return provider
with _GLOBAL_TRACE_PROVIDER_LOCK:
provider = GLOBAL_TRACE_PROVIDER
if provider is None:
from .processors import default_processor
from .provider import DefaultTraceProvider
provider = DefaultTraceProvider()
provider.register_processor(default_processor())
GLOBAL_TRACE_PROVIDER = provider
if not _SHUTDOWN_HANDLER_REGISTERED:
atexit.register(_shutdown_global_trace_provider)
_SHUTDOWN_HANDLER_REGISTERED = True
return provider
|