func newWidgets()

in pkg/display/graph/dashboard/global.go [200:232]


func newWidgets(data *dashboard.GlobalData) error {
	var columns []*gauge.MetricColumn
	linears := make(map[string]*linechart.LineChart)

	// Create gauges to display global metrics.
	for i := range template.Metrics {
		col, err := gauge.NewMetricColumn(data.Metrics[i], &template.Metrics[i])
		if err != nil {
			return err
		}
		columns = append(columns, col)
	}

	// Create line charts to display global response latency.
	for label, input := range data.ResponseLatency {
		l, err := linear.NewLineChart(input)
		if err != nil {
			return err
		}
		linears[label] = l
	}

	// Create a heat map.
	hp, err := heatmap.NewHeatMapWidget(data.HeatMap)
	if err != nil {
		return err
	}

	allWidgets.gauges = columns
	allWidgets.linears = linears
	allWidgets.heatmap = hp
	return nil
}