Commit 963f9fdf by Dan Cleinmark

Ensure Promtheus step interval is always < 11000

Using a 2 week window (1209600 seconds) and a 60s step, Math.floor()
recalculates a step of 109 and results in 11097 data points in the
Prometheus query (> the 11000 max set by Prometheus). Math.ceil()
returns a step of 110 and 10996 data points.
parent 299a2457
...@@ -99,11 +99,11 @@ function (angular, _, moment, dateMath) { ...@@ -99,11 +99,11 @@ function (angular, _, moment, dateMath) {
var url = '/api/v1/query_range?query=' + encodeURIComponent(query.expr) + '&start=' + start + '&end=' + end; var url = '/api/v1/query_range?query=' + encodeURIComponent(query.expr) + '&start=' + start + '&end=' + end;
var step = query.step; var step = query.step;
var range = Math.floor(end - start); var range = Math.ceil(end - start);
// Prometheus drop query if range/step > 11000 // Prometheus drop query if range/step > 11000
// calibrate step if it is too big // calibrate step if it is too big
if (step !== 0 && range / step > 11000) { if (step !== 0 && range / step > 11000) {
step = Math.floor(range / 11000); step = Math.ceil(range / 11000);
} }
url += '&step=' + step; url += '&step=' + step;
...@@ -212,7 +212,7 @@ function (angular, _, moment, dateMath) { ...@@ -212,7 +212,7 @@ function (angular, _, moment, dateMath) {
sec = 1; sec = 1;
} }
return Math.floor(sec * intervalFactor) + 's'; return Math.ceil(sec * intervalFactor) + 's';
}; };
function transformMetricData(md, options) { function transformMetricData(md, options) {
......
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