mirror of
https://git.linux-kernel.at/oliver/ivatar.git
synced 2025-11-12 11:16:24 +00:00
Get OTEL fixed
This commit is contained in:
@@ -73,12 +73,16 @@ class OpenTelemetryConfig:
|
|||||||
def setup_tracing(self) -> None:
|
def setup_tracing(self) -> None:
|
||||||
"""Set up OpenTelemetry tracing."""
|
"""Set up OpenTelemetry tracing."""
|
||||||
try:
|
try:
|
||||||
|
# Only set up tracing if export is enabled
|
||||||
|
if not self.export_enabled:
|
||||||
|
logger.info("OpenTelemetry tracing disabled (export disabled)")
|
||||||
|
return
|
||||||
|
|
||||||
# Set up tracer provider
|
# Set up tracer provider
|
||||||
trace.set_tracer_provider(TracerProvider(resource=self.resource))
|
trace.set_tracer_provider(TracerProvider(resource=self.resource))
|
||||||
tracer_provider = trace.get_tracer_provider()
|
tracer_provider = trace.get_tracer_provider()
|
||||||
|
|
||||||
# Configure OTLP exporter if export is enabled and endpoint is provided
|
# Configure OTLP exporter if endpoint is provided
|
||||||
if self.export_enabled:
|
|
||||||
otlp_endpoint = os.environ.get("OTEL_EXPORTER_OTLP_ENDPOINT")
|
otlp_endpoint = os.environ.get("OTEL_EXPORTER_OTLP_ENDPOINT")
|
||||||
if otlp_endpoint:
|
if otlp_endpoint:
|
||||||
otlp_exporter = OTLPSpanExporter(endpoint=otlp_endpoint)
|
otlp_exporter = OTLPSpanExporter(endpoint=otlp_endpoint)
|
||||||
@@ -88,11 +92,7 @@ class OpenTelemetryConfig:
|
|||||||
f"OpenTelemetry tracing configured with OTLP endpoint: {otlp_endpoint}"
|
f"OpenTelemetry tracing configured with OTLP endpoint: {otlp_endpoint}"
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
logger.info(
|
logger.info("OpenTelemetry tracing configured without OTLP endpoint")
|
||||||
"OpenTelemetry tracing configured without OTLP endpoint"
|
|
||||||
)
|
|
||||||
else:
|
|
||||||
logger.info("OpenTelemetry tracing configured (export disabled)")
|
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"Failed to setup OpenTelemetry tracing: {e}")
|
logger.error(f"Failed to setup OpenTelemetry tracing: {e}")
|
||||||
|
|||||||
@@ -318,8 +318,7 @@ try:
|
|||||||
setup_opentelemetry()
|
setup_opentelemetry()
|
||||||
|
|
||||||
# Add OpenTelemetry middleware (always enabled)
|
# Add OpenTelemetry middleware (always enabled)
|
||||||
# TODO: Need to reenable this again!
|
MIDDLEWARE.append("ivatar.opentelemetry_middleware.OpenTelemetryMiddleware")
|
||||||
# MIDDLEWARE.append("ivatar.opentelemetry_middleware.OpenTelemetryMiddleware")
|
|
||||||
except (ImportError, NameError):
|
except (ImportError, NameError):
|
||||||
# OpenTelemetry packages not installed or configuration failed
|
# OpenTelemetry packages not installed or configuration failed
|
||||||
pass
|
pass
|
||||||
|
|||||||
@@ -142,7 +142,6 @@ class OpenTelemetryConfigTest(TestCase):
|
|||||||
mock_periodic_reader.assert_called_once()
|
mock_periodic_reader.assert_called_once()
|
||||||
mock_metrics.set_meter_provider.assert_called_once()
|
mock_metrics.set_meter_provider.assert_called_once()
|
||||||
|
|
||||||
@patch("ivatar.opentelemetry_config.DjangoInstrumentor")
|
|
||||||
@patch("ivatar.opentelemetry_config.Psycopg2Instrumentor")
|
@patch("ivatar.opentelemetry_config.Psycopg2Instrumentor")
|
||||||
@patch("ivatar.opentelemetry_config.PyMySQLInstrumentor")
|
@patch("ivatar.opentelemetry_config.PyMySQLInstrumentor")
|
||||||
@patch("ivatar.opentelemetry_config.RequestsInstrumentor")
|
@patch("ivatar.opentelemetry_config.RequestsInstrumentor")
|
||||||
@@ -153,7 +152,6 @@ class OpenTelemetryConfigTest(TestCase):
|
|||||||
mock_requests,
|
mock_requests,
|
||||||
mock_pymysql,
|
mock_pymysql,
|
||||||
mock_psycopg2,
|
mock_psycopg2,
|
||||||
mock_django,
|
|
||||||
):
|
):
|
||||||
"""Test instrumentation setup."""
|
"""Test instrumentation setup."""
|
||||||
os.environ["OTEL_ENABLED"] = "true"
|
os.environ["OTEL_ENABLED"] = "true"
|
||||||
@@ -161,7 +159,7 @@ class OpenTelemetryConfigTest(TestCase):
|
|||||||
config = OpenTelemetryConfig()
|
config = OpenTelemetryConfig()
|
||||||
config.setup_instrumentation()
|
config.setup_instrumentation()
|
||||||
|
|
||||||
mock_django().instrument.assert_called_once()
|
# DjangoInstrumentor is no longer used, so we don't test it
|
||||||
mock_psycopg2().instrument.assert_called_once()
|
mock_psycopg2().instrument.assert_called_once()
|
||||||
mock_pymysql().instrument.assert_called_once()
|
mock_pymysql().instrument.assert_called_once()
|
||||||
mock_requests().instrument.assert_called_once()
|
mock_requests().instrument.assert_called_once()
|
||||||
|
|||||||
Reference in New Issue
Block a user