Просмотр исходного кода

feat(prometheus): trim labelname lookup key

closes #6300
bergquist 9 лет назад
Родитель
Сommit
20bfe443fe
2 измененных файлов с 5 добавлено и 3 удалено
  1. 4 2
      pkg/tsdb/prometheus/prometheus.go
  2. 1 1
      pkg/tsdb/prometheus/prometheus_test.go

+ 4 - 2
pkg/tsdb/prometheus/prometheus.go

@@ -84,8 +84,10 @@ func formatLegend(metric pmodel.Metric, query *PrometheusQuery) string {
 	reg, _ := regexp.Compile(`\{\{\s*(.+?)\s*\}\}`)
 
 	result := reg.ReplaceAllFunc([]byte(query.LegendFormat), func(in []byte) []byte {
-		ind := strings.Replace(strings.Replace(string(in), "{{", "", 1), "}}", "", 1)
-		if val, exists := metric[pmodel.LabelName(ind)]; exists {
+		labelName := strings.Replace(string(in), "{{", "", 1)
+		labelName = strings.Replace(labelName, "}}", "", 1)
+		labelName = strings.TrimSpace(labelName)
+		if val, exists := metric[pmodel.LabelName(labelName)]; exists {
 			return []byte(val)
 		}
 

+ 1 - 1
pkg/tsdb/prometheus/prometheus_test.go

@@ -17,7 +17,7 @@ func TestPrometheus(t *testing.T) {
 			}
 
 			query := &PrometheusQuery{
-				LegendFormat: "legend {{app}} {{device}} {{broken}}",
+				LegendFormat: "legend {{app}} {{ device }} {{broken}}",
 			}
 
 			So(formatLegend(metric, query), ShouldEqual, "legend backend mobile {{broken}}")