From 266fe876ba290f8b8e6940f309b63904f63dd243 Mon Sep 17 00:00:00 2001 From: Mitsuhiro Tanda Date: Fri, 21 Aug 2015 16:06:55 +0900 Subject: [PATCH] pass dimension in metricFindQuery --- .../app/plugins/datasource/cloudwatch/datasource.js | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/public/app/plugins/datasource/cloudwatch/datasource.js b/public/app/plugins/datasource/cloudwatch/datasource.js index 8152f7ca5d8..e1c68e973a8 100644 --- a/public/app/plugins/datasource/cloudwatch/datasource.js +++ b/public/app/plugins/datasource/cloudwatch/datasource.js @@ -362,12 +362,23 @@ function (angular, _, kbn) { return d.promise; } - var dimensionValuesQuery = query.match(/^dimension_values\(([^,]+?),\s?([^,]+?),\s?([^,]+?)\)/); + 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 dimensionPart = templateSrv.replace(dimensionValuesQuery[5]); + var dimensions = {}; + if (!_.isEmpty(dimensionPart)) { + _.each(dimensionPart.split(','), function(v) { + var t = v.split('='); + if (t.length !== 2) { + throw new Error('Invalid query format'); + } + dimensions[t[0]] = t[1]; + }); + } return this.performSuggestDimensionValues(region, namespace, metricName, dimensions) .then(function(suggestData) {