From bcdfba55b5ba82f288b5b4fd3c58ada68fefabd6 Mon Sep 17 00:00:00 2001 From: shin-bot-litellm Date: Sun, 1 Feb 2026 01:11:26 +0000 Subject: [PATCH] fix(test): add missing Prometheus metric labels to test_proxy_failure_metrics Add client_ip, user_agent, model_id labels to expected metric patterns. These labels were added in PRs #19717 and #19678 but test wasn't updated. --- tests/otel_tests/test_prometheus.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/tests/otel_tests/test_prometheus.py b/tests/otel_tests/test_prometheus.py index ce3031b5141..78806733329 100644 --- a/tests/otel_tests/test_prometheus.py +++ b/tests/otel_tests/test_prometheus.py @@ -106,15 +106,19 @@ async def test_proxy_failure_metrics(): print("/metrics", metrics) # Check if the failure metric is present and correct - use pattern matching for robustness - expected_metric_pattern = 'litellm_proxy_failed_requests_metric_total{api_key_alias="None",end_user="None",exception_class="Openai.RateLimitError",exception_status="429",hashed_api_key="88dc28d0f030c55ed4ab77ed8faf098196cb1c05df778539800c9f1243fe6b4b",requested_model="fake-azure-endpoint",route="/chat/completions",team="None",team_alias="None",user="default_user_id",user_email="None"}' + # Labels are ordered alphabetically by Prometheus: api_key_alias, client_ip, end_user, exception_class, + # exception_status, hashed_api_key, model_id, requested_model, route, team, team_alias, user, user_agent, user_email + expected_metric_pattern = 'litellm_proxy_failed_requests_metric_total{api_key_alias="None",client_ip="None",end_user="None",exception_class="Openai.RateLimitError",exception_status="429",hashed_api_key="88dc28d0f030c55ed4ab77ed8faf098196cb1c05df778539800c9f1243fe6b4b",model_id="None",requested_model="fake-azure-endpoint",route="/chat/completions",team="None",team_alias="None",user="default_user_id",user_agent="None",user_email="None"}' - # Check if the pattern is in metrics (this metric doesn't include user_email field) + # Check if the pattern is in metrics assert any( expected_metric_pattern in line for line in metrics.split("\n") ), f"Expected failure metric pattern not found in /metrics. Pattern: {expected_metric_pattern}" - # Check total requests metric which includes user_email - total_requests_pattern = 'litellm_proxy_total_requests_metric_total{api_key_alias="None",end_user="None",hashed_api_key="88dc28d0f030c55ed4ab77ed8faf098196cb1c05df778539800c9f1243fe6b4b",requested_model="fake-azure-endpoint",route="/chat/completions",status_code="429",team="None",team_alias="None",user="default_user_id",user_email="None"}' + # Check total requests metric + # Labels are ordered alphabetically: api_key_alias, client_ip, end_user, hashed_api_key, model_id, + # requested_model, route, status_code, team, team_alias, user, user_agent, user_email + total_requests_pattern = 'litellm_proxy_total_requests_metric_total{api_key_alias="None",client_ip="None",end_user="None",hashed_api_key="88dc28d0f030c55ed4ab77ed8faf098196cb1c05df778539800c9f1243fe6b4b",model_id="None",requested_model="fake-azure-endpoint",route="/chat/completions",status_code="429",team="None",team_alias="None",user="default_user_id",user_agent="None",user_email="None"}' assert any( total_requests_pattern in line for line in metrics.split("\n")