bug: New traces do not show up in langfuse UI (server v3.225.5)

该报错通常出现在 Langfuse 自托管 server 3.225.5 搭配 ClickHouse 26.8+ 的环境下,新生成的 trace 写入 ClickHouse 成功但无法在 Observability → Tracing 界面显示。优先排查 ClickHouse 版本,并检查 `tra

快速结论:该报错通常出现在 Langfuse 自托管 server 3.225.5 搭配 ClickHouse 26.8+ 的环境下,新生成的 trace 写入 ClickHouse 成功但无法在 Observability → Tracing 界面显示。优先排查 ClickHouse 版本,并检查 `traces` 表中是否存在年份异常的“污染行”。

适用环境:Langfuse 自托管 server 3.225.5,Python SDK 4.15.1,ClickHouse 26.8+(根据 Issue 分析结论);用户确认 server 3.220 未出现此问题。

最快修复方案:暂无确认的一步修复方案。可优先尝试在 ClickHouse 中挂载配置 `/etc/clickhouse-server/users.d/99-langfuse-compat.xml`,将 `input_format_read_datetime_number_as_raw_value` 设为 `1`,然后重启 ClickHouse(该方案来自相关 Issue 分析,尚未在本 Issue 中直接验证)。

注意事项:该配置仅对后续写入的新数据生效,已写入的损坏行需要在修复后单独清理或修补;若 ClickHouse 版本低于 26.8,此原因可能不适用,需进一步排查其他因素。

问题场景

用户通过后端应用接入 Langfuse Python SDK 4.15.1,生成新的 trace 后确认数据已写入 ClickHouse(可通过 `clickhouse-client` 查询到),但在 Langfuse Web UI 的 Observability → Tracing 页面看不到新生成的 trace。该问题在 Langfuse 自托管版本 3.225.5 中出现,而降级到 3.220 后问题消失。

报错原文

bug: New traces do not show up in langfuse UI (server v3.225.5)

New traces do not show up in the web UI under Observability -> Tracing even though they are created in clickhouse.

原因分析

可能原因是 ClickHouse 26.8+ 与 Langfuse server 3.225.5 之间存在兼容性问题。ClickHouse 26.8 将默认配置 `input_format_read_datetime_number_as_raw_value` 从 `1` 改为 `0`,这导致 Langfuse worker 发送的未加引号的时间戳数值被 ClickHouse 错误解释为 Unix 秒并乘以 1000,使得 `timestamp`、`created_at`、`updated_at`、`event_ts` 等字段被推高到 9999-12-31(显示上限)。这些损坏的行在默认“最近优先”的 Tracing 视图中被排到最顶部,从而“淹没”了真正新生成的 trace。

环境排查

  • 确认自托管 Langfuse server 版本是否为 3.225.5(用户已确认)。
  • 确认 ClickHouse 版本是否为 26.8 或更高(这是判断是否适用本原因分析的关键)。
  • 确认 Python SDK 版本为 4.15.1(用户已确认)。
  • 对比验证:用户确认 server 3.220 不存在此问题,可用于辅助定位。

解决步骤

  1. 先排查是否存在“污染行”:在 ClickHouse 中执行以下查询,确认是否有年份异常的记录:
    SELECT id, name, timestamp, created_at
    FROM traces
    WHERE toYear(timestamp) >= 9000
    LIMIT 3
    FORMAT Vertical;

    若有返回行,则确认属于时间戳被错误缩放的问题。

  2. 创建配置文件 `/etc/clickhouse-server/users.d/99-langfuse-compat.xml`,内容如下:
    <clickhouse>
        <profiles>
            <default>
                <input_format_read_datetime_number_as_raw_value>1</input_format_read_datetime_number_as_raw_value>
            </default>
        </profiles>
    </clickhouse>
  3. 重启 ClickHouse 服务使配置生效。
  4. 对已写入的损坏行进行修复:真实的原始时间戳是当前存储值除以 1000,可按此规则执行数据修复(参考相关 Issue #16858 中的修复查询和说明)。
  5. 如果上述步骤无法解决问题,或确认 ClickHouse 版本低于 26.8,则需继续排查其他可能原因。

验证方法

完成配置挂载并重启后,重新生成一条新 trace,确认在 Langfuse UI 的 Observability → Tracing 页面能够正常看到新 trace。同时可再次执行步骤 1 中的查询,确认没有新的年份异常行产生。

参考来源

langfuse/langfuse #16881

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 21378

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注