From 468e8c13ee481128bc46b22a88e25c67d125f3e2 Mon Sep 17 00:00:00 2001 From: Mitsuhiro Tanda Date: Wed, 27 Sep 2017 13:18:30 +0900 Subject: [PATCH] move extend statistics handling code to backend --- pkg/tsdb/cloudwatch/annotation_query.go | 6 ++++-- pkg/tsdb/cloudwatch/cloudwatch.go | 14 +++++++------- .../plugins/datasource/cloudwatch/datasource.js | 3 +-- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/pkg/tsdb/cloudwatch/annotation_query.go b/pkg/tsdb/cloudwatch/annotation_query.go index a1c22d1542f..287f4e770ef 100644 --- a/pkg/tsdb/cloudwatch/annotation_query.go +++ b/pkg/tsdb/cloudwatch/annotation_query.go @@ -24,8 +24,10 @@ func (e *CloudWatchExecutor) executeAnnotationQuery(ctx context.Context, queryCo namespace := parameters.Get("namespace").MustString("") metricName := parameters.Get("metricName").MustString("") dimensions := parameters.Get("dimensions").MustMap() - statistics := parameters.Get("statistics").MustStringArray() - extendedStatistics := parameters.Get("extendedStatistics").MustStringArray() + statistics, extendedStatistics, err := parseStatistics(parameters) + if err != nil { + return nil, err + } period := int64(parameters.Get("period").MustInt(0)) if period == 0 && !usePrefixMatch { period = 300 diff --git a/pkg/tsdb/cloudwatch/cloudwatch.go b/pkg/tsdb/cloudwatch/cloudwatch.go index 6f4cad3dec6..764aaceb65c 100644 --- a/pkg/tsdb/cloudwatch/cloudwatch.go +++ b/pkg/tsdb/cloudwatch/cloudwatch.go @@ -194,16 +194,16 @@ func parseDimensions(model *simplejson.Json) ([]*cloudwatch.Dimension, error) { return result, nil } -func parseStatistics(model *simplejson.Json) ([]*string, []*string, error) { - var statistics []*string - var extendedStatistics []*string +func parseStatistics(model *simplejson.Json) ([]string, []string, error) { + var statistics []string + var extendedStatistics []string for _, s := range model.Get("statistics").MustArray() { if ss, ok := s.(string); ok { if _, isStandard := standardStatistics[ss]; isStandard { - statistics = append(statistics, &ss) + statistics = append(statistics, ss) } else { - extendedStatistics = append(extendedStatistics, &ss) + extendedStatistics = append(extendedStatistics, ss) } } else { return nil, nil, errors.New("failed to parse") @@ -269,8 +269,8 @@ func parseQuery(model *simplejson.Json) (*CloudWatchQuery, error) { Namespace: namespace, MetricName: metricName, Dimensions: dimensions, - Statistics: statistics, - ExtendedStatistics: extendedStatistics, + Statistics: aws.StringSlice(statistics), + ExtendedStatistics: aws.StringSlice(extendedStatistics), Period: period, Alias: alias, }, nil diff --git a/public/app/plugins/datasource/cloudwatch/datasource.js b/public/app/plugins/datasource/cloudwatch/datasource.js index 61222216b2a..192713b4bd4 100644 --- a/public/app/plugins/datasource/cloudwatch/datasource.js +++ b/public/app/plugins/datasource/cloudwatch/datasource.js @@ -269,8 +269,7 @@ function (angular, _, moment, dateMath, kbn, templatingVariable) { namespace: templateSrv.replace(annotation.namespace), metricName: templateSrv.replace(annotation.metricName), dimensions: this.convertDimensionFormat(annotation.dimensions, {}), - statistics: _.filter(statistics, function (s) { return _.includes(self.standardStatistics, s); }), - extendedStatistics: _.filter(statistics, function (s) { return !_.includes(self.standardStatistics, s); }), + statistics: statistics, period: period, actionPrefix: annotation.actionPrefix || '', alarmNamePrefix: annotation.alarmNamePrefix || ''