in pkg/display/graph/graph.go [63:98]
func Display(ctx *cli.Context, displayable *d.Displayable) error {
data := displayable.Data
switch reflect.TypeOf(data) {
case ThermodynamicType:
return heatmap.Display(displayable)
case LinearMetricsType:
return linear.Display(ctx, map[string]LinearMetrics{"": data.(LinearMetrics)})
case MultiLinearMetricsType:
inputs := data.(MultiLinearMetrics)
return linear.Display(ctx, inputs)
case TraceType:
return tree.Display(tree.Adapt(data.(Trace)))
case TraceBriefType:
return tree.DisplayList(ctx, displayable)
case GlobalMetricsType:
return gauge.Display(ctx, data.(GlobalMetrics))
case GlobalDataType:
return db.Display(ctx, data.(*GlobalData))
case EBPFProfilingAnalysisDataType:
return flamegraph.DisplayByEBPF(ctx, data.(*EBPFProfilingAnalysis))
case TraceProfilingAnalysisDataType:
return flamegraph.DisplayByTrace(ctx, data.(api.ProfileAnalyzation))
default:
return fmt.Errorf("type of %T is not supported to be displayed as ascii graph", reflect.TypeOf(data))
}
}