mirror of
https://github.com/open-telemetry/opentelemetry-python-contrib.git
synced 2025-07-31 22:23:12 +08:00
23 lines
948 B
Python
23 lines
948 B
Python
# DEV: If `asyncio` or `gevent` are unavailable we do not throw an error,
|
|
# `context_provider` will just not be set and we'll get an `AttributeError` instead
|
|
|
|
|
|
def get_context_provider_for_scope_manager(scope_manager):
|
|
"""Returns the context_provider to use with a given scope_manager."""
|
|
|
|
scope_manager_type = type(scope_manager).__name__
|
|
|
|
# avoid having to import scope managers which may not be compatible
|
|
# with the version of python being used
|
|
if scope_manager_type == 'AsyncioScopeManager':
|
|
import ddtrace.contrib.asyncio
|
|
dd_context_provider = ddtrace.contrib.asyncio.context_provider
|
|
elif scope_manager_type == 'GeventScopeManager':
|
|
import ddtrace.contrib.gevent
|
|
dd_context_provider = ddtrace.contrib.gevent.context_provider
|
|
else:
|
|
from ddtrace.provider import DefaultContextProvider
|
|
dd_context_provider = DefaultContextProvider()
|
|
|
|
return dd_context_provider
|