|
|
@@ -3,9 +3,10 @@ define([
|
|
|
'lodash',
|
|
|
'moment',
|
|
|
'app/core/utils/datemath',
|
|
|
+ 'app/core/utils/kbn',
|
|
|
'./annotation_query',
|
|
|
],
|
|
|
-function (angular, _, moment, dateMath, CloudWatchAnnotationQuery) {
|
|
|
+function (angular, _, moment, dateMath, kbn, CloudWatchAnnotationQuery) {
|
|
|
'use strict';
|
|
|
|
|
|
/** @ngInject */
|
|
|
@@ -36,12 +37,9 @@ function (angular, _, moment, dateMath, CloudWatchAnnotationQuery) {
|
|
|
query.dimensions = self.convertDimensionFormat(target.dimensions, options.scopedVars);
|
|
|
query.statistics = target.statistics;
|
|
|
|
|
|
- var range = end - start;
|
|
|
- query.period = parseInt(target.period, 10) || (query.namespace === 'AWS/EC2' ? 300 : 60);
|
|
|
- if (range / query.period >= 1440) {
|
|
|
- query.period = Math.ceil(range / 1440 / 60) * 60;
|
|
|
- }
|
|
|
- target.period = query.period;
|
|
|
+ var period = this._getPeriod(target, query, options, start, end);
|
|
|
+ target.period = period;
|
|
|
+ query.period = period;
|
|
|
|
|
|
queries.push(query);
|
|
|
}.bind(this));
|
|
|
@@ -69,6 +67,27 @@ function (angular, _, moment, dateMath, CloudWatchAnnotationQuery) {
|
|
|
});
|
|
|
};
|
|
|
|
|
|
+ this._getPeriod = function(target, query, options, start, end) {
|
|
|
+ var period;
|
|
|
+ var range = end - start;
|
|
|
+
|
|
|
+ if (!target.period) {
|
|
|
+ period = (query.namespace === 'AWS/EC2') ? 300 : 60;
|
|
|
+ } else if (/^\d+$/.test(target.period)) {
|
|
|
+ period = parseInt(target.period, 10);
|
|
|
+ } else {
|
|
|
+ period = kbn.interval_to_seconds(templateSrv.replace(target.period, options.scopedVars));
|
|
|
+ }
|
|
|
+ if (query.period < 60) {
|
|
|
+ period = 60;
|
|
|
+ }
|
|
|
+ if (range / query.period >= 1440) {
|
|
|
+ period = Math.ceil(range / 1440 / 60) * 60;
|
|
|
+ }
|
|
|
+
|
|
|
+ return period;
|
|
|
+ };
|
|
|
+
|
|
|
this.performTimeSeriesQuery = function(query, start, end) {
|
|
|
return this.awsRequest({
|
|
|
region: query.region,
|