From d1eedb04bd26805fffc41e5aa1060f72e8a6f072 Mon Sep 17 00:00:00 2001 From: Ishaan Jaff Date: Sat, 10 Aug 2024 14:05:18 -0700 Subject: [PATCH] prometheus log_success_fallback_event --- litellm/integrations/prometheus.py | 33 ++++++++++++++++++++++++++++++ litellm/proxy/proxy_config.yaml | 1 + 2 files changed, 34 insertions(+) diff --git a/litellm/integrations/prometheus.py b/litellm/integrations/prometheus.py index 1425b101c0..8e31bca137 100644 --- a/litellm/integrations/prometheus.py +++ b/litellm/integrations/prometheus.py @@ -170,6 +170,17 @@ class PrometheusLogger(CustomLogger): labelnames=_logged_llm_labels, ) + self.llm_deployment_successful_fallbacks = Counter( + "llm_deployment_successful_fallbacks", + "LLM Deployment Analytics - Number of successful fallback workloads", + ["primary_model", "fallback_model"], + ) + self.llm_deployment_failed_fallbacks = Counter( + "llm_deployment_failed_fallbacks", + "LLM Deployment Analytics - Number of failed fallback workloads", + ["primary_model", "fallback_model"], + ) + except Exception as e: print_verbose(f"Got exception on init prometheus client {str(e)}") raise e @@ -479,6 +490,28 @@ class PrometheusLogger(CustomLogger): ) return + async def log_success_fallback_event(self, original_model_group: str, kwargs: dict): + verbose_logger.debug( + "Prometheus: log_success_fallback_event, original_model_group: %s, kwargs: %s", + original_model_group, + kwargs, + ) + _new_model = kwargs.get("model") + self.llm_deployment_successful_fallbacks.labels( + primary_model=original_model_group, fallback_model=_new_model + ).inc() + + async def log_failure_fallback_event(self, original_model_group: str, kwargs: dict): + verbose_logger.debug( + "Prometheus: log_failure_fallback_event, original_model_group: %s, kwargs: %s", + original_model_group, + kwargs, + ) + _new_model = kwargs.get("model") + self.llm_deployment_failed_fallbacks.labels( + primary_model=original_model_group, fallback_model=_new_model + ).inc() + def set_deployment_state( self, state: int, diff --git a/litellm/proxy/proxy_config.yaml b/litellm/proxy/proxy_config.yaml index c16d09e72c..8d499c1c0f 100644 --- a/litellm/proxy/proxy_config.yaml +++ b/litellm/proxy/proxy_config.yaml @@ -37,5 +37,6 @@ general_settings: master_key: sk-1234 litellm_settings: + fallbacks: [{"gemini-1.5-pro-001": ["gpt-4o"]}] success_callback: ["langfuse", "prometheus"] failure_callback: ["prometheus"]