Zum Hauptinhalt springen

✨ Maximale Aufbewahrungsdauer für Verbrauchs-Logs

Hier wird erklärt, wie die maximale Aufbewahrungsdauer für Verbrauchs-Logs festgelegt wird. Dies hilft bei der Verwaltung der Datenbankgröße, indem alte Logs automatisch gelöscht werden.

Info

Voraussetzungen

  • Postgres (für die Protokollspeicherung)
  • Redis (optional) – erforderlich, nur wenn Sie mehrere Proxy-Instanzen ausführen und verteilte Sperren aktivieren möchten

Verwendung

Einrichtung

Fügen Sie dies Ihrer proxy_config.yaml unter general_settings hinzu

proxy_config.yaml
general_settings:
maximum_spend_logs_retention_period: "7d" # Keep logs for 7 days

# Optional: set how frequently cleanup should run - default is daily
maximum_spend_logs_retention_interval: "1d" # Run cleanup daily

litellm_settings:
cache: true
cache_params:
type: redis

Konfigurationsoptionen

maximum_spend_logs_retention_period (erforderlich)

Wie lange Logs aufbewahrt werden sollen, bevor sie gelöscht werden. Unterstützte Formate

  • "7d" – 7 Tage
  • "24h" – 24 Stunden
  • "60m" – 60 Minuten
  • "3600s" – 3600 Sekunden

maximum_spend_logs_retention_interval (optional)

Wie oft der Bereinigungsjob ausgeführt werden soll. Verwendet das gleiche Format wie oben. Wenn nicht gesetzt, wird die Bereinigung alle 24 Stunden ausgeführt, nur wenn maximum_spend_logs_retention_period gesetzt ist.

Wie es funktioniert

Schritt 1. Sperren-Erwerb (Optional mit Redis)

Wenn Redis aktiviert ist, verwendet LiteLLM es, um sicherzustellen, dass nur eine Instanz die Bereinigung gleichzeitig durchführt.

  • Wenn die Sperre erworben wurde
    • Diese Instanz fährt mit der Bereinigung fort
    • Andere überspringen sie
  • Wenn keine Sperre vorhanden ist
    • Die Bereinigung wird trotzdem ausgeführt (nützlich für Einzelknoten-Setups)

Working of spend log deletions
Funktionsweise von Verbrauchs-Log-Löschungen

Schritt 2. Batch-Löschung

Sobald die Bereinigung beginnt

  • Berechnet sie das Stichtagsdatum anhand der konfigurierten Aufbewahrungsdauer
  • Löscht Logs, die älter als der Stichtag sind, in Batches von 1000
  • Fügt eine kurze Verzögerung zwischen den Batches hinzu, um eine Überlastung der Datenbank zu vermeiden

Standardeinstellungen:

  • Batch-Größe: 1000 Logs
  • Maximale Batches pro Ausführung: 500
  • Maximale Löschungen pro Ausführung: 500.000 Logs

Sie können die Anzahl der Batches über eine Umgebungsvariable ändern

SPEND_LOG_RUN_LOOPS=200

Dies würde ermöglichen, dass bis zu 200.000 Logs in einer Ausführung gelöscht werden.

Batch deletion of old logs
Batch-Löschung alter Logs