mirror of
https://github.com/BerriAI/litellm.git
synced 2025-04-26 11:14:04 +00:00
(feat) provider budget routing improvements (#6827)
* minor fix for provider budget * fix raise good error message when budget crossed for provider budget * fix test provider budgets * test provider budgets * feat - emit llm provider spend on prometheus * test_prometheus_metric_tracking * doc provider budgets
This commit is contained in:
parent
ce6465c9df
commit
64b46e32cf
7 changed files with 261 additions and 20 deletions
|
@ -228,6 +228,13 @@ class PrometheusLogger(CustomLogger):
|
|||
"api_key_alias",
|
||||
],
|
||||
)
|
||||
# llm api provider budget metrics
|
||||
self.litellm_provider_remaining_budget_metric = Gauge(
|
||||
"litellm_provider_remaining_budget_metric",
|
||||
"Remaining budget for provider - used when you set provider budget limits",
|
||||
labelnames=["api_provider"],
|
||||
)
|
||||
|
||||
# Get all keys
|
||||
_logged_llm_labels = [
|
||||
"litellm_model_name",
|
||||
|
@ -1130,6 +1137,19 @@ class PrometheusLogger(CustomLogger):
|
|||
litellm_model_name, model_id, api_base, api_provider, exception_status
|
||||
).inc()
|
||||
|
||||
def track_provider_remaining_budget(
|
||||
self, provider: str, spend: float, budget_limit: float
|
||||
):
|
||||
"""
|
||||
Track provider remaining budget in Prometheus
|
||||
"""
|
||||
self.litellm_provider_remaining_budget_metric.labels(provider).set(
|
||||
self._safe_get_remaining_budget(
|
||||
max_budget=budget_limit,
|
||||
spend=spend,
|
||||
)
|
||||
)
|
||||
|
||||
def _safe_get_remaining_budget(
|
||||
self, max_budget: Optional[float], spend: Optional[float]
|
||||
) -> float:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue