Przeglądaj źródła

(cloudwatch) support interval template variable

Mitsuhiro Tanda 9 lat temu
rodzic
commit
2e5a1328a8

+ 12 - 2
public/app/plugins/datasource/cloudwatch/datasource.js

@@ -3,9 +3,10 @@ define([
   'lodash',
   'lodash',
   'moment',
   'moment',
   'app/core/utils/datemath',
   'app/core/utils/datemath',
+  'app/core/utils/kbn',
   './annotation_query',
   './annotation_query',
 ],
 ],
-function (angular, _, moment, dateMath, CloudWatchAnnotationQuery) {
+function (angular, _, moment, dateMath, kbn, CloudWatchAnnotationQuery) {
   'use strict';
   'use strict';
 
 
   /** @ngInject */
   /** @ngInject */
@@ -36,7 +37,16 @@ function (angular, _, moment, dateMath, CloudWatchAnnotationQuery) {
         query.statistics = target.statistics;
         query.statistics = target.statistics;
 
 
         var range = end - start;
         var range = end - start;
-        query.period = parseInt(target.period, 10) || (query.namespace === 'AWS/EC2' ? 300 : 60);
+        if (!target.period) {
+          query.period = (query.namespace === 'AWS/EC2') ? 300 : 60;
+        } else if (/^\d+$/.test(target.period)) {
+          query.period = parseInt(target.period, 10);
+        } else {
+          query.period = kbn.interval_to_seconds(templateSrv.replace(target.period, options.scopedVars));
+        }
+        if (query.period < 60) {
+          query.period = 60;
+        }
         if (range / query.period >= 1440) {
         if (range / query.period >= 1440) {
           query.period = Math.ceil(range / 1440 / 60) * 60;
           query.period = Math.ceil(range / 1440 / 60) * 60;
         }
         }