MujicaUI

Agent Ops & Motion · #284

TraceViewer 浅色主题渲染快照
浅色 · 渲染快照
TraceViewer 深色主题渲染快照
深色 · 渲染快照

284 TraceViewer 调用链查看器

用途

以树显示调用链跨度,每行带耗时与时间轴条;选中跨度在下方查看属性。

最小示例

var state feedback.TraceViewerState
spans := []feedback.TraceSpan{
	{ID: "run", Name: "agent.run", End: 900 * time.Millisecond},
	{ID: "plan", Parent: "run", Name: "llm.plan", Start: 10 * time.Millisecond, End: 210 * time.Millisecond,
		Attrs: []feedback.TraceAttr{{Key: "model", Value: "opus"}}},
}
view := func(c *ui.Context) {
	core.Use(c, core.Settings{})
	feedback.TraceViewer(c, &state, spans, feedback.TraceViewerOptions{}).Element.Height(260)
}
ui.Render(view, 400, 300, 1)

签名:func TraceViewer(c *ui.Context, s *TraceViewerState, spans []TraceSpan, opts TraceViewerOptions) DataTableView

参数

TraceSpan

字段类型默认值含义
IDstring必填唯一标识;重复 panic。
Parentstring""父跨度;不存在时作为根。
Namestring""名称。
Start, Endtime.Duration0相对调用链开始的偏移;需 0 ≤ Start ≤ End。
Failedboolfalse失败。
Attrs[]TraceAttrnil属性键值。

TraceViewerOptions

字段类型默认值含义
StatusDataStatusDataReady加载、失败状态。
Errorstring""失败说明。
Versionint0原地修改数据时递增;新切片或长度变化自动刷新。

TraceViewerState.Tree 保存展开、排序与选择。索引只在 spans 变化时重建;父链成环时 panic。给返回的 Element 一个高度。

状态

  • 时间轴条按整条调用链的跨度缩放,位置吸附像素。
  • 失败跨度:叉号图标、Danger 文字与空心时间条,不只靠颜色。
  • 属性面板显示开始、耗时与全部属性。

事件

  • 同 TreeTable:Changed() 选择变化。

键盘操作

  • ↑/↓ 选择,→ 展开,← 收起;输入名称开头字母跳转。

限制

  • 只构建可见行(TreeTable 虚拟化);属性面板也按可见行虚拟化,独立滚动。