为任意表格绘图
Observations 表格的工具栏中有一个 Table | Chart 切换。切换到 Chart,你过滤后剩下的行会作为图表绘制,基于同一查询。切换回 Table,你又以列表形式查看相同的数据。两个视图之间查询没有任何变化:相同的过滤器、相同的时间范围、相同的数据,以两种方式展示。
你所在的视图存储在 URL 中,连同图表的类型、指标、聚合和细分。该图表是可逆且可分享的:把链接发给某人,他们会落在你正在查看的同一图表上,带相同的过滤器。只有你从默认值更改的设置才会出现在 URL 中,因此普通图表链接保持简短。
图表视图运行在 Langfuse v4 数据模型上。在 Langfuse Cloud 上,在 Observations 表格上开启 Fast 以使用它。在自托管部署上,它在升级到 Langfuse v4后可用。
Visualize 面板
当你切换到 Chart 时,一个 Visualize 面板定义过滤后的行如何绘制。图表是四个选择的组合,面板显示当前选择的一行摘要,例如 "Average latency by model over time"。
图表类型
- Line、Area 和 Bars 随时间绘制一个值。
- Ranked 将细分的顶部值显示为水平排名,最大的在前。
- Pie 将细分值显示为整体的份额。
- Number 显示整个范围的单个值,并忽略细分。
Ranked 和 Pie 是分类的,显示你细分的顶部值。
指标
要绘制的值:行的 Count、Latency、Cost 或 Tokens。Count 是默认值。
聚合
指标在每个系列和时间桶内如何归约。可用选项取决于指标:
- Count 始终计数。
- Latency 支持 Average、Median (p50)、p95、p99、Max 和 Min。
- Cost 和 Tokens 支持 Sum、Average、p95 和 Max。
更改指标会将聚合重置为它支持的某个值。
细分
用于拆分图表的维度。细分的每个值成为自己的系列,例如自己的线或切片。选项是 Total(无细分)、Model、Name、Level、Type 和 Environment。
例如,图表类型 Line、指标 Latency、聚合 p95、细分 Model 给你 "p95 latency by model over time"。将指标切换为 Count,在完全相同的过滤行上得到 "count of events by model over time"。
时间桶从所选时间范围自动选择。非常短的范围可能无法产生足够的桶来绘图,在这种情况下 Langfuse 会要求你扩大范围。
图表无法应用的过滤器
图表复用表格的过滤器。其中大多数原样沿用:environment、type、name、level、model、trace name、user、session、version、prompt name、tags、tool names 和实验字段,都完全像对表格那样应用于图表。
少数过滤器无法转换为聚合时间序列。Langfuse 不会静默丢弃它们或隐藏图表,而是保持图表可见,并就地停用这些过滤器:匹配的侧边栏 facet 变暗,匹配的搜索栏 token 变暗并加删除线。将鼠标悬停在任一上面会解释该过滤器仍应用于表格,即使图表无法使用它。你始终能看到图表,并且始终确切知道它反映了你的哪些活动过滤器。
图表无法应用的过滤器是:
- 用作过滤器的数值度量(按 latency、cost 或 token count 过滤)。注意 latency、cost 和 tokens 仍可作为图表指标;只有按其值过滤行在图表上不可用。
- Scores、metadata 和 comments 过滤器。
- 全文搜索和字段限定的文本搜索(
input:、output:)。 - 存在性检查(
has:和-has:)。
这些反映了图表的聚合查询目前能表达的内容,而非永久限制。
添加到仪表盘
你在表格中构建的图表不必留在那里。Add to dashboard 将当前图表连同其类型、指标、聚合、细分和它应用的过滤器,保存为你的某个自定义仪表盘上的小部件。选择目标仪表盘,Langfuse 会创建该小部件并将你带到该仪表盘以放置它。保存的小部件是普通的仪表盘小部件,与手工构建的无法区分,并显示与图表相同的数字。
图表的时间范围不随小部件保存;宿主仪表盘改为提供该范围。将图表添加到仪表盘需要在项目中有编辑仪表盘的权限。
与过滤搜索栏的关系
过滤搜索栏和图表是同一查询上的两个视图。搜索栏是你缩小行的方式;图表是查看剩余内容的一种方式。通过输入过滤到你想要的切片,切换到 Chart 查看其趋势,如果该视图值得保留,则使用 Add to dashboard。