Explorar o código

fix(influxdb): fixes broken tag rendering for influxdb alerting

closes #6626
ref #6523
bergquist %!s(int64=9) %!d(string=hai) anos
pai
achega
a3b0fbcaba
Modificáronse 2 ficheiros con 12 adicións e 8 borrados
  1. 2 4
      pkg/tsdb/influxdb/query.go
  2. 10 4
      pkg/tsdb/influxdb/query_test.go

+ 2 - 4
pkg/tsdb/influxdb/query.go

@@ -2,7 +2,6 @@ package influxdb
 
 import (
 	"fmt"
-	"strconv"
 	"strings"
 
 	"regexp"
@@ -58,13 +57,12 @@ func (query *Query) renderTags() []string {
 		}
 
 		textValue := ""
-		numericValue, err := strconv.ParseFloat(tag.Value, 64)
 
 		// quote value unless regex or number
 		if tag.Operator == "=~" || tag.Operator == "!~" {
 			textValue = tag.Value
-		} else if err == nil {
-			textValue = fmt.Sprintf("%v", numericValue)
+		} else if tag.Operator == "<" || tag.Operator == ">" {
+			textValue = tag.Value
 		} else {
 			textValue = fmt.Sprintf("'%s'", tag.Value)
 		}

+ 10 - 4
pkg/tsdb/influxdb/query_test.go

@@ -106,13 +106,19 @@ func TestInfluxdbQueryBuilder(t *testing.T) {
 		Convey("can render number tags", func() {
 			query := &Query{Tags: []*Tag{&Tag{Operator: "=", Value: "10001", Key: "key"}}}
 
-			So(strings.Join(query.renderTags(), ""), ShouldEqual, `"key" = 10001`)
+			So(strings.Join(query.renderTags(), ""), ShouldEqual, `"key" = '10001'`)
 		})
 
-		Convey("can render number tags with decimals", func() {
-			query := &Query{Tags: []*Tag{&Tag{Operator: "=", Value: "10001.1", Key: "key"}}}
+		Convey("can render numbers less then condition tags", func() {
+			query := &Query{Tags: []*Tag{&Tag{Operator: "<", Value: "10001", Key: "key"}}}
 
-			So(strings.Join(query.renderTags(), ""), ShouldEqual, `"key" = 10001.1`)
+			So(strings.Join(query.renderTags(), ""), ShouldEqual, `"key" < 10001`)
+		})
+
+		Convey("can render number greather then condition tags", func() {
+			query := &Query{Tags: []*Tag{&Tag{Operator: ">", Value: "10001", Key: "key"}}}
+
+			So(strings.Join(query.renderTags(), ""), ShouldEqual, `"key" > 10001`)
 		})
 
 		Convey("can render string tags", func() {