Przeglądaj źródła

fix(influxdb): fixes broken raw query usage

bergquist 9 lat temu
rodzic
commit
a948dfe514

+ 2 - 0
pkg/tsdb/influxdb/model_parser.go

@@ -12,6 +12,7 @@ type InfluxdbQueryParser struct{}
 func (qp *InfluxdbQueryParser) Parse(model *simplejson.Json, dsInfo *tsdb.DataSourceInfo) (*Query, error) {
 	policy := model.Get("policy").MustString("default")
 	rawQuery := model.Get("query").MustString("")
+	useRawQuery := model.Get("rawQuery").MustBool(false)
 	alias := model.Get("alias").MustString("")
 
 	measurement := model.Get("measurement").MustString("")
@@ -54,6 +55,7 @@ func (qp *InfluxdbQueryParser) Parse(model *simplejson.Json, dsInfo *tsdb.DataSo
 		RawQuery:     rawQuery,
 		Interval:     interval,
 		Alias:        alias,
+		UseRawQuery:  useRawQuery,
 	}, nil
 }
 

+ 1 - 0
pkg/tsdb/influxdb/models.go

@@ -8,6 +8,7 @@ type Query struct {
 	GroupBy      []*QueryPart
 	Selects      []*Select
 	RawQuery     string
+	UseRawQuery  bool
 	Alias        string
 
 	Interval string

+ 1 - 1
pkg/tsdb/influxdb/query_builder.go

@@ -17,7 +17,7 @@ var (
 type QueryBuilder struct{}
 
 func (qb *QueryBuilder) Build(query *Query, queryContext *tsdb.QueryContext) (string, error) {
-	if query.RawQuery != "" {
+	if query.UseRawQuery && query.RawQuery != "" {
 		q := query.RawQuery
 
 		q = strings.Replace(q, "$timeFilter", qb.renderTimeFilter(query, queryContext), 1)

+ 1 - 0
pkg/tsdb/influxdb/query_builder_test.go

@@ -79,6 +79,7 @@ func TestInfluxdbQueryBuilder(t *testing.T) {
 				GroupBy:     []*QueryPart{groupBy1, groupBy3},
 				Interval:    "10s",
 				RawQuery:    "Raw query",
+				UseRawQuery: true,
 			}
 
 			rawQuery, err := builder.Build(query, queryContext)