Bladeren bron

feat(prometheus): added special regex escape for prometheus, fixes #4234

Torkel Ödegaard 9 jaren geleden
bovenliggende
commit
8ed8bfb8bc
1 gewijzigde bestanden met toevoegingen van 10 en 1 verwijderingen
  1. 10 1
      public/app/plugins/datasource/prometheus/datasource.ts

+ 10 - 1
public/app/plugins/datasource/prometheus/datasource.ts

@@ -39,13 +39,22 @@ export function PrometheusDatasource(instanceSettings, $q, backendSrv, templateS
     return backendSrv.datasourceRequest(options);
   };
 
+  function regexEscape(value) {
+    return value.replace(/[\\^$*+?.()|[\]{}]/g, '\\\\$&');
+  }
+
   function interpolateQueryExpr(value, variable, defaultFormatFn) {
     // if no multi or include all do not regexEscape
     if (!variable.multi && !variable.includeAll) {
       return value;
     }
 
-    return defaultFormatFn(value, 'regex', variable);
+    if (typeof value === 'string') {
+      return regexEscape(value);
+    }
+
+    var escapedValues = _.map(value, regexEscape);
+    return escapedValues.join('|');
   };
 
   // Called once per panel (graph)