Explorar o código

pass dimension in metricFindQuery

Mitsuhiro Tanda %!s(int64=10) %!d(string=hai) anos
pai
achega
266fe876ba
Modificáronse 1 ficheiros con 12 adicións e 1 borrados
  1. 12 1
      public/app/plugins/datasource/cloudwatch/datasource.js

+ 12 - 1
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) {