Respect log level env for OTLP.
This commit is contained in:
parent
8b0a233816
commit
4b71fe4291
2 changed files with 28 additions and 1 deletions
|
|
@ -113,7 +113,7 @@ def setup_telemetry(service_name: str | None = None) -> None:
|
||||||
_log_provider = log_provider
|
_log_provider = log_provider
|
||||||
|
|
||||||
otel_log_handler = StructlogOTLPLogHandler(logger_provider=log_provider)
|
otel_log_handler = StructlogOTLPLogHandler(logger_provider=log_provider)
|
||||||
otel_log_handler.setLevel(logging.INFO)
|
otel_log_handler.setLevel(getattr(logging, settings.log_level.upper(), logging.INFO))
|
||||||
logging.getLogger().addHandler(otel_log_handler)
|
logging.getLogger().addHandler(otel_log_handler)
|
||||||
|
|
||||||
# Metrics infrastructure (OTel metrics → OTLP). Existing prometheus_client
|
# Metrics infrastructure (OTel metrics → OTLP). Existing prometheus_client
|
||||||
|
|
|
||||||
|
|
@ -74,3 +74,30 @@ def test_structlog_logs_reach_root_handlers() -> None:
|
||||||
|
|
||||||
log = get_logger("test")
|
log = get_logger("test")
|
||||||
log.info("smoke_test", answer=42)
|
log.info("smoke_test", answer=42)
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize("level", ["DEBUG", "INFO", "WARNING"])
|
||||||
|
def test_otel_handler_respects_configured_log_level(
|
||||||
|
monkeypatch: pytest.MonkeyPatch, level: str
|
||||||
|
) -> None:
|
||||||
|
"""The OTLP handler level matches settings.log_level so DEBUG logs can reach OpenObserve."""
|
||||||
|
from contract_check.core.config import get_settings
|
||||||
|
from contract_check.core.logging import configure_logging
|
||||||
|
from contract_check.core.telemetry import setup_telemetry, shutdown_telemetry
|
||||||
|
|
||||||
|
configure_logging(level, json_output=True, service="test-service", env="test")
|
||||||
|
monkeypatch.setattr(
|
||||||
|
get_settings(), "otel_exporter_otlp_endpoint", "http://localhost:9999/v1/logs"
|
||||||
|
)
|
||||||
|
monkeypatch.setattr(get_settings(), "log_level", level)
|
||||||
|
|
||||||
|
setup_telemetry("test")
|
||||||
|
root = logging.getLogger()
|
||||||
|
try:
|
||||||
|
otel_handler = next(
|
||||||
|
h for h in root.handlers if type(h).__name__ == "StructlogOTLPLogHandler"
|
||||||
|
)
|
||||||
|
assert otel_handler.level == getattr(logging, level)
|
||||||
|
finally:
|
||||||
|
shutdown_telemetry()
|
||||||
|
root.handlers = [h for h in root.handlers if type(h).__name__ != "StructlogOTLPLogHandler"]
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue