From 3b8a61aafb538d0fdbf6cc9de09482e07a7771a3 Mon Sep 17 00:00:00 2001 From: shivam Date: Wed, 28 Oct 2026 21:31:02 +0000 Subject: [PATCH] fix(otel): keep the legacy fallback for a credential-less newrelic preset Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- litellm/integrations/otel/presets/newrelic.py | 2 +- tests/unit/integrations/otel/test_otel_v2_destinations.py | 8 ++------ 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/litellm/integrations/otel/presets/newrelic.py b/litellm/integrations/otel/presets/newrelic.py index 25fe149eb46..3858de4f035 100644 --- a/litellm/integrations/otel/presets/newrelic.py +++ b/litellm/integrations/otel/presets/newrelic.py @@ -55,7 +55,7 @@ def newrelic_preset( return base.model_copy( update={ "exporters": [ - *operator_exporters(base.exporters), + *(operator_exporters(base.exporters) if settings.license_key else base.exporters), ExporterSpec( kind="otlp_http", endpoint=endpoint, diff --git a/tests/unit/integrations/otel/test_otel_v2_destinations.py b/tests/unit/integrations/otel/test_otel_v2_destinations.py index ab477cab08c..04ebf772862 100644 --- a/tests/unit/integrations/otel/test_otel_v2_destinations.py +++ b/tests/unit/integrations/otel/test_otel_v2_destinations.py @@ -3043,7 +3043,7 @@ class TestPresetDegradation: "https://otlp.nr-data.net", ] - def test_a_credentialless_newrelic_fallback_does_not_export_to_stdout(self, monkeypatch, capfd): + def test_a_credentialless_newrelic_without_a_base_exporter_falls_back(self, monkeypatch): from litellm.litellm_core_utils.litellm_logging import _maybe_construct_otel_v2 monkeypatch.delenv("NEW_RELIC_LICENSE_KEY", raising=False) @@ -3055,11 +3055,7 @@ class TestPresetDegradation: logger = in_fresh_context(_maybe_construct_otel_v2, "newrelic", []) is_otel_v2_enabled.cache_clear() - assert logger is not None - capfd.readouterr() - emit(logger.tracer_provider) - logger.tracer_provider.force_flush() - assert capfd.readouterr().out == "" + assert logger is None def test_an_explicit_console_exporter_keeps_a_credentialless_preset_on_v2(self, monkeypatch, capfd): """``OTEL_EXPORTER=console`` reads exactly like the placeholder ``_normalize``