| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- package elasticsearch
- import (
- "encoding/json"
- "testing"
- "github.com/grafana/grafana/pkg/tsdb"
- . "github.com/smartystreets/goconvey/convey"
- )
- func testElasticsearchResponse(body string, target Query) *tsdb.QueryResult {
- var responses Responses
- err := json.Unmarshal([]byte(body), &responses)
- So(err, ShouldBeNil)
- responseParser := ElasticsearchResponseParser{responses.Responses, []*Query{&target}}
- return responseParser.getTimeSeries()
- }
- func TestElasticSearchResponseParser(t *testing.T) {
- Convey("Elasticsearch Response query testing", t, func() {
- Convey("Build test average metric with moving average", func() {
- responses := `{
- "responses": [
- {
- "took": 1,
- "timed_out": false,
- "_shards": {
- "total": 5,
- "successful": 5,
- "skipped": 0,
- "failed": 0
- },
- "hits": {
- "total": 4500,
- "max_score": 0,
- "hits": []
- },
- "aggregations": {
- "2": {
- "buckets": [
- {
- "1": {
- "value": null
- },
- "key_as_string": "1522205880000",
- "key": 1522205880000,
- "doc_count": 0
- },
- {
- "1": {
- "value": 10
- },
- "key_as_string": "1522205940000",
- "key": 1522205940000,
- "doc_count": 300
- },
- {
- "1": {
- "value": 10
- },
- "3": {
- "value": 20
- },
- "key_as_string": "1522206000000",
- "key": 1522206000000,
- "doc_count": 300
- },
- {
- "1": {
- "value": 10
- },
- "3": {
- "value": 20
- },
- "key_as_string": "1522206060000",
- "key": 1522206060000,
- "doc_count": 300
- }
- ]
- }
- },
- "status": 200
- }
- ]
- }
- `
- res := testElasticsearchResponse(responses, avgWithMovingAvg)
- So(len(res.Series), ShouldEqual, 2)
- So(res.Series[0].Name, ShouldEqual, "Average value")
- So(len(res.Series[0].Points), ShouldEqual, 4)
- for i, p := range res.Series[0].Points {
- if i == 0 {
- So(p[0].Valid, ShouldBeFalse)
- } else {
- So(p[0].Float64, ShouldEqual, 10)
- }
- So(p[1].Float64, ShouldEqual, 1522205880000+60000*i)
- }
- So(res.Series[1].Name, ShouldEqual, "Moving Average Average 1")
- So(len(res.Series[1].Points), ShouldEqual, 2)
- for _, p := range res.Series[1].Points {
- So(p[0].Float64, ShouldEqual, 20)
- }
- })
- })
- }
|