|
@@ -189,8 +189,8 @@ function (angular, _, kbn) {
|
|
|
query.metricName = templateSrv.replace(target.metricName, options.scopedVars);
|
|
query.metricName = templateSrv.replace(target.metricName, options.scopedVars);
|
|
|
query.dimensions = _.map(_.keys(target.dimensions), function(key) {
|
|
query.dimensions = _.map(_.keys(target.dimensions), function(key) {
|
|
|
return {
|
|
return {
|
|
|
- Name: key,
|
|
|
|
|
- Value: target.dimensions[key]
|
|
|
|
|
|
|
+ Name: templateSrv.replace(key, options.scopedVars),
|
|
|
|
|
+ Value: templateSrv.replace(target.dimensions[key], options.scopedVars)
|
|
|
};
|
|
};
|
|
|
});
|
|
});
|
|
|
query.statistics = getActivatedStatistics(target.statistics);
|
|
query.statistics = getActivatedStatistics(target.statistics);
|
|
@@ -264,14 +264,20 @@ function (angular, _, kbn) {
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
CloudWatchDatasource.prototype.performSuggestMetrics = function(namespace) {
|
|
CloudWatchDatasource.prototype.performSuggestMetrics = function(namespace) {
|
|
|
|
|
+ namespace = templateSrv.replace(namespace);
|
|
|
return this.supportedMetrics[namespace] || [];
|
|
return this.supportedMetrics[namespace] || [];
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
CloudWatchDatasource.prototype.performSuggestDimensionKeys = function(namespace) {
|
|
CloudWatchDatasource.prototype.performSuggestDimensionKeys = function(namespace) {
|
|
|
|
|
+ namespace = templateSrv.replace(namespace);
|
|
|
return this.supportedDimensions[namespace] || [];
|
|
return this.supportedDimensions[namespace] || [];
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
CloudWatchDatasource.prototype.performSuggestDimensionValues = function(region, namespace, metricName, dimensions) {
|
|
CloudWatchDatasource.prototype.performSuggestDimensionValues = function(region, namespace, metricName, dimensions) {
|
|
|
|
|
+ region = templateSrv.replace(region);
|
|
|
|
|
+ namespace = templateSrv.replace(namespace);
|
|
|
|
|
+ metricName = templateSrv.replace(metricName);
|
|
|
|
|
+
|
|
|
var cloudwatch = this.getCloudWatchClient(region);
|
|
var cloudwatch = this.getCloudWatchClient(region);
|
|
|
|
|
|
|
|
var params = {
|
|
var params = {
|
|
@@ -281,8 +287,8 @@ function (angular, _, kbn) {
|
|
|
if (!_.isEmpty(dimensions)) {
|
|
if (!_.isEmpty(dimensions)) {
|
|
|
params.Dimensions = _.map(_.keys(dimensions), function(key) {
|
|
params.Dimensions = _.map(_.keys(dimensions), function(key) {
|
|
|
return {
|
|
return {
|
|
|
- Name: key,
|
|
|
|
|
- Value: dimensions[key]
|
|
|
|
|
|
|
+ Name: templateSrv.replace(key),
|
|
|
|
|
+ Value: templateSrv.replace(dimensions[key])
|
|
|
};
|
|
};
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
@@ -333,23 +339,23 @@ function (angular, _, kbn) {
|
|
|
|
|
|
|
|
var metricNameQuery = query.match(/^metrics\(([^\)]+?)\)/);
|
|
var metricNameQuery = query.match(/^metrics\(([^\)]+?)\)/);
|
|
|
if (metricNameQuery) {
|
|
if (metricNameQuery) {
|
|
|
- namespace = metricNameQuery[1];
|
|
|
|
|
|
|
+ namespace = templateSrv.replace(metricNameQuery[1]);
|
|
|
d.resolve(transformSuggestData(this.performSuggestMetrics(namespace)));
|
|
d.resolve(transformSuggestData(this.performSuggestMetrics(namespace)));
|
|
|
return d.promise;
|
|
return d.promise;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
var dimensionKeysQuery = query.match(/^dimension_keys\(([^\)]+?)\)/);
|
|
var dimensionKeysQuery = query.match(/^dimension_keys\(([^\)]+?)\)/);
|
|
|
if (dimensionKeysQuery) {
|
|
if (dimensionKeysQuery) {
|
|
|
- namespace = dimensionKeysQuery[1];
|
|
|
|
|
|
|
+ namespace = templateSrv.replace(dimensionKeysQuery[1]);
|
|
|
d.resolve(transformSuggestData(this.performSuggestDimensionKeys(namespace)));
|
|
d.resolve(transformSuggestData(this.performSuggestDimensionKeys(namespace)));
|
|
|
return d.promise;
|
|
return d.promise;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
var dimensionValuesQuery = query.match(/^dimension_values\(([^,]+?),\s?([^,]+?),\s?([^,]+?)\)/);
|
|
var dimensionValuesQuery = query.match(/^dimension_values\(([^,]+?),\s?([^,]+?),\s?([^,]+?)\)/);
|
|
|
if (dimensionValuesQuery) {
|
|
if (dimensionValuesQuery) {
|
|
|
- region = dimensionValuesQuery[1];
|
|
|
|
|
- namespace = dimensionValuesQuery[2];
|
|
|
|
|
- metricName = dimensionValuesQuery[3];
|
|
|
|
|
|
|
+ region = templateSrv.replace(dimensionValuesQuery[1]);
|
|
|
|
|
+ namespace = templateSrv.replace(dimensionValuesQuery[2]);
|
|
|
|
|
+ metricName = templateSrv.replace(dimensionValuesQuery[3]);
|
|
|
var dimensions = {};
|
|
var dimensions = {};
|
|
|
|
|
|
|
|
return this.performSuggestDimensionValues(region, namespace, metricName, dimensions)
|
|
return this.performSuggestDimensionValues(region, namespace, metricName, dimensions)
|
|
@@ -399,7 +405,7 @@ function (angular, _, kbn) {
|
|
|
function transformMetricData(md, options) {
|
|
function transformMetricData(md, options) {
|
|
|
var result = [];
|
|
var result = [];
|
|
|
|
|
|
|
|
- var dimensionPart = JSON.stringify(options.dimensions);
|
|
|
|
|
|
|
+ var dimensionPart = templateSrv.replace(JSON.stringify(options.dimensions));
|
|
|
_.each(getActivatedStatistics(options.statistics), function(s) {
|
|
_.each(getActivatedStatistics(options.statistics), function(s) {
|
|
|
var metricLabel = md.Label + '_' + s + dimensionPart;
|
|
var metricLabel = md.Label + '_' + s + dimensionPart;
|
|
|
|
|
|