mirror of
https://github.com/grafana/grafana.git
synced 2025-02-11 16:15:42 -06:00
parent
0059beb85d
commit
1afe0e90f9
@ -81,6 +81,10 @@ func (e *PrometheusExecutor) Execute(ctx context.Context, queries tsdb.QuerySlic
|
|||||||
func formatLegend(metric pmodel.Metric, query *PrometheusQuery) string {
|
func formatLegend(metric pmodel.Metric, query *PrometheusQuery) string {
|
||||||
reg, _ := regexp.Compile(`\{\{\s*(.+?)\s*\}\}`)
|
reg, _ := regexp.Compile(`\{\{\s*(.+?)\s*\}\}`)
|
||||||
|
|
||||||
|
if query.LegendFormat == "" {
|
||||||
|
return metric.String()
|
||||||
|
}
|
||||||
|
|
||||||
result := reg.ReplaceAllFunc([]byte(query.LegendFormat), func(in []byte) []byte {
|
result := reg.ReplaceAllFunc([]byte(query.LegendFormat), func(in []byte) []byte {
|
||||||
labelName := strings.Replace(string(in), "{{", "", 1)
|
labelName := strings.Replace(string(in), "{{", "", 1)
|
||||||
labelName = strings.Replace(labelName, "}}", "", 1)
|
labelName = strings.Replace(labelName, "}}", "", 1)
|
||||||
@ -108,10 +112,7 @@ func parseQuery(queries tsdb.QuerySlice, queryContext *tsdb.QueryContext) (*Prom
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
format, err := queryModel.Model.Get("legendFormat").String()
|
format := queryModel.Model.Get("legendFormat").MustString("")
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
start, err := queryContext.TimeRange.ParseFrom()
|
start, err := queryContext.TimeRange.ParseFrom()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -22,5 +22,18 @@ func TestPrometheus(t *testing.T) {
|
|||||||
|
|
||||||
So(formatLegend(metric, query), ShouldEqual, "legend backend mobile {{broken}}")
|
So(formatLegend(metric, query), ShouldEqual, "legend backend mobile {{broken}}")
|
||||||
})
|
})
|
||||||
|
|
||||||
|
Convey("build full serie name", func() {
|
||||||
|
metric := map[p.LabelName]p.LabelValue{
|
||||||
|
p.LabelName("app"): p.LabelValue("backend"),
|
||||||
|
p.LabelName("device"): p.LabelValue("mobile"),
|
||||||
|
}
|
||||||
|
|
||||||
|
query := &PrometheusQuery{
|
||||||
|
LegendFormat: "",
|
||||||
|
}
|
||||||
|
|
||||||
|
So(formatLegend(metric, query), ShouldEqual, `http_request_total{app="backend", device="mobile"}`)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user