Commit 58a156ba by Adam Palaniuk

Update check for invalid percentile statistics

parent bcdda7b9
...@@ -44,7 +44,13 @@ export default class CloudWatchDatasource { ...@@ -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' };
......
...@@ -122,7 +122,7 @@ describe('CloudWatchDatasource', () => { ...@@ -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', () => { ...@@ -134,7 +134,7 @@ describe('CloudWatchDatasource', () => {
dimensions: { dimensions: {
InstanceId: 'i-12345678', InstanceId: 'i-12345678',
}, },
statistics: ['pNN.NN'], statistics: [stat],
period: '60s', period: '60s',
}, },
], ],
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment