aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/sentry_sdk/integrations/opentelemetry/integration.py
diff options
context:
space:
mode:
authorS. Solomon Darnell2025-03-28 21:52:21 -0500
committerS. Solomon Darnell2025-03-28 21:52:21 -0500
commit4a52a71956a8d46fcb7294ac71734504bb09bcc2 (patch)
treeee3dc5af3b6313e921cd920906356f5d4febc4ed /.venv/lib/python3.12/site-packages/sentry_sdk/integrations/opentelemetry/integration.py
parentcc961e04ba734dd72309fb548a2f97d67d578813 (diff)
downloadgn-ai-master.tar.gz
two version of R2R are hereHEADmaster
Diffstat (limited to '.venv/lib/python3.12/site-packages/sentry_sdk/integrations/opentelemetry/integration.py')
-rw-r--r--.venv/lib/python3.12/site-packages/sentry_sdk/integrations/opentelemetry/integration.py58
1 files changed, 58 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/sentry_sdk/integrations/opentelemetry/integration.py b/.venv/lib/python3.12/site-packages/sentry_sdk/integrations/opentelemetry/integration.py
new file mode 100644
index 00000000..43e0396c
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/sentry_sdk/integrations/opentelemetry/integration.py
@@ -0,0 +1,58 @@
+"""
+IMPORTANT: The contents of this file are part of a proof of concept and as such
+are experimental and not suitable for production use. They may be changed or
+removed at any time without prior notice.
+"""
+
+from sentry_sdk.integrations import DidNotEnable, Integration
+from sentry_sdk.integrations.opentelemetry.propagator import SentryPropagator
+from sentry_sdk.integrations.opentelemetry.span_processor import SentrySpanProcessor
+from sentry_sdk.utils import logger
+
+try:
+ from opentelemetry import trace
+ from opentelemetry.propagate import set_global_textmap
+ from opentelemetry.sdk.trace import TracerProvider
+except ImportError:
+ raise DidNotEnable("opentelemetry not installed")
+
+try:
+ from opentelemetry.instrumentation.django import DjangoInstrumentor # type: ignore[import-not-found]
+except ImportError:
+ DjangoInstrumentor = None
+
+
+CONFIGURABLE_INSTRUMENTATIONS = {
+ DjangoInstrumentor: {"is_sql_commentor_enabled": True},
+}
+
+
+class OpenTelemetryIntegration(Integration):
+ identifier = "opentelemetry"
+
+ @staticmethod
+ def setup_once():
+ # type: () -> None
+ logger.warning(
+ "[OTel] Initializing highly experimental OpenTelemetry support. "
+ "Use at your own risk."
+ )
+
+ _setup_sentry_tracing()
+ # _setup_instrumentors()
+
+ logger.debug("[OTel] Finished setting up OpenTelemetry integration")
+
+
+def _setup_sentry_tracing():
+ # type: () -> None
+ provider = TracerProvider()
+ provider.add_span_processor(SentrySpanProcessor())
+ trace.set_tracer_provider(provider)
+ set_global_textmap(SentryPropagator())
+
+
+def _setup_instrumentors():
+ # type: () -> None
+ for instrumentor, kwargs in CONFIGURABLE_INSTRUMENTATIONS.items():
+ instrumentor().instrument(**kwargs)