跳到主要内容
LangSmith 自托管允许启用自动 TTL 和跟踪数据保留。如果您需要遵守数据隐私法规,或者想要更有效地利用空间并自动清理跟踪,这将非常有用。跟踪的数据保留期也会根据特定操作或运行规则的应用自动延长。

要求

您可以通过 Helm 或环境变量设置来配置保留。有几个选项可以配置:
  • 启用: 数据保留是启用还是禁用。如果启用,您可以通过 UI 设置默认的组织和项目 TTL 层级以应用于跟踪(详见数据保留指南)。
  • 保留期: 您可以为短期和长期跟踪配置系统范围的保留期。配置完成后,您可以在每个项目级别管理保留级别,并为新项目设置组织范围的默认值。
config:
  ttl:
    enabled: true
    ttl_period_seconds:
      # -- 400 day longlived and 14 day shortlived
      longlived: "34560000"
      shortlived: "1209600"

ClickHouse TTL 清理作业

从版本 0.11 开始,一个 cron 作业会在周末运行,以协助删除 ClickHouse 内置 TTL 机制可能未清理的过期数据。
此作业使用可能长时间运行的变异(`ALTER TABLE DELETE`),这些操作是开销很大的操作,可能会影响 ClickHouse 的性能。我们建议仅在非高峰时段(夜间和周末)运行这些操作。在测试 1 个并发活动变异(默认)时,我们未观察到显著的 CPU、内存或延迟增加。

默认计划

默认情况下,清理作业在以下时间运行:
  • 周六:世界协调时晚上 8 点和晚上 10 点
  • 周日:世界协调时凌晨 12 点、凌晨 2 点和凌晨 4 点

禁用作业

要完全禁用清理作业:
queue:
  deployment:
    extraEnv:
      - name: "ENABLE_CLICKHOUSE_TTL_CLEANUP_CRON"
        value: "false"

配置计划

您可以通过修改 cron 表达式来自定义清理作业的运行时间。
queue:
  deployment:
    extraEnv:
      # UTC: Sunday 12am/2am/4am
      - name: "CLICKHOUSE_TTL_CLEANUP_CRON_WEEKEND_MORNING"
        value: "0 0,2,4 * * 0"
      # UTC: Saturday 8pm/10pm
      - name: "CLICKHOUSE_TTL_CLEANUP_CRON_WEEKEND_EVENING"
        value: "0 20,22 * * 6"
要在单个 cron 计划上运行作业,请将 `CLICKHOUSE_TTL_CLEANUP_CRON_WEEKEND_EVENING` 和 `CLICKHOUSE_TTL_CLEANUP_CRON_WEEKEND_MORNING` 都设置为相同的值。作业锁定可防止重叠执行。

配置每个部分的最小过期行数

该作业逐表进行,扫描分区并从包含最少数量过期行的分区中删除数据。此阈值平衡了效率和彻底性。
  • 过低:作业扫描整个分区以清除少量数据(效率低下)
  • 过高:作业遗漏了包含大量过期数据的分区
queue:
  deployment:
    extraEnv:
      - name: "CLICKHOUSE_TTL_CRON_MIN_EXPIRED_ROWS_PER_PART"
        value: "100000" # 100k expired rows

检查过期行

使用此查询分析表中过期行,并相应地调整您的最小值。
-- Query for Runs table. For other tables, replace 'ttl_seconds' with 'trace_ttl_seconds'
SELECT
    _part,
    count() AS expired_rows
FROM runs
WHERE trace_first_received_at IS NOT NULL
AND ttl_seconds IS NOT NULL
AND toDateTime(assumeNotNull(trace_first_received_at) + toIntervalSecond(assumeNotNull(ttl_seconds))) < now()
GROUP BY _part
ORDER BY expired_rows DESC

配置最大活动变异数

删除操作可能非常耗时(100GB 分区约 50 分钟)。您可以增加并发变异以加快过程。
queue:
  deployment:
    extraEnv:
      - name: "CLICKHOUSE_TTL_CRON_MAX_ACTIVE_MUTATIONS"
        value: "1"
增加并发 DELETE 操作可能会严重影响系统性能。请仔细监控您的系统,并且只有在您能够容忍潜在的较慢的插入和读取延迟时才增加此值。

紧急情况:停止运行中的变异

如果您遇到延迟峰值并且需要终止正在运行的变异:
  1. 查找活动变异:
    SELECT * FROM system.mutations WHERE is_done = 0;
    
    查找 `command` 列包含 `DELETE` 语句的 `mutation_id`。
  2. 终止变异:
    KILL MUTATION WHERE mutation_id = '<mutation_id>';
    

备份和数据保留

如果运行此作业后磁盘空间没有减少,或者持续增加,可能是备份通过创建文件系统硬链接导致了问题。这些链接阻止了 ClickHouse 清理数据。 要验证,请检查 ClickHouse pod 内的以下目录:
  • /var/lib/clickhouse/backup
  • /var/lib/clickhouse/shadow
如果存在备份,请将其复制到外部文件系统或 Blob 存储(例如 S3),然后清空目录。几分钟之内,您将注意到磁盘空间得到释放。
以编程方式连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。
© . This site is unofficial and not affiliated with LangChain, Inc.