mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
stackdriver: update alignment period rules according to stackdriver
This commit is contained in:
parent
3c6c456592
commit
481b8653d9
@ -18,6 +18,7 @@ import (
|
|||||||
"golang.org/x/net/context/ctxhttp"
|
"golang.org/x/net/context/ctxhttp"
|
||||||
|
|
||||||
"github.com/grafana/grafana/pkg/api/pluginproxy"
|
"github.com/grafana/grafana/pkg/api/pluginproxy"
|
||||||
|
"github.com/grafana/grafana/pkg/cmd/grafana-cli/logger"
|
||||||
"github.com/grafana/grafana/pkg/components/null"
|
"github.com/grafana/grafana/pkg/components/null"
|
||||||
"github.com/grafana/grafana/pkg/components/simplejson"
|
"github.com/grafana/grafana/pkg/components/simplejson"
|
||||||
"github.com/grafana/grafana/pkg/log"
|
"github.com/grafana/grafana/pkg/log"
|
||||||
@ -193,9 +194,10 @@ func setAggParams(params *url.Values, query *tsdb.Query, durationSeconds int) {
|
|||||||
|
|
||||||
if alignmentPeriod == "stackdriver-auto" {
|
if alignmentPeriod == "stackdriver-auto" {
|
||||||
alignmentPeriodValue := int(math.Max(float64(durationSeconds), 60.0))
|
alignmentPeriodValue := int(math.Max(float64(durationSeconds), 60.0))
|
||||||
if alignmentPeriodValue <= 60*60*5 {
|
logger.Info("alignmentPeriodValue", "alignmentPeriodValue", alignmentPeriodValue)
|
||||||
|
if alignmentPeriodValue < 60*60*23 {
|
||||||
alignmentPeriod = "+60s"
|
alignmentPeriod = "+60s"
|
||||||
} else if alignmentPeriodValue <= 60*60*23 {
|
} else if alignmentPeriodValue < 60*60*24*6 {
|
||||||
alignmentPeriod = "+300s"
|
alignmentPeriod = "+300s"
|
||||||
} else {
|
} else {
|
||||||
alignmentPeriod = "+3600s"
|
alignmentPeriod = "+3600s"
|
||||||
|
@ -94,6 +94,60 @@ func TestStackdriver(t *testing.T) {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
Convey("and alignmentPeriod is set to stackdriver-auto", func() {
|
||||||
|
Convey("and range is two hours", func() {
|
||||||
|
tsdbQuery.TimeRange.From = "1538033322461"
|
||||||
|
tsdbQuery.TimeRange.To = "1538040522461"
|
||||||
|
tsdbQuery.Queries[0].Model = simplejson.NewFromAny(map[string]interface{}{
|
||||||
|
"target": "target",
|
||||||
|
"alignmentPeriod": "stackdriver-auto",
|
||||||
|
})
|
||||||
|
|
||||||
|
queries, err := executor.buildQueries(tsdbQuery)
|
||||||
|
So(err, ShouldBeNil)
|
||||||
|
So(queries[0].Params["aggregation.alignmentPeriod"][0], ShouldEqual, `+60s`)
|
||||||
|
})
|
||||||
|
|
||||||
|
Convey("and range is 22 hours", func() {
|
||||||
|
tsdbQuery.TimeRange.From = "1538034524922"
|
||||||
|
tsdbQuery.TimeRange.To = "1538113724922"
|
||||||
|
tsdbQuery.Queries[0].Model = simplejson.NewFromAny(map[string]interface{}{
|
||||||
|
"target": "target",
|
||||||
|
"alignmentPeriod": "stackdriver-auto",
|
||||||
|
})
|
||||||
|
|
||||||
|
queries, err := executor.buildQueries(tsdbQuery)
|
||||||
|
So(err, ShouldBeNil)
|
||||||
|
So(queries[0].Params["aggregation.alignmentPeriod"][0], ShouldEqual, `+60s`)
|
||||||
|
})
|
||||||
|
|
||||||
|
Convey("and range is 23 hours", func() {
|
||||||
|
tsdbQuery.TimeRange.From = "1538034567985"
|
||||||
|
tsdbQuery.TimeRange.To = "1538117367985"
|
||||||
|
tsdbQuery.Queries[0].Model = simplejson.NewFromAny(map[string]interface{}{
|
||||||
|
"target": "target",
|
||||||
|
"alignmentPeriod": "stackdriver-auto",
|
||||||
|
})
|
||||||
|
|
||||||
|
queries, err := executor.buildQueries(tsdbQuery)
|
||||||
|
So(err, ShouldBeNil)
|
||||||
|
So(queries[0].Params["aggregation.alignmentPeriod"][0], ShouldEqual, `+300s`)
|
||||||
|
})
|
||||||
|
|
||||||
|
Convey("and range is 7 days", func() {
|
||||||
|
tsdbQuery.TimeRange.From = "1538036324073"
|
||||||
|
tsdbQuery.TimeRange.To = "1538641124073"
|
||||||
|
tsdbQuery.Queries[0].Model = simplejson.NewFromAny(map[string]interface{}{
|
||||||
|
"target": "target",
|
||||||
|
"alignmentPeriod": "stackdriver-auto",
|
||||||
|
})
|
||||||
|
|
||||||
|
queries, err := executor.buildQueries(tsdbQuery)
|
||||||
|
So(err, ShouldBeNil)
|
||||||
|
So(queries[0].Params["aggregation.alignmentPeriod"][0], ShouldEqual, `+3600s`)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
Convey("and alignmentPeriod is set in frontend", func() {
|
Convey("and alignmentPeriod is set in frontend", func() {
|
||||||
Convey("and alignment period is too big", func() {
|
Convey("and alignment period is too big", func() {
|
||||||
tsdbQuery.Queries[0].IntervalMs = 1000
|
tsdbQuery.Queries[0].IntervalMs = 1000
|
||||||
|
Loading…
Reference in New Issue
Block a user