mirror of
https://github.com/grafana/grafana.git
synced 2024-12-02 13:39:19 -06:00
44 lines
1.2 KiB
Go
44 lines
1.2 KiB
Go
package mqe
|
|
|
|
import (
|
|
"github.com/grafana/grafana/pkg/components/simplejson"
|
|
"github.com/grafana/grafana/pkg/models"
|
|
"github.com/grafana/grafana/pkg/tsdb"
|
|
)
|
|
|
|
func NewQueryParser() *MQEQueryParser {
|
|
return &MQEQueryParser{}
|
|
}
|
|
|
|
type MQEQueryParser struct{}
|
|
|
|
func (qp *MQEQueryParser) Parse(model *simplejson.Json, dsInfo *models.DataSource, 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)
|
|
query.RawQuery = model.Get("query").MustString("")
|
|
|
|
query.Apps = model.Get("apps").MustStringArray([]string{})
|
|
query.Hosts = model.Get("hosts").MustStringArray([]string{})
|
|
|
|
var metrics []MQEMetric
|
|
var err error
|
|
for _, metricsObj := range model.Get("metrics").MustArray() {
|
|
metricJson := simplejson.NewFromAny(metricsObj)
|
|
var m MQEMetric
|
|
|
|
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
|
|
|
|
return query, nil
|
|
}
|