Просмотр исходного кода

move extend statistics handling code to backend

Mitsuhiro Tanda 8 лет назад
Родитель
Сommit
468e8c13ee

+ 4 - 2
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

+ 7 - 7
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

+ 1 - 2
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 || ''