448 TraceWaterfall · 调用链瀑布图
用途
按跨度父子层级与耗时展示调用链,并读取跨度详情。
最小示例
spans := []devtools.WaterfallSpan{{ID: "root", Name: "GET /api", Service: "gateway", Duration: 200 * time.Millisecond}, {ID: "db", Parent: "root", Name: "Query", Service: "database", Start: 20 * time.Millisecond, Duration: 80 * time.Millisecond}}
view := func(c *ui.Context) {
core.Use(c, core.Settings{})
if devtools.TraceWaterfall(c, spans, devtools.TraceWaterfallOptions{}).Changed() {
fmt.Println("span selected")
}
}
ui.Render(view, 720, 480, 1)参数
Height 默认 320 DIP;WaterfallSpan.ID 唯一,Name 必填;Parent 关联父跨度;Start、Duration 为非负时间;Error 标记失败。
状态
空数据、跨度选择、失败跨度、父级禁用。
事件
Changed() 表示选择了跨度。
键盘操作
Tab 聚焦跨度;上下方向键移动;Enter 读取详情。
限制
更新调用链提交新切片;跨度父子关系须构成树。

