stackdriver: use alignment period that is passed from frontend. if set to auto, use value provided from the panel. also added tests for alignment period

This commit is contained in:
Erik Sundell
2018-09-17 16:30:06 +02:00
parent 73dc7bddd0
commit 71b1f7f8fd
2 changed files with 37 additions and 1 deletions

View File

@ -64,6 +64,33 @@ func TestStackdriver(t *testing.T) {
So(queries[0].Params["filter"][0], ShouldEqual, `metric.type="a/metric/type" key="value" key2="value2"`)
})
Convey("and alignmentPeriod is set to auto", func() {
Convey("and IntervalMs is larger than 60", func() {
tsdbQuery.Queries[0].IntervalMs = 1000
tsdbQuery.Queries[0].Model = simplejson.NewFromAny(map[string]interface{}{
"target": "target",
"alignmentPeriod": "auto",
"filters": []interface{}{"key", "=", "value", "AND", "key2", "=", "value2"},
})
queries, err := executor.buildQueries(tsdbQuery)
So(err, ShouldBeNil)
So(queries[0].Params["aggregation.alignmentPeriod"][0], ShouldEqual, `+1000s`)
})
Convey("and IntervalMs is less than 60", func() {
tsdbQuery.Queries[0].IntervalMs = 30
tsdbQuery.Queries[0].Model = simplejson.NewFromAny(map[string]interface{}{
"target": "target",
"alignmentPeriod": "auto",
"filters": []interface{}{"key", "=", "value", "AND", "key2", "=", "value2"},
})
queries, err := executor.buildQueries(tsdbQuery)
So(err, ShouldBeNil)
So(queries[0].Params["aggregation.alignmentPeriod"][0], ShouldEqual, `+60s`)
})
})
Convey("and query has aggregation mean set", func() {
tsdbQuery.Queries[0].Model = simplejson.NewFromAny(map[string]interface{}{
"target": "target",