diff --git a/litellm/integrations/newrelic/newrelic.py b/litellm/integrations/newrelic/newrelic.py index 93fe09d6010..01b431e6e45 100644 --- a/litellm/integrations/newrelic/newrelic.py +++ b/litellm/integrations/newrelic/newrelic.py @@ -267,7 +267,7 @@ class NewRelicLogger(CustomLogger): if not trace_id: # Generate a random trace_id for grouping AI monitoring events - trace_id = str(uuid.uuid4()) + trace_id = uuid.uuid4().hex verbose_logger.debug( f"New Relic trace_id not available from distributed tracing headers. " f"Generated trace_id={trace_id} for AI monitoring event grouping." diff --git a/tests/test_litellm/integrations/newrelic/test_newrelic.py b/tests/test_litellm/integrations/newrelic/test_newrelic.py index 4bac745c7f1..d998855aec8 100644 --- a/tests/test_litellm/integrations/newrelic/test_newrelic.py +++ b/tests/test_litellm/integrations/newrelic/test_newrelic.py @@ -211,14 +211,14 @@ class TestGetTraceContext: kwargs = make_kwargs() trace_id, span_id = self.logger._get_trace_context(kwargs) assert trace_id is not None - assert len(trace_id) == 36 # UUID format + assert len(trace_id) == 32 # 32-char lowercase hex, matches W3C traceparent format def test_generates_uuid_when_traceparent_malformed(self): kwargs = make_kwargs(traceparent="not-valid") trace_id, span_id = self.logger._get_trace_context(kwargs) - # Falls back to a generated UUID + # Falls back to a 32-char lowercase hex, matching W3C traceparent format assert trace_id is not None - assert len(trace_id) == 36 + assert len(trace_id) == 32 # ---------------------------------------------------------------------------