fix(test): add missing Prometheus metric labels to test_proxy_failure_metrics

## Problem
test_proxy_failure_metrics was failing in CI because the expected metric
patterns didn't include labels that were recently added to Prometheus metrics:
- client_ip (added in #19717)
- user_agent (added in #19717)
- model_id (added in #19678)

## Solution
Update the expected metric patterns in test_proxy_failure_metrics to include
the new labels in the correct alphabetical order (as Prometheus outputs them):
- litellm_proxy_failed_requests_metric_total
- litellm_proxy_total_requests_metric_total

Labels are now: 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
This commit is contained in:
shin-bot-litellm 2026-02-01 00:53:01 +00:00
parent 9ddcdbcaf7
commit 996f969526

View file

@ -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")