UN-2830 [MISC] Suppress OpenTelemetry EventLogger deprecation warning in prompt-service (#1585)
Some checks failed
Container Image Build Test for PRs / build (push) Has been cancelled
Run tox tests with UV / test (push) Has been cancelled

UN-2830 Suppress OpenTelemetry EventLogger LogRecord deprecation warning in prompt-service

Suppressed the LogDeprecatedInitWarning from OpenTelemetry SDK 1.37.0's EventLogger.emit()
method which still uses deprecated trace_id/span_id/trace_flags parameters instead of the
context parameter.

This is a temporary workaround for an upstream bug in OpenTelemetry Python SDK where
EventLogger.emit() was not updated when LogRecord API was changed to accept context parameter.
The warning only appears in prompt-service because llama-index emits OpenTelemetry Events.

See: https://github.com/open-telemetry/opentelemetry-python/issues/4328

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
Chandrasekharan M
2025-10-27 11:11:25 +05:30
committed by GitHub
parent 13642ba376
commit 8eb50f7128

View File

@@ -1,4 +1,5 @@
import logging
import warnings
from os import environ as env
from dotenv import load_dotenv
@@ -22,6 +23,19 @@ def create_app() -> Flask:
"""Creates and configures the Flask application."""
log_level = env.get("LOG_LEVEL", LogLevel.INFO.value).upper()
setup_logging(log_level)
# Suppress OpenTelemetry EventLogger LogRecord deprecation warning
# This is a bug in OpenTelemetry SDK 1.37.0 where EventLogger.emit() still uses
# deprecated trace_id/span_id/trace_flags parameters instead of context parameter.
# See: https://github.com/open-telemetry/opentelemetry-python/issues/4328
# TODO: Remove this suppression once OpenTelemetry fixes EventLogger.emit()
warnings.filterwarnings(
"ignore",
message="LogRecord init with.*trace_id.*span_id.*trace_flags.*deprecated",
category=DeprecationWarning,
module="opentelemetry.sdk._events",
)
log_level = getattr(logging, log_level, logging.INFO)
app = Flask("prompt-service")
app.logger.setLevel(log_level)