Commit 02af2dbe by Torkel Ödegaard

Added rounding for graphites from and to time range filters

  for very short absolute ranges (Fixes #320)
parent b1bd0456
# vNext
- Added rounding for graphites from and to time range filters
for very short absolute ranges (Issue #320)
# 1.5.3 (2014-04-17) # 1.5.3 (2014-04-17)
- Add support for async scripted dashboards (Issue #274) - Add support for async scripted dashboards (Issue #274)
- Text panel now accepts html (for links to other dashboards, etc) (Issue #236) - Text panel now accepts html (for links to other dashboards, etc) (Issue #236)
......
...@@ -24,8 +24,8 @@ function (angular, _, $, config, kbn, moment) { ...@@ -24,8 +24,8 @@ function (angular, _, $, config, kbn, moment) {
GraphiteDatasource.prototype.query = function(options) { GraphiteDatasource.prototype.query = function(options) {
try { try {
var graphOptions = { var graphOptions = {
from: this.translateTime(options.range.from), from: this.translateTime(options.range.from, 'round-down'),
until: this.translateTime(options.range.to), until: this.translateTime(options.range.to, 'round-up'),
targets: options.targets, targets: options.targets,
format: options.format, format: options.format,
maxDataPoints: options.maxDataPoints, maxDataPoints: options.maxDataPoints,
...@@ -68,7 +68,7 @@ function (angular, _, $, config, kbn, moment) { ...@@ -68,7 +68,7 @@ function (angular, _, $, config, kbn, moment) {
} }
}; };
GraphiteDatasource.prototype.translateTime = function(date) { GraphiteDatasource.prototype.translateTime = function(date, rounding) {
if (_.isString(date)) { if (_.isString(date)) {
if (date === 'now') { if (date === 'now') {
return 'now'; return 'now';
...@@ -85,6 +85,21 @@ function (angular, _, $, config, kbn, moment) { ...@@ -85,6 +85,21 @@ function (angular, _, $, config, kbn, moment) {
date = moment.utc(date); date = moment.utc(date);
if (rounding === 'round-up') {
if (date.get('s')) {
date.add('m', 1);
}
}
else if (rounding === 'round-down') {
// graphite' s from filter is exclusive
// here we step back one minute in order
// to guarantee that we get all the data that
// exists for the specified range
if (date.get('s')) {
date.subtract('m', 1);
}
}
if (dashboard.current.timezone === 'browser') { if (dashboard.current.timezone === 'browser') {
date = date.local(); date = date.local();
} }
......
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