refactor(prometheus): apply review nits - drop narration, build test fixtures in one shot

This commit is contained in:
pengzh1 2026-08-29 00:24:24 +08:00
parent 56d6288380
commit e211587740
2 changed files with 21 additions and 26 deletions

View file

@ -2620,11 +2620,6 @@ class PrometheusLogger(CustomLogger):
label_litellm_model_name = litellm_model_name
label_model_id = model_id
label_api_base = api_base
# custom_llm_provider can be absent from litellm_params when a
# resolved deployment fails (e.g. fallbacks); fall back to the
# best-effort resolver and coalesce to "" so the label never
# serializes as the literal "None" (same pattern as
# set_deployment_partial_outage below).
label_api_provider = ( # pyright: ignore[reportUnknownVariableType] # bare-dict kwargs, same pattern as every label reader in this handler
llm_provider
or self._extract_api_provider_from_request_data(

View file

@ -21,31 +21,32 @@ def prometheus_logger():
def _failure_samples(logger: PrometheusLogger):
"""Collected samples of the deployment-failure counter, as (labels, value)."""
samples = []
for metric in logger.litellm_deployment_failure_responses.collect():
for sample in metric.samples:
if sample.name == "litellm_deployment_failure_responses_total":
samples.append((dict(sample.labels), sample.value))
return samples
return [
(dict(sample.labels), sample.value)
for metric in logger.litellm_deployment_failure_responses.collect()
for sample in metric.samples
if sample.name == "litellm_deployment_failure_responses_total"
]
def _request_kwargs(model: str, standard_custom_provider: str | None = None) -> dict:
standard_logging_object = {
"model_id": "resolved-deployment-id",
"model_group": "my-model-group",
"api_base": "https://example.com",
"metadata": {},
}
if standard_custom_provider is not None:
standard_logging_object["custom_llm_provider"] = standard_custom_provider
def _request_kwargs(model: str, litellm_params_provider: str | None = None) -> dict:
"""A deployment-failure request as the proxy hands it to the logger.
Omitting litellm_params_provider leaves custom_llm_provider unset the #38531 scenario.
"""
return {
"model": model,
"exception": Exception("upstream 503"),
"litellm_params": {
# no "custom_llm_provider" key — the #38531 scenario
"metadata": {},
**({} if litellm_params_provider is None else {"custom_llm_provider": litellm_params_provider}),
},
"standard_logging_object": {
"model_id": "resolved-deployment-id",
"model_group": "my-model-group",
"api_base": "https://example.com",
"metadata": {},
},
"standard_logging_object": standard_logging_object,
}
@ -73,10 +74,9 @@ def test_missing_provider_infers_from_provider_prefixed_model(prometheus_logger)
def test_explicit_provider_still_wins(prometheus_logger):
"""Behavior is unchanged when custom_llm_provider is present."""
kwargs = _request_kwargs("openai/gpt-4o-mini")
kwargs["litellm_params"]["custom_llm_provider"] = "azure"
prometheus_logger.set_llm_deployment_failure_metrics(kwargs)
prometheus_logger.set_llm_deployment_failure_metrics(
_request_kwargs("openai/gpt-4o-mini", litellm_params_provider="azure")
)
samples = _failure_samples(prometheus_logger)
assert len(samples) == 1