mirror of
https://github.com/grafana/grafana.git
synced 2025-09-28 23:04:08 +08:00
stackdriver: making sure we dont pass too big alignmentPeriods to the stackdriver api
This commit is contained in:
@ -163,6 +163,12 @@ func setAggParams(params *url.Values, query *tsdb.Query) {
|
|||||||
alignmentPeriod = "+" + strconv.Itoa(alignmentPeriodValue) + "s"
|
alignmentPeriod = "+" + strconv.Itoa(alignmentPeriodValue) + "s"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
re := regexp.MustCompile("[0-9]+")
|
||||||
|
aa, err := strconv.ParseInt(re.FindString(alignmentPeriod), 10, 64)
|
||||||
|
if err != nil || aa > 3600 {
|
||||||
|
alignmentPeriod = "+3600s"
|
||||||
|
}
|
||||||
|
|
||||||
params.Add("aggregation.crossSeriesReducer", primaryAggregation)
|
params.Add("aggregation.crossSeriesReducer", primaryAggregation)
|
||||||
params.Add("aggregation.perSeriesAligner", perSeriesAligner)
|
params.Add("aggregation.perSeriesAligner", perSeriesAligner)
|
||||||
params.Add("aggregation.alignmentPeriod", alignmentPeriod)
|
params.Add("aggregation.alignmentPeriod", alignmentPeriod)
|
||||||
|
@ -91,6 +91,30 @@ func TestStackdriver(t *testing.T) {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
Convey("and alignmentPeriod is set in frontend", func() {
|
||||||
|
Convey("and alignment period is too big", func() {
|
||||||
|
tsdbQuery.Queries[0].IntervalMs = 1000
|
||||||
|
tsdbQuery.Queries[0].Model = simplejson.NewFromAny(map[string]interface{}{
|
||||||
|
"alignmentPeriod": "+360000s",
|
||||||
|
})
|
||||||
|
|
||||||
|
queries, err := executor.buildQueries(tsdbQuery)
|
||||||
|
So(err, ShouldBeNil)
|
||||||
|
So(queries[0].Params["aggregation.alignmentPeriod"][0], ShouldEqual, `+3600s`)
|
||||||
|
})
|
||||||
|
|
||||||
|
Convey("and alignment period is within accepted range", func() {
|
||||||
|
tsdbQuery.Queries[0].IntervalMs = 1000
|
||||||
|
tsdbQuery.Queries[0].Model = simplejson.NewFromAny(map[string]interface{}{
|
||||||
|
"alignmentPeriod": "+600s",
|
||||||
|
})
|
||||||
|
|
||||||
|
queries, err := executor.buildQueries(tsdbQuery)
|
||||||
|
So(err, ShouldBeNil)
|
||||||
|
So(queries[0].Params["aggregation.alignmentPeriod"][0], ShouldEqual, `+600s`)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
Convey("and query has aggregation mean set", func() {
|
Convey("and query has aggregation mean set", func() {
|
||||||
tsdbQuery.Queries[0].Model = simplejson.NewFromAny(map[string]interface{}{
|
tsdbQuery.Queries[0].Model = simplejson.NewFromAny(map[string]interface{}{
|
||||||
"target": "target",
|
"target": "target",
|
||||||
|
Reference in New Issue
Block a user