Zum Hauptinhalt springen

📈 Prometheus Metriken

Info

✨ Prometheus Metriken ist auf LiteLLM Enterprise verfügbar

Enterprise-Preise

Holen Sie sich einen kostenlosen 7-Tage-Testschlüssel

LiteLLM stellt einen /metrics Endpunkt zur Verfügung, den Prometheus abfragen kann

Schnellstart

Wenn Sie die LiteLLM CLI mit litellm --config proxy_config.yaml verwenden, müssen Sie pip install prometheus_client==0.20.0 installieren. Dies ist bereits im LiteLLM Docker Image vorinstalliert

Fügen Sie dies zu Ihrer proxy config.yaml hinzu

model_list:
- model_name: gpt-3.5-turbo
litellm_params:
model: gpt-3.5-turbo
litellm_settings:
callbacks: ["prometheus"]

Starten Sie den Proxy

litellm --config config.yaml --debug

Testanfrage

curl --location 'http://0.0.0.0:4000/chat/completions' \
--header 'Content-Type: application/json' \
--data '{
"model": "gpt-3.5-turbo",
"messages": [
{
"role": "user",
"content": "what llm are you"
}
]
}'

Metriken anzeigen unter /metrics, Besuchen Sie https://:4000/metrics

https://:4000/metrics

# <proxy_base_url>/metrics

Virtuelle Schlüssel, Teams, Interne Benutzer

Verwenden Sie dies zur Verfolgung pro Benutzer, Schlüssel, Team usw.

MetriknameBeschreibung
litellm_spend_metricGesamtausgaben, pro "user", "key", "model", "team", "end-user"
litellm_total_tokensEingabe- + Ausgabetokens pro "end_user", "hashed_api_key", "api_key_alias", "requested_model", "team", "team_alias", "user", "model"
litellm_input_tokensEingabetokens pro "end_user", "hashed_api_key", "api_key_alias", "requested_model", "team", "team_alias", "user", "model"
litellm_output_tokensAusgabetokens pro "end_user", "hashed_api_key", "api_key_alias", "requested_model", "team", "team_alias", "user", "model"

Team - Budget

MetriknameBeschreibung
litellm_team_max_budget_metricMaximales Budget für Team-Labels: "team_id", "team_alias"
litellm_remaining_team_budget_metricVerbleibendes Budget für Team (ein in LiteLLM erstelltes Team) Labels: "team_id", "team_alias"
litellm_team_budget_remaining_hours_metricStunden bis zum Zurücksetzen des Team-Budgets Labels: "team_id", "team_alias"

Virtueller Schlüssel - Budget

MetriknameBeschreibung
litellm_api_key_max_budget_metricMaximales Budget für API-Schlüssel-Labels: "hashed_api_key", "api_key_alias"
litellm_remaining_api_key_budget_metricVerbleibendes Budget für API-Schlüssel (ein in LiteLLM erstellter Schlüssel) Labels: "hashed_api_key", "api_key_alias"
litellm_api_key_budget_remaining_hours_metricStunden bis zum Zurücksetzen des API-Schlüssel-Budgets Labels: "hashed_api_key", "api_key_alias"

Virtueller Schlüssel - Ratenbegrenzung

MetriknameBeschreibung
litellm_remaining_api_key_requests_for_modelVerbleibende Anfragen für einen LiteLLM virtuellen API-Schlüssel, nur wenn ein modellspezifisches Ratenlimit (rpm) für diesen virtuellen Schlüssel festgelegt wurde. Labels: "hashed_api_key", "api_key_alias", "model"
litellm_remaining_api_key_tokens_for_modelVerbleibende Tokens für einen LiteLLM virtuellen API-Schlüssel, nur wenn ein modellspezifisches Token-Limit (tpm) für diesen virtuellen Schlüssel festgelegt wurde. Labels: "hashed_api_key", "api_key_alias", "model"

Budget-Metriken beim Start initialisieren

Wenn Sie möchten, dass LiteLLM die Budget-Metriken für alle Schlüssel und Teams emittiert, unabhängig davon, ob sie Anfragen erhalten oder nicht, setzen Sie prometheus_initialize_budget_metrics auf true in der config.yaml

So funktioniert es

  • Wenn prometheus_initialize_budget_metrics auf true gesetzt ist
    • Alle 5 Minuten führt LiteLLM einen Cronjob aus, um alle Schlüssel und Teams aus der Datenbank zu lesen
    • Anschließend emittiert es die Budget-Metriken für jeden Schlüssel und jedes Team
    • Dies dient zur Befüllung der Budget-Metriken auf dem /metrics Endpunkt
litellm_settings:
callbacks: ["prometheus"]
prometheus_initialize_budget_metrics: true

Proxy-Level Tracking Metriken

Verwenden Sie dies, um die allgemeine LiteLLM Proxy-Nutzung zu verfolgen.

  • Tatsächliche Verkehrsrate zum Proxy verfolgen
  • Anzahl der **clientseitigen** Anfragen und Fehler bei Anfragen an den Proxy
MetriknameBeschreibung
litellm_proxy_failed_requests_metricGesamtzahl der fehlgeschlagenen Antworten vom Proxy – der Client hat keine Erfolgsantwort von LiteLLM Proxy erhalten. Labels: "end_user", "hashed_api_key", "api_key_alias", "requested_model", "team", "team_alias", "user", "exception_status", "exception_class"
litellm_proxy_total_requests_metricGesamtzahl der an den Proxy-Server gesendeten Anfragen – Verfolgung der clientseitigen Anfragen. Labels: "end_user", "hashed_api_key", "api_key_alias", "requested_model", "team", "team_alias", "user", "status_code"

LLM Provider Metriken

Verwenden Sie dies für die Überwachung von LLM API-Fehlern und die Verfolgung verbleibender Raten- und Token-Limits

Verfolgte Labels

LabelBeschreibung
litellm_model_nameDer Name des LLM-Modells, das von LiteLLM verwendet wird
requested_modelDas im Request gesendete Modell
model_idDie model_id der Bereitstellung. Automatisch von LiteLLM generiert, jede Bereitstellung hat eine eindeutige model_id
api_baseDie API-Basis der Bereitstellung
api_providerDer LLM API-Provider, der für den Provider verwendet wird. Beispiel (azure, openai, vertex_ai)
hashed_api_keyDer gehashte API-Schlüssel der Anfrage
api_key_aliasDer Alias des verwendeten API-Schlüssels
teamDas Team der Anfrage
team_aliasDer Alias des verwendeten Teams
exception_statusDer Status der Ausnahme, falls vorhanden
exception_classDie Klasse der Ausnahme, falls vorhanden

Erfolg und Fehler

MetriknameBeschreibung
litellm_deployment_success_responsesGesamtzahl der erfolgreichen LLM API-Aufrufe für die Bereitstellung. Labels: "requested_model", "litellm_model_name", "model_id", "api_base", "api_provider", "hashed_api_key", "api_key_alias", "team", "team_alias"
litellm_deployment_failure_responsesGesamtzahl der fehlgeschlagenen LLM API-Aufrufe für eine bestimmte LLM-Bereitstellung. Labels: "requested_model", "litellm_model_name", "model_id", "api_base", "api_provider", "hashed_api_key", "api_key_alias", "team", "team_alias", "exception_status", "exception_class"
litellm_deployment_total_requestsGesamtzahl der LLM API-Aufrufe für die Bereitstellung – Erfolg + Fehler. Labels: "requested_model", "litellm_model_name", "model_id", "api_base", "api_provider", "hashed_api_key", "api_key_alias", "team", "team_alias"

Verbleibende Anfragen und Tokens

MetriknameBeschreibung
litellm_remaining_requests_metricVerfolgt x-ratelimit-remaining-requests, das von der LLM API-Bereitstellung zurückgegeben wird. Labels: "model_group", "api_provider", "api_base", "litellm_model_name", "hashed_api_key", "api_key_alias"
litellm_remaining_tokensVerfolgt x-ratelimit-remaining-tokens, das von der LLM API-Bereitstellung zurückgegeben wird. Labels: "model_group", "api_provider", "api_base", "litellm_model_name", "hashed_api_key", "api_key_alias"

Bereitstellungsstatus

MetriknameBeschreibung
litellm_deployment_stateDer Status der Bereitstellung: 0 = einwandfrei, 1 = teilweiser Ausfall, 2 = vollständiger Ausfall. Labels: "litellm_model_name", "model_id", "api_base", "api_provider"
litellm_deployment_latency_per_output_tokenLatenz pro Ausgabetoken für die Bereitstellung. Labels: "litellm_model_name", "model_id", "api_base", "api_provider", "hashed_api_key", "api_key_alias", "team", "team_alias"

Fallback (Failover) Metriken

MetriknameBeschreibung
litellm_deployment_cooled_downAnzahl der Male, die eine Bereitstellung durch die LiteLLM Load Balancing Logik heruntergefahren wurde. Labels: "litellm_model_name", "model_id", "api_base", "api_provider", "exception_status"
litellm_deployment_successful_fallbacksAnzahl erfolgreicher Fallback-Anfragen vom primären Modell -> Fallback-Modell. Labels: "requested_model", "fallback_model", "hashed_api_key", "api_key_alias", "team", "team_alias", "exception_status", "exception_class"
litellm_deployment_failed_fallbacksAnzahl fehlgeschlagener Fallback-Anfragen vom primären Modell -> Fallback-Modell. Labels: "requested_model", "fallback_model", "hashed_api_key", "api_key_alias", "team", "team_alias", "exception_status", "exception_class"

Anfragelatenz Metriken

MetriknameBeschreibung
litellm_request_total_latency_metricGesamtlatenz (Sekunden) für eine Anfrage an den LiteLLM Proxy Server – verfolgt für die Labels "end_user", "hashed_api_key", "api_key_alias", "requested_model", "team", "team_alias", "user", "model"
litellm_overhead_latency_metricLatenz-Overhead (Sekunden), der durch die LiteLLM-Verarbeitung hinzugefügt wird – verfolgt für die Labels "end_user", "hashed_api_key", "api_key_alias", "requested_model", "team", "team_alias", "user", "model"
litellm_llm_api_latency_metricLatenz (Sekunden) nur für den LLM API-Aufruf – verfolgt für die Labels "model", "hashed_api_key", "api_key_alias", "team", "team_alias", "requested_model", "end_user", "user"
litellm_llm_api_time_to_first_token_metricZeit bis zum ersten Token für den LLM API-Aufruf – verfolgt für die Labels model, hashed_api_key, api_key_alias, team, team_alias[Hinweis: Wird nur für Streaming-Anfragen emittiert]

[BETA]Benutzerdefinierte Metriken

Verfolgen Sie benutzerdefinierte Metriken auf Prometheus für alle oben genannten Ereignisse.

  1. Definieren Sie die benutzerdefinierten Metriken in der config.yaml
model_list:
- model_name: openai/gpt-3.5-turbo
litellm_params:
model: openai/gpt-3.5-turbo
api_key: os.environ/OPENAI_API_KEY

litellm_settings:
callbacks: ["prometheus"]
custom_prometheus_metadata_labels: ["metadata.foo", "metadata.bar"]
  1. Senden Sie eine Anfrage mit den benutzerdefinierten Metadaten-Labels
curl -L -X POST 'http://0.0.0.0:4000/v1/chat/completions' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <LITELLM_API_KEY>' \
-d '{
"model": "openai/gpt-3.5-turbo",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What's in this image?"
}
]
}
],
"max_tokens": 300,
"metadata": {
"foo": "hello world"
}
}'
  1. Überprüfen Sie Ihren /metrics Endpunkt auf die benutzerdefinierten Metriken
... "metadata_foo": "hello world" ...

Systemgesundheit überwachen

Um die Gesundheit von LiteLLM-begleitenden Diensten (Redis / PostgreSQL) zu überwachen, führen Sie Folgendes aus:

model_list:
- model_name: gpt-3.5-turbo
litellm_params:
model: gpt-3.5-turbo
litellm_settings:
service_callback: ["prometheus_system"]
MetriknameBeschreibung
litellm_redis_latencyHistogramm der Latenz für Redis-Aufrufe
litellm_redis_failsAnzahl der fehlgeschlagenen Redis-Aufrufe
litellm_self_latencyHistogramm der Latenz für erfolgreiche LiteLLM API-Aufrufe

DB Transaktions-Queue-Gesundheitsmetriken

Verwenden Sie diese Metriken, um die Gesundheit der DB Transaktions-Queue zu überwachen. Z.B. Überwachung der Größe der In-Memory- und Redis-Puffer.

MetriknameBeschreibungSpeichertyp
litellm_pod_lock_manager_sizeZeigt an, welcher Pod die Sperre zum Schreiben von Updates in die Datenbank hat.Redis
litellm_in_memory_daily_spend_update_queue_sizeAnzahl der Elemente in der täglichen In-Memory-Ausgaben-Update-Queue. Dies sind die aggregierten Ausgabenprotokolle für jeden Benutzer.In-Memory
litellm_redis_daily_spend_update_queue_sizeAnzahl der Elemente in der täglichen Redis-Ausgaben-Update-Queue. Dies sind die aggregierten Ausgabenprotokolle für jeden Benutzer.Redis
litellm_in_memory_spend_update_queue_sizeIn-Memory-aggregierte Ausgabenwerte für Schlüssel, Benutzer, Teams, Teammitglieder usw.In-Memory
litellm_redis_spend_update_queue_sizeRedis-aggregierte Ausgabenwerte für Schlüssel, Benutzer, Teams usw.Redis

🔥 Von LiteLLM gepflegte Grafana Dashboards

Link zu von LiteLLM gepflegten Grafana Dashboards

https://github.com/BerriAI/litellm/tree/main/cookbook/litellm_proxy_server/grafana_dashboard

Hier ist ein Screenshot der Metriken, die Sie mit dem LiteLLM Grafana Dashboard überwachen können

Veraltete Metriken

MetriknameBeschreibung
litellm_llm_api_failed_requests_metricveraltet verwenden Sie litellm_proxy_failed_requests_metric
litellm_requests_metricveraltet verwenden Sie litellm_proxy_total_requests_metric

Authentifizierung am /metrics Endpunkt hinzufügen

Standardmäßig ist der /metrics Endpunkt nicht authentifiziert.

Sie können die Ausführung der LiteLLM-Authentifizierung auf dem /metrics Endpunkt aktivieren, indem Sie Folgendes in der Konfiguration festlegen

litellm_settings:
require_auth_for_metrics_endpoint: true

FAQ

Was sind _created vs. _total Metriken?

  • _created Metriken sind Metriken, die beim Start des Proxys erstellt werden
  • _total Metriken sind Metriken, die für jede Anfrage inkrementiert werden

Sie sollten die _total Metriken für Ihre Zählungszwecke verwenden