chore(litellm): upgrade v1.91.0 -> v1.97.0; purge + cap the 6GB spend-log DB

Operator: update LiteLLM to latest and repull; get rid of the spend-log
DB and cap its growth.

Upgrade: pinned v1.97.0 (latest stable point release; v1.98.0-rc.1 skipped
as a pre-release on the fleet gateway, v1.97.0-stable not yet cut). Image
pre-pulled, DB pg_dump'd (1.8GB gz, keys+config+schema) and .env backed up
before the Prisma migration, which applied cleanly.

DB was 6.08 GB, 6.02 GB of it LiteLLM_SpendLogs storing full prompt+
completion bodies (store_prompts_in_spend_logs: true). Purged via TRUNCATE
on the running 1.91 BEFORE the upgrade so the schema migration ran against
an empty table -- 6081 MB -> 16 MB, keys (32) and models (3) intact.
'Get rid of the db' read as the spend-log DATA, not the database: dropping
it would have destroyed every virtual key (incl. the Lobe key) and the
model config in the same DB.

Cap: store_prompts_in_spend_logs -> false (bodies no longer persisted;
lightweight cost/usage rows and cross-project spend tracking survive) plus
maximum_spend_logs_retention_period 7d / interval 1d as a hard age bound.

Verified post-upgrade: v1.97.0 running, liveliness 200, 31-model roster,
chat round-trip on master + scoped Lobe key, key scoping still enforced
(glm-5.2 blocked), ext-tts 200, and store_prompts confirmed off (a marked
prompt persisted 0 bodies; 4 lightweight rows). Rollback: .env
LITELLM_TAG=v1.91.0 + the 1.8GB dump, both on the host.
This commit is contained in:
vh
2026-08-16 21:23:07 -07:00
parent 163a7252ec
commit 01b5ad93ed
2 changed files with 15 additions and 2 deletions
+1 -1
View File
@@ -3,7 +3,7 @@
# Image tag. main-stable is the rolling stable; pin to a dated/SHA tag
# (e.g. main-v1.74.0-stable) once a known-good build is confirmed.
LITELLM_TAG=main-stable
LITELLM_TAG=v1.97.0
# Publish. Bind to all interfaces on the LAN; 4000 is the LiteLLM default
# (proxy API + admin/Logs UI at /ui).
+14 -1
View File
@@ -537,7 +537,20 @@ general_settings:
# THE log switch: persists full request messages + response bodies into
# SpendLogs so they render in the Logs UI. Without this you get metadata
# (tokens, latency, model) but not the prompt/completion text.
store_prompts_in_spend_logs: true
#
# ⚠️ TURNED OFF 2026-08-16 (operator: "I don't need any of that information").
# With this TRUE the SpendLogs table stored every prompt+completion body and
# grew to 6.0 GB (of a 6.08 GB DB). Off = lightweight cost/usage rows only
# (tokens, latency, model, cost) — the cross-project spend tracking survives,
# the bulky bodies do not. Re-enable ONLY for a bounded debugging window, not
# standing.
store_prompts_in_spend_logs: false
# HARD CAP on SpendLogs growth (operator: "if there's a way to cap it, CAP
# it"). The retention job deletes rows older than the period on the interval
# cadence, so the table is bounded by ~7 days of lightweight rows rather than
# unbounded. Names verified against LiteLLM docs (proxy/spend_logs_deletion).
maximum_spend_logs_retention_period: "7d"
maximum_spend_logs_retention_interval: "1d"
# scalar-judge → Skywork-Reward-V2 (scalar reward model; vLLM pooling on
# ana-ml2:8003). LiteLLM has no reward/pooling MODE, so this is a passthrough,
# not a model_list alias. Gateway-key-gated. Consumers POST the reward body to