| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- package mqe
- import (
- "github.com/grafana/grafana/pkg/components/simplejson"
- "github.com/grafana/grafana/pkg/models"
- "github.com/grafana/grafana/pkg/tsdb"
- )
- func NewQueryParser() *QueryParser {
- return &QueryParser{}
- }
- type QueryParser struct{}
- func (qp *QueryParser) Parse(model *simplejson.Json, dsInfo *models.DataSource, queryContext *tsdb.QueryContext) (*Query, error) {
- query := &Query{TimeRange: queryContext.TimeRange}
- query.AddClusterToAlias = model.Get("addClusterToAlias").MustBool(false)
- query.AddHostToAlias = model.Get("addHostToAlias").MustBool(false)
- query.UseRawQuery = model.Get("rawQuery").MustBool(false)
- query.RawQuery = model.Get("query").MustString("")
- query.Cluster = model.Get("cluster").MustStringArray([]string{})
- query.Hosts = model.Get("hosts").MustStringArray([]string{})
- var metrics []Metric
- var err error
- for _, metricsObj := range model.Get("metrics").MustArray() {
- metricJson := simplejson.NewFromAny(metricsObj)
- var m Metric
- m.Alias = metricJson.Get("alias").MustString("")
- m.Metric, err = metricJson.Get("metric").String()
- if err != nil {
- return nil, err
- }
- metrics = append(metrics, m)
- }
- query.Metrics = metrics
- var functions []Function
- for _, functionListObj := range model.Get("functionList").MustArray() {
- functionListJson := simplejson.NewFromAny(functionListObj)
- var f Function
- f.Func = functionListJson.Get("func").MustString("")
- if err != nil {
- return nil, err
- }
- if f.Func != "" {
- functions = append(functions, f)
- }
- }
- query.FunctionList = functions
- return query, nil
- }
|