소스 검색

feat(mqe): add timerange to query

bergquist 9 년 전
부모
커밋
9572f086ae
3개의 변경된 파일11개의 추가작업 그리고 14개의 파일을 삭제
  1. 2 3
      pkg/tsdb/mqe/model_parser.go
  2. 5 6
      pkg/tsdb/mqe/model_parser_test.go
  3. 4 5
      pkg/tsdb/mqe/mqe.go

+ 2 - 3
pkg/tsdb/mqe/model_parser.go

@@ -7,9 +7,8 @@ import (
 
 type MQEQueryParser struct{}
 
-func (qp *MQEQueryParser) Parse(model *simplejson.Json, dsInfo *tsdb.DataSourceInfo) (*MQEQuery, error) {
-	query := &MQEQuery{}
-
+func (qp *MQEQueryParser) Parse(model *simplejson.Json, dsInfo *tsdb.DataSourceInfo, queryContext *tsdb.QueryContext) (*MQEQuery, error) {
+	query := &MQEQuery{TimeRange: queryContext.TimeRange}
 	query.AddAppToAlias = model.Get("addAppToAlias").MustBool(false)
 	query.AddHostToAlias = model.Get("addHostToAlias").MustBool(false)
 	query.UseRawQuery = model.Get("rawQuery").MustBool(false)

+ 5 - 6
pkg/tsdb/mqe/model_parser_test.go

@@ -12,9 +12,8 @@ func TestMQEQueryParser(t *testing.T) {
 	Convey("MQE query parser", t, func() {
 		parser := &MQEQueryParser{}
 
-		dsInfo := &tsdb.DataSourceInfo{
-			JsonData: simplejson.New(),
-		}
+		dsInfo := &tsdb.DataSourceInfo{JsonData: simplejson.New()}
+		queryContext := &tsdb.QueryContext{}
 
 		Convey("can parse simple mqe model", func() {
 			json := `
@@ -35,7 +34,7 @@ func TestMQEQueryParser(t *testing.T) {
 			modelJson, err := simplejson.NewJson([]byte(json))
 			So(err, ShouldBeNil)
 
-			query, err := parser.Parse(modelJson, dsInfo)
+			query, err := parser.Parse(modelJson, dsInfo, queryContext)
 			So(err, ShouldBeNil)
 			So(query.UseRawQuery, ShouldBeFalse)
 
@@ -70,7 +69,7 @@ func TestMQEQueryParser(t *testing.T) {
 			modelJson, err := simplejson.NewJson([]byte(json))
 			So(err, ShouldBeNil)
 
-			query, err := parser.Parse(modelJson, dsInfo)
+			query, err := parser.Parse(modelJson, dsInfo, queryContext)
 			So(err, ShouldBeNil)
 			So(query.UseRawQuery, ShouldBeFalse)
 			So(query.Apps[0], ShouldEqual, "demoapp")
@@ -107,7 +106,7 @@ func TestMQEQueryParser(t *testing.T) {
 			modelJson, err := simplejson.NewJson([]byte(json))
 			So(err, ShouldBeNil)
 
-			query, err := parser.Parse(modelJson, dsInfo)
+			query, err := parser.Parse(modelJson, dsInfo, queryContext)
 			So(err, ShouldBeNil)
 
 			So(query.UseRawQuery, ShouldBeTrue)

+ 4 - 5
pkg/tsdb/mqe/mqe.go

@@ -35,12 +35,12 @@ var (
 
 func init() {
 	glog = log.New("tsdb.mqe")
-	tsdb.RegisterExecutor("mqe", NewMQEExecutor)
+	tsdb.RegisterExecutor("mqe-datasource", NewMQEExecutor)
 
 	HttpClient = tsdb.GetDefaultClient()
 }
 
-func (e *MQEExecutor) Execute(ctx context.Context, queries tsdb.QuerySlice, context *tsdb.QueryContext) *tsdb.BatchResult {
+func (e *MQEExecutor) Execute(ctx context.Context, queries tsdb.QuerySlice, queryContext *tsdb.QueryContext) *tsdb.BatchResult {
 	result := &tsdb.BatchResult{}
 
 	availableSeries, err := NewTokenClient().GetTokenData(ctx, e.DataSourceInfo)
@@ -48,11 +48,9 @@ func (e *MQEExecutor) Execute(ctx context.Context, queries tsdb.QuerySlice, cont
 		return result.WithError(err)
 	}
 
-	glog.Info("available series", availableSeries)
-
 	var mqeQueries []*MQEQuery
 	for _, v := range queries {
-		q, err := e.QueryParser.Parse(v.Model, e.DataSourceInfo)
+		q, err := e.QueryParser.Parse(v.Model, e.DataSourceInfo, queryContext)
 		if err != nil {
 			return result.WithError(err)
 		}
@@ -88,6 +86,7 @@ func (e *MQEExecutor) Execute(ctx context.Context, queries tsdb.QuerySlice, cont
 		asdf.Series = append(asdf.Series, series.Series...)
 	}
 
+	result.QueryResults = make(map[string]*tsdb.QueryResult)
 	result.QueryResults["A"] = asdf
 
 	return result