diff --git a/pkg/tsdb/influxdb/response_parser.go b/pkg/tsdb/influxdb/response_parser.go index 1e65f2a9ec5..42200fcb06c 100644 --- a/pkg/tsdb/influxdb/response_parser.go +++ b/pkg/tsdb/influxdb/response_parser.go @@ -18,7 +18,7 @@ var ( ) func init() { - legendFormat = regexp.MustCompile(`\[\[([\w-]+)(\.[\w-]+)*\]\]*|\$\s*([\w-]+?)*`) + legendFormat = regexp.MustCompile(`\[\[([\@\/\w-]+)(\.[\@\/\w-]+)*\]\]*|\$\s*([\@\/\w-]+?)*`) } func (rp *ResponseParser) Parse(response *Response, query *Query) plugins.DataQueryResult { diff --git a/pkg/tsdb/influxdb/response_parser_test.go b/pkg/tsdb/influxdb/response_parser_test.go index 25970aeb23b..be71c0b605c 100644 --- a/pkg/tsdb/influxdb/response_parser_test.go +++ b/pkg/tsdb/influxdb/response_parser_test.go @@ -70,6 +70,8 @@ func TestInfluxdbResponseParser(t *testing.T) { "datacenter": "America", "dc.region.name": "Northeast", "cluster-name": "Cluster", + "/cluster/name/": "Cluster/", + "@cluster@name@": "Cluster@", }, Values: [][]interface{}{ {json.Number("111"), json.Number("222"), json.Number("333")}, @@ -141,6 +143,16 @@ func TestInfluxdbResponseParser(t *testing.T) { result = parser.Parse(response, query) require.Equal(t, result.Series[0].Name, "alias Cluster") + + query = &Query{Alias: "alias [[tag_/cluster/name/]]"} + result = parser.Parse(response, query) + + require.Equal(t, result.Series[0].Name, "alias Cluster/") + + query = &Query{Alias: "alias [[tag_@cluster@name@]]"} + result = parser.Parse(response, query) + + require.Equal(t, result.Series[0].Name, "alias Cluster@") }) t.Run("Influxdb response parser with errors", func(t *testing.T) {