finished CODING PHASE 1

Signed-off-by: wph95 <wph657856467@gmail.com>
This commit is contained in:
wph95 2018-03-24 13:06:21 +08:00
parent 8e7d23cdeb
commit bc5b59737c
No known key found for this signature in database
GPG Key ID: C8B3F2A207A6AFDC
3 changed files with 12 additions and 28 deletions

View File

@ -5,7 +5,6 @@ import (
"encoding/json"
"errors"
"fmt"
"github.com/davecgh/go-spew/spew"
"github.com/grafana/grafana/pkg/log"
"github.com/grafana/grafana/pkg/models"
"github.com/grafana/grafana/pkg/setting"
@ -52,13 +51,9 @@ func (e *ElasticsearchExecutor) Query(ctx context.Context, dsInfo *models.DataSo
dsInfo,
tsdbQuery.TimeRange,
tsdbQuery.Queries,
glog,
}
glog.Warn(spew.Sdump(dsInfo))
glog.Warn(spew.Sdump(tsdbQuery))
payload, err := queryParser.Parse()
payload, targets, err := queryParser.Parse()
if err != nil {
return nil, err
}
@ -96,14 +91,14 @@ func (e *ElasticsearchExecutor) Query(ctx context.Context, dsInfo *models.DataSo
return nil, err
}
glog.Warn(spew.Sdump(responses))
for _, res := range responses.Responses {
if res.Err != nil {
return nil, errors.New(res.getErrMsg())
}
}
responseParser := ElasticsearchResponseParser{responses.Responses, targets}
queryRes := responseParser.getTimeSeries()
result.Results["A"] = queryRes
return result, nil
}

View File

@ -5,7 +5,6 @@ import (
"encoding/json"
"fmt"
"github.com/grafana/grafana/pkg/components/simplejson"
"github.com/grafana/grafana/pkg/log"
"github.com/grafana/grafana/pkg/models"
"github.com/grafana/grafana/pkg/tsdb"
"src/github.com/davecgh/go-spew/spew"
@ -18,38 +17,39 @@ type ElasticSearchQueryParser struct {
DsInfo *models.DataSource
TimeRange *tsdb.TimeRange
Queries []*tsdb.Query
glog log.Logger
}
func (qp *ElasticSearchQueryParser) Parse() (string, error) {
func (qp *ElasticSearchQueryParser) Parse() (string, []*QueryBuilder, error) {
payload := bytes.Buffer{}
queryHeader := qp.getQueryHeader()
targets := make([]*QueryBuilder, 0)
for _, q := range qp.Queries {
timeField, err := q.Model.Get("timeField").String()
if err != nil {
return "", err
return "", nil, err
}
rawQuery := q.Model.Get("query").MustString("")
bucketAggs := q.Model.Get("bucketAggs").MustArray()
metrics := q.Model.Get("metrics").MustArray()
alias := q.Model.Get("alias").MustString("")
builder := QueryBuilder{timeField, rawQuery, bucketAggs, metrics, alias}
targets = append(targets, &builder)
query, err := builder.Build()
if err != nil {
return "", err
return "", nil, err
}
queryBytes, err := json.Marshal(query)
if err != nil {
return "", err
return "", nil, err
}
payload.WriteString(queryHeader.String() + "\n")
payload.WriteString(string(queryBytes) + "\n")
}
p, err := qp.payloadReplace(payload.String(), qp.DsInfo.JsonData)
return qp.payloadReplace(payload.String(), qp.DsInfo.JsonData)
return p, targets, err
}

View File

@ -118,14 +118,3 @@ func (r *Response) getErrMsg() (string) {
}
return msg.String()
}
type PercentilesResult struct {
Buckets struct {
map[string]struct {
Values map[string]string `json:"values"`
}
KeyAsString string `json:"key_as_string"`
Key int64 `json:"key"`
DocCount int `json:"doc_count"`
} `json:"buckets"`
}