From 05b8b9a150296f0d0232de4ea471ad0dd7fb2f36 Mon Sep 17 00:00:00 2001 From: mubashir1osmani Date: Wed, 6 May 2026 02:30:57 -0400 Subject: [PATCH] remove arize project name --- dev_config.yaml | 1 + litellm/integrations/arize/arize_phoenix.py | 23 ++++++++++--------- .../integrations/arize/test_arize_phoenix.py | 17 +------------- 3 files changed, 14 insertions(+), 27 deletions(-) diff --git a/dev_config.yaml b/dev_config.yaml index 64e3c14703e..80a654c3fe6 100644 --- a/dev_config.yaml +++ b/dev_config.yaml @@ -9,5 +9,6 @@ general_settings: master_key: sk-1234 litellm_settings: + callbacks: ["arize_phoenix"] drop_params: True telemetry: False diff --git a/litellm/integrations/arize/arize_phoenix.py b/litellm/integrations/arize/arize_phoenix.py index a63d61d3541..c356db1ed4d 100644 --- a/litellm/integrations/arize/arize_phoenix.py +++ b/litellm/integrations/arize/arize_phoenix.py @@ -69,7 +69,6 @@ class ArizePhoenixLogger(OpenTelemetry): # type: ignore By creating our own provider we guarantee Arize Phoenix always gets its own exporter pipeline, regardless of initialisation order. """ - from opentelemetry.sdk.trace import TracerProvider from opentelemetry.trace import SpanKind # LRU cache of project_name -> TracerProvider, bounded to _MAX_PROJECT_PROVIDERS. @@ -83,11 +82,7 @@ class ArizePhoenixLogger(OpenTelemetry): # type: ignore # Resolve the default project name at init time so the first # request to the default project hits the cache. - default_project = ( - getattr(self.config, "project_name", None) - or os.environ.get("PHOENIX_PROJECT_NAME") - or "default" - ) + default_project = self._default_project_name() default_provider = self._build_project_provider(default_project) self._project_providers[default_project] = default_provider self.tracer = default_provider.get_tracer("litellm") @@ -112,6 +107,13 @@ class ArizePhoenixLogger(OpenTelemetry): # type: ignore # Per-project TracerProvider registry # ------------------------------------------------------------------ + def _default_project_name(self) -> str: + return ( + getattr(self.config, "project_name", None) + or os.environ.get("PHOENIX_PROJECT_NAME") + or "default" + ) + def _build_project_provider(self, project_name: str): """ Build a fresh TracerProvider whose Resource carries the given @@ -162,10 +164,10 @@ class ArizePhoenixLogger(OpenTelemetry): # type: ignore Resolve the target Phoenix/Arize project for this request. Priority: - 1. metadata.arize_project_name_override (Arize-specific per-request override) - 2. metadata.phoenix_project_name (existing Phoenix per-request param) - 3. PHOENIX_PROJECT_NAME env var (this is where default traces would go) - 5. "default" + 1. metadata.arize_project_name_override (per-request override) + 2. metadata.phoenix_project_name (per-request Phoenix param) + 3. PHOENIX_PROJECT_NAME env var + 4. "default" """ def _from_metadata(key: str) -> Optional[str]: @@ -208,7 +210,6 @@ class ArizePhoenixLogger(OpenTelemetry): # type: ignore _from_metadata("arize_project_name_override") or _from_metadata("phoenix_project_name") or os.environ.get("PHOENIX_PROJECT_NAME") - or os.environ.get("ARIZE_PROJECT_NAME") or "default" ) diff --git a/tests/test_litellm/integrations/arize/test_arize_phoenix.py b/tests/test_litellm/integrations/arize/test_arize_phoenix.py index bb49c00d72c..ab0b3075b57 100644 --- a/tests/test_litellm/integrations/arize/test_arize_phoenix.py +++ b/tests/test_litellm/integrations/arize/test_arize_phoenix.py @@ -347,23 +347,8 @@ class TestResolveProjectName: def test_falls_back_to_phoenix_env_var(self): assert ArizePhoenixLogger._resolve_project_name({}) == "env-phoenix" - @patch.dict( - "os.environ", - {"ARIZE_PROJECT_NAME": "env-arize"}, - clear=False, - ) - def test_falls_back_to_arize_env_var(self): - for key in ("PHOENIX_PROJECT_NAME",): - patch.dict("os.environ", {key: ""}, clear=False).__enter__() - with patch.dict("os.environ", {"PHOENIX_PROJECT_NAME": ""}): - # PHOENIX_PROJECT_NAME empty string is falsy — should fall to ARIZE_PROJECT_NAME - assert ArizePhoenixLogger._resolve_project_name({}) == "env-arize" - def test_ultimate_fallback_is_default(self): - with patch.dict( - "os.environ", - {"PHOENIX_PROJECT_NAME": "", "ARIZE_PROJECT_NAME": ""}, - ): + with patch.dict("os.environ", {"PHOENIX_PROJECT_NAME": ""}): assert ArizePhoenixLogger._resolve_project_name({}) == "default" def test_litellm_params_metadata_also_checked(self):