From e2be9959dba5543a31d40b2bdee2673590a634be Mon Sep 17 00:00:00 2001 From: Josh Bonczkowski Date: Wed, 11 Mar 2026 13:37:25 -0400 Subject: [PATCH] Moving New Relic imports into the methods to support unit tests. --- litellm/integrations/newrelic/newrelic.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/litellm/integrations/newrelic/newrelic.py b/litellm/integrations/newrelic/newrelic.py index 358bb32a50d..e5c40a4b064 100644 --- a/litellm/integrations/newrelic/newrelic.py +++ b/litellm/integrations/newrelic/newrelic.py @@ -51,8 +51,6 @@ from litellm.integrations.custom_logger import CustomLogger from litellm.types.integrations.newrelic import NewRelicInitParams from litellm.types.utils import ModelResponse, Message -import newrelic.agent - # Global state for supportability metric emission # Protected by _metric_lock to ensure thread-safe access @@ -103,6 +101,7 @@ class NewRelicLogger(CustomLogger): else: # Validate that newrelic package is available try: + import newrelic.agent newrelic.agent.register_application() self.enabled = True @@ -171,6 +170,7 @@ class NewRelicLogger(CustomLogger): global _last_metric_emission_time try: + import newrelic.agent litellm_version = self._get_litellm_version() metric_name = f"Supportability/Python/ML/LiteLLM/{litellm_version}" @@ -562,6 +562,7 @@ class NewRelicLogger(CustomLogger): messages: List of message dicts to record """ try: + import newrelic.agent app = newrelic.agent.application() for message in messages: @@ -603,6 +604,7 @@ class NewRelicLogger(CustomLogger): def _record_error_metric(self): """Record error metric to New Relic.""" try: + import newrelic.agent newrelic.agent.record_custom_metric("LLM/LiteLLM/Error", 1) except Exception as e: verbose_logger.warning(f"Failed to record New Relic error metric: {e}")