Merge branch 'devel' into 'master'

Get OTEL fixed

See merge request oliver/ivatar!269
This commit is contained in:
Oliver Falk
2025-10-18 12:30:38 +02:00
3 changed files with 17 additions and 20 deletions

View File

@@ -73,26 +73,26 @@ class OpenTelemetryConfig:
def setup_tracing(self) -> None:
"""Set up OpenTelemetry tracing."""
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
trace.set_tracer_provider(TracerProvider(resource=self.resource))
tracer_provider = trace.get_tracer_provider()
# Configure OTLP exporter if export is enabled and endpoint is provided
if self.export_enabled:
otlp_endpoint = os.environ.get("OTEL_EXPORTER_OTLP_ENDPOINT")
if otlp_endpoint:
otlp_exporter = OTLPSpanExporter(endpoint=otlp_endpoint)
span_processor = BatchSpanProcessor(otlp_exporter)
tracer_provider.add_span_processor(span_processor)
logger.info(
f"OpenTelemetry tracing configured with OTLP endpoint: {otlp_endpoint}"
)
else:
logger.info(
"OpenTelemetry tracing configured without OTLP endpoint"
)
# Configure OTLP exporter if endpoint is provided
otlp_endpoint = os.environ.get("OTEL_EXPORTER_OTLP_ENDPOINT")
if otlp_endpoint:
otlp_exporter = OTLPSpanExporter(endpoint=otlp_endpoint)
span_processor = BatchSpanProcessor(otlp_exporter)
tracer_provider.add_span_processor(span_processor)
logger.info(
f"OpenTelemetry tracing configured with OTLP endpoint: {otlp_endpoint}"
)
else:
logger.info("OpenTelemetry tracing configured (export disabled)")
logger.info("OpenTelemetry tracing configured without OTLP endpoint")
except Exception as e:
logger.error(f"Failed to setup OpenTelemetry tracing: {e}")

View File

@@ -318,8 +318,7 @@ try:
setup_opentelemetry()
# 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):
# OpenTelemetry packages not installed or configuration failed
pass

View File

@@ -142,7 +142,6 @@ class OpenTelemetryConfigTest(TestCase):
mock_periodic_reader.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.PyMySQLInstrumentor")
@patch("ivatar.opentelemetry_config.RequestsInstrumentor")
@@ -153,7 +152,6 @@ class OpenTelemetryConfigTest(TestCase):
mock_requests,
mock_pymysql,
mock_psycopg2,
mock_django,
):
"""Test instrumentation setup."""
os.environ["OTEL_ENABLED"] = "true"
@@ -161,7 +159,7 @@ class OpenTelemetryConfigTest(TestCase):
config = OpenTelemetryConfig()
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_pymysql().instrument.assert_called_once()
mock_requests().instrument.assert_called_once()