diff --git a/pkg/tsdb/influxdb/response_parser.go b/pkg/tsdb/influxdb/response_parser.go index 2a98bd9a52c..b60a107fb71 100644 --- a/pkg/tsdb/influxdb/response_parser.go +++ b/pkg/tsdb/influxdb/response_parser.go @@ -16,7 +16,7 @@ import ( type ResponseParser struct{} var ( - legendFormat = regexp.MustCompile(`\[\[([\@\/\w-]+)(\.[\@\/\w-]+)*\]\]*|\$\s*([\@\/\w-]+?)*`) + legendFormat = regexp.MustCompile(`\[\[([\@\/\w-]+)(\.[\@\/\w-]+)*\]\]*|(\$*([\@\w-]+?))*`) ) func (rp *ResponseParser) Parse(buf io.ReadCloser, query *Query) *backend.QueryDataResponse { diff --git a/pkg/tsdb/influxdb/response_parser_test.go b/pkg/tsdb/influxdb/response_parser_test.go index 2348dde1803..01aed955963 100644 --- a/pkg/tsdb/influxdb/response_parser_test.go +++ b/pkg/tsdb/influxdb/response_parser_test.go @@ -269,6 +269,20 @@ func TestInfluxdbResponseParser(t *testing.T) { t.Errorf("Result mismatch (-want +got):\n%s", diff) } + query = &Query{Alias: "alias $tag_datacenter/$tag_datacenter"} + result = parser.Parse(prepare(response), query) + frame = result.Responses["A"] + name = "alias America/America" + testFrame.Name = name + newField = data.NewField("value", labels, []*float64{ + pointer.Float64(222), + }) + testFrame.Fields[1] = newField + testFrame.Fields[1].Config = &data.FieldConfig{DisplayNameFromDS: name} + if diff := cmp.Diff(testFrame, frame.Frames[0], data.FrameTestCompareOptions()...); diff != "" { + t.Errorf("Result mismatch (-want +got):\n%s", diff) + } + query = &Query{Alias: "alias [[col]]", Measurement: "10m"} result = parser.Parse(prepare(response), query) frame = result.Responses["A"]