✨ 最大支出日志保留期限
本文将介绍如何设置支出日志的最大保留期限。这有助于通过自动删除旧日志来管理数据库大小。
信息
要求
- Postgres (用于日志存储)
- Redis (可选) — 仅在运行多个代理实例并希望启用分布式锁定时需要
用法
设置
将此添加到您的 proxy_config.yaml
文件中的 general_settings
下
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
配置选项
maximum_spend_logs_retention_period
(必填)
日志在删除前应保留多久。支持的格式
"7d"
– 7 天"24h"
– 24 小时"60m"
– 60 分钟"3600s"
– 3600 秒
maximum_spend_logs_retention_interval
(可选)
清理作业应多久运行一次。使用与上述相同的格式。如果未设置,清理将每 24 小时运行一次,当且仅当 maximum_spend_logs_retention_period
已设置。
工作原理
步骤 1. 获取锁 (与 Redis 配合可选)
如果启用了 Redis,LiteLLM 会使用它来确保在同一时间只有一个实例运行清理作业。
- 如果成功获取锁
- 此实例将继续执行清理
- 其他实例则跳过
- 如果没有锁存在
- 清理仍然会运行 (适用于单节点设置)
支出日志删除的工作流程
步骤 2. 批量删除
一旦清理开始
- 它会根据配置的保留期限计算截止日期
- 删除早于截止日期的日志,以 每次 1000 条的批量方式
- 在批量处理之间添加短暂延迟,以避免数据库过载
默认设置:
- 批量大小:1000 条日志
- 每次运行的最大批量数: 500
- 每次运行的最大删除数量:500,000 条日志
您可以使用环境变量更改批量数量
SPEND_LOG_RUN_LOOPS=200
这允许在一次运行中删除最多 200,000 条日志。
批量删除旧日志