bug: The trace and observation lists do not display input and output by otel

用户在 Langfuse Cloud 中通过 OpenTelemetry 上传 Trace 数据后,观察 Trace 列表页与 Observation 列表页,发现 input/output 字段显示为空,但进入具体的 trace 详情视图后,input 和 output 内容正常可见。

快速结论:该问题发生在通过 OpenTelemetry 上报 Trace 数据时,Trace 列表页(trace list)和 Observation 列表页不展示 input/output 详情,但 Trace 详情页(trace detail view)中数据正确。优先排查上传的根 span 是否携带了结构化数据(对象或数组),以及 root span 的 input/output 是否为纯字符串。

问题场景

用户在 Langfuse Cloud 中通过 OpenTelemetry 上传 Trace 数据后,观察 Trace 列表页与 Observation 列表页,发现 input/output 字段显示为空,但进入具体的 trace 详情视图后,input 和 output 内容正常可见。

报错原文

bug: The trace and observation lists do not display input and output by otel

界面截图显示列表中 input/output 列空白,但详情页内能够正确渲染 input/output 数据。

原因分析

这是一个已知问题,与 Langfuse 在 OTel 数据摄入时如何将根 span(root span)的 input/output 映射到 trace 层级字段有关。后端映射逻辑仅在根 span 的 input/output 为 纯字符串 时生效;如果发送的是结构化数据(例如 JSON 对象或数组),则映射不会触发,导致 trace 层级的列表字段为空。但由于数据仍然正确存储在 observation 级别,因此 trace 详情视图可以正常显示 input 和 output。

环境排查

  • 确认使用的 Langfuse 版本(issue 中为 Langfuse Cloud,未自托管)。
  • 确认上传 OTel 数据时,根 span 中 input/output 的数据类型(字符串 vs 对象/数组)。
  • 确认根 span 是否没有父 span(即 parent span ID 为空)——只有根 span 会创建 trace 级别字段。
  • 确认 SDK 与 OpenTelemetry 集成版本(issue 中仅标注“via otel”)。

解决步骤

  1. 将 input/output 转为纯字符串:在 OTel 根 span 上,将 input 和 output 字段以 JSON 序列化后的字符串形式发送(例如 JSON.stringify 后的结果),而非直接传递对象或数组。这是问题最直接的规避方案。
  2. 显式设置 trace 级别 input/output:如果 SDK 支持,在 span 结束后调用类似 update_trace 的 API,明确为 trace 层级设置 input/output 字段。
  3. 确认根 span 的正确性:检查上传的 span 是否确实为根 span(无父 span)。只有根 span 才会被映射为 trace 记录。
  4. 跟踪上游修复进展:该问题在 Langfuse 的 GitHub 仓库中已被跟踪(#9970),相关 PR 已逐步改进了 OTel 属性映射逻辑,但结构化数据到 trace 级别的映射限制仍未完全解决。可优先尝试上述工作方式。

验证方法

将 OTel 上报代码中根 span 的 input 和 output 字段改为纯字符串发送,然后查看 Langfuse Trace 列表页,确认 input/output 列能够正确显示内容;同时确认 trace 详情页数据无异常。改动后重新上传一次 trace 即可验证。

参考来源

langfuse/langfuse #13250

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 16230

发表回复

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