跳到主要内容

✨ 最大支出日志保留期限

本文将介绍如何设置支出日志的最大保留期限。这有助于通过自动删除旧日志来管理数据库大小。

信息

✨ 这在 LiteLLM 企业版中提供

企业版定价

获取免费 7 天试用密钥

要求

  • 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 会使用它来确保在同一时间只有一个实例运行清理作业。

  • 如果成功获取锁
    • 此实例将继续执行清理
    • 其他实例则跳过
  • 如果没有锁存在
    • 清理仍然会运行 (适用于单节点设置)

Working of spend log deletions
支出日志删除的工作流程

步骤 2. 批量删除

一旦清理开始

  • 它会根据配置的保留期限计算截止日期
  • 删除早于截止日期的日志,以 每次 1000 条的批量方式
  • 在批量处理之间添加短暂延迟,以避免数据库过载

默认设置:

  • 批量大小:1000 条日志
  • 每次运行的最大批量数: 500
  • 每次运行的最大删除数量:500,000 条日志

您可以使用环境变量更改批量数量

SPEND_LOG_RUN_LOOPS=200

这允许在一次运行中删除最多 200,000 条日志。

Batch deletion of old logs
批量删除旧日志