From c4aff65c08958d6760e697036269247fa1fd6995 Mon Sep 17 00:00:00 2001 From: shin-bot-litellm Date: Sat, 31 Jan 2026 17:49:21 +0000 Subject: [PATCH] fix(datadog): check for agent mode before requiring DD_API_KEY/DD_SITE The DataDog LLM Obs logger was checking for DD_API_KEY and DD_SITE before checking if agent mode (LITELLM_DD_AGENT_HOST) was configured. In agent mode, the DataDog agent handles authentication, so these environment variables are not required. This fix moves the agent mode check first, and only validates DD_API_KEY and DD_SITE when using direct API mode. Fixes test_datadog_llm_obs_agent_configuration and test_datadog_llm_obs_agent_no_api_key_ok --- litellm/integrations/datadog/datadog_llm_obs.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/litellm/integrations/datadog/datadog_llm_obs.py b/litellm/integrations/datadog/datadog_llm_obs.py index 076a147c606..e5ce9997491 100644 --- a/litellm/integrations/datadog/datadog_llm_obs.py +++ b/litellm/integrations/datadog/datadog_llm_obs.py @@ -55,14 +55,9 @@ class DataDogLLMObsLogger(CustomBatchLogger): create_mock_datadog_client() verbose_logger.debug("[DATADOG MOCK] DataDogLLMObs logger initialized in mock mode") - if os.getenv("DD_API_KEY", None) is None: - raise Exception("DD_API_KEY is not set, set 'DD_API_KEY=<>'") - if os.getenv("DD_SITE", None) is None: - raise Exception( - "DD_SITE is not set, set 'DD_SITE=<>', example sit = `us5.datadoghq.com`" - ) # Configure DataDog endpoint (Agent or Direct API) # Use LITELLM_DD_AGENT_HOST to avoid conflicts with ddtrace's DD_AGENT_HOST + # Check for agent mode FIRST - agent mode doesn't require DD_API_KEY or DD_SITE dd_agent_host = os.getenv("LITELLM_DD_AGENT_HOST") self.async_client = get_async_httpx_client( @@ -73,6 +68,13 @@ class DataDogLLMObsLogger(CustomBatchLogger): if dd_agent_host: self._configure_dd_agent(dd_agent_host=dd_agent_host) else: + # Only require DD_API_KEY and DD_SITE for direct API mode + if os.getenv("DD_API_KEY", None) is None: + raise Exception("DD_API_KEY is not set, set 'DD_API_KEY=<>'") + if os.getenv("DD_SITE", None) is None: + raise Exception( + "DD_SITE is not set, set 'DD_SITE=<>', example sit = `us5.datadoghq.com`" + ) self._configure_dd_direct_api() # Optional override for testing