Explorar el Código

Merge branch 'update-cloudwatch-extended-stats-check' of https://github.com/apalaniuk/grafana into apalaniuk-update-cloudwatch-extended-stats-check

Torkel Ödegaard hace 7 años
padre
commit
caf995bb94

+ 7 - 1
public/app/plugins/datasource/cloudwatch/datasource.ts

@@ -44,7 +44,13 @@ export default class CloudWatchDatasource {
 
 
       // valid ExtendedStatistics is like p90.00, check the pattern
       // valid ExtendedStatistics is like p90.00, check the pattern
       const hasInvalidStatistics = item.statistics.some(s => {
       const hasInvalidStatistics = item.statistics.some(s => {
-        return s.indexOf('p') === 0 && !/p\d{2}\.\d{2}/.test(s);
+        if (s.indexOf('p') === 0) {
+          const matches = /^p\d{2}(?:\.\d{1,2})?$/.exec(s);
+
+          return !matches || matches[0] !== s;
+        }
+
+        return false;
       });
       });
       if (hasInvalidStatistics) {
       if (hasInvalidStatistics) {
         throw { message: 'Invalid extended statistics' };
         throw { message: 'Invalid extended statistics' };

+ 2 - 2
public/app/plugins/datasource/cloudwatch/specs/datasource.test.ts

@@ -122,7 +122,7 @@ describe('CloudWatchDatasource', () => {
       });
       });
     });
     });
 
 
-    it('should cancel query for invalid extended statistics', () => {
+    it.each(['pNN.NN', 'p9', 'p99.', 'p99.999'])('should cancel query for invalid extended statistics (%s)', stat => {
       const query = {
       const query = {
         range: { from: 'now-1h', to: 'now' },
         range: { from: 'now-1h', to: 'now' },
         rangeRaw: { from: 1483228800, to: 1483232400 },
         rangeRaw: { from: 1483228800, to: 1483232400 },
@@ -134,7 +134,7 @@ describe('CloudWatchDatasource', () => {
             dimensions: {
             dimensions: {
               InstanceId: 'i-12345678',
               InstanceId: 'i-12345678',
             },
             },
-            statistics: ['pNN.NN'],
+            statistics: [stat],
             period: '60s',
             period: '60s',
           },
           },
         ],
         ],