diff --git a/public/app/plugins/datasource/cloudwatch/datasource.js b/public/app/plugins/datasource/cloudwatch/datasource.js index a444f2e65a0..52074cf9a8c 100644 --- a/public/app/plugins/datasource/cloudwatch/datasource.js +++ b/public/app/plugins/datasource/cloudwatch/datasource.js @@ -170,21 +170,21 @@ function (angular, _, moment, dateMath, kbn, templatingVariable, CloudWatchAnnot this.getMetrics = function (namespace, region) { return this.doMetricQueryRequest('metrics', { - region: region, + region: templateSrv.replace(region), namespace: templateSrv.replace(namespace) }); }; this.getDimensionKeys = function(namespace, region) { return this.doMetricQueryRequest('dimension_keys', { - region: region, + region: templateSrv.replace(region), namespace: templateSrv.replace(namespace) }); }; this.getDimensionValues = function(region, namespace, metricName, dimensionKey, filterDimensions) { return this.doMetricQueryRequest('dimension_values', { - region: region, + region: templateSrv.replace(region), namespace: templateSrv.replace(namespace), metricName: templateSrv.replace(metricName), dimensionKey: templateSrv.replace(dimensionKey), @@ -194,15 +194,15 @@ function (angular, _, moment, dateMath, kbn, templatingVariable, CloudWatchAnnot this.getEbsVolumeIds = function(region, instanceId) { return this.doMetricQueryRequest('ebs_volume_ids', { - region: region, - instanceId: instanceId + region: templateSrv.replace(region), + instanceId: templateSrv.replace(instanceId) }); }; this.getEc2InstanceAttribute = function(region, attributeName, filters) { return this.doMetricQueryRequest('ec2_instance_attribute', { - region: region, - attributeName: attributeName, + region: templateSrv.replace(region), + attributeName: templateSrv.replace(attributeName), filters: filters }); }; @@ -224,35 +224,39 @@ function (angular, _, moment, dateMath, kbn, templatingVariable, CloudWatchAnnot var metricNameQuery = query.match(/^metrics\(([^\)]+?)(,\s?([^,]+?))?\)/); if (metricNameQuery) { - return this.getMetrics(templateSrv.replace(metricNameQuery[1]), templateSrv.replace(metricNameQuery[3])); + namespace = metricNameQuery[1]; + region = metricNameQuery[3]; + return this.getMetrics(namespace, region); } var dimensionKeysQuery = query.match(/^dimension_keys\(([^\)]+?)(,\s?([^,]+?))?\)/); if (dimensionKeysQuery) { - return this.getDimensionKeys(templateSrv.replace(dimensionKeysQuery[1]), templateSrv.replace(dimensionKeysQuery[3])); + namespace = dimensionKeysQuery[1]; + region = dimensionKeysQuery[3]; + return this.getDimensionKeys(namespace, region); } var dimensionValuesQuery = query.match(/^dimension_values\(([^,]+?),\s?([^,]+?),\s?([^,]+?),\s?([^,]+?)\)/); if (dimensionValuesQuery) { - region = templateSrv.replace(dimensionValuesQuery[1]); - namespace = templateSrv.replace(dimensionValuesQuery[2]); - metricName = templateSrv.replace(dimensionValuesQuery[3]); - var dimensionKey = templateSrv.replace(dimensionValuesQuery[4]); + region = dimensionValuesQuery[1]; + namespace = dimensionValuesQuery[2]; + metricName = dimensionValuesQuery[3]; + var dimensionKey = dimensionValuesQuery[4]; return this.getDimensionValues(region, namespace, metricName, dimensionKey, {}); } var ebsVolumeIdsQuery = query.match(/^ebs_volume_ids\(([^,]+?),\s?([^,]+?)\)/); if (ebsVolumeIdsQuery) { - region = templateSrv.replace(ebsVolumeIdsQuery[1]); - var instanceId = templateSrv.replace(ebsVolumeIdsQuery[2]); + region = ebsVolumeIdsQuery[1]; + var instanceId = ebsVolumeIdsQuery[2]; return this.getEbsVolumeIds(region, instanceId); } var ec2InstanceAttributeQuery = query.match(/^ec2_instance_attribute\(([^,]+?),\s?([^,]+?),\s?(.+?)\)/); if (ec2InstanceAttributeQuery) { - region = templateSrv.replace(ec2InstanceAttributeQuery[1]); - var targetAttributeName = templateSrv.replace(ec2InstanceAttributeQuery[2]); + region = ec2InstanceAttributeQuery[1]; + var targetAttributeName = ec2InstanceAttributeQuery[2]; var filterJson = JSON.parse(templateSrv.replace(ec2InstanceAttributeQuery[3])); return this.getEc2InstanceAttribute(region, targetAttributeName, filterJson); }