From 13760b1bddce4c4a6895ef5174f9af25c34d9261 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Thu, 29 Oct 2015 15:53:15 +0100 Subject: [PATCH] fix(influxdb): fixed handling of relative time ranges like last x years, or last x months, fixes #3067 --- CHANGELOG.md | 1 + public/app/plugins/datasource/influxdb/datasource.js | 8 ++++++-- public/app/plugins/datasource/influxdb_08/datasource.js | 9 +++++++-- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c5729e24f96..8e67f9b0052 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ ### Bug Fixes * **dashboard**: fix for collapse row by clicking on row title, fixes [#3065](https://github.com/grafana/grafana/issues/3065) +* **influxdb**: fix for relative time ranges `last x months` and `last x years`, fixes [#3067](https://github.com/grafana/grafana/issues/3067) # 2.5 (2015-10-28) diff --git a/public/app/plugins/datasource/influxdb/datasource.js b/public/app/plugins/datasource/influxdb/datasource.js index 8460a0c1d0d..ded31d76c63 100644 --- a/public/app/plugins/datasource/influxdb/datasource.js +++ b/public/app/plugins/datasource/influxdb/datasource.js @@ -192,8 +192,12 @@ function (angular, _, dateMath, InfluxSeries, InfluxQueryBuilder) { if (date === 'now') { return 'now()'; } - if (date.indexOf('now-') >= 0 && date.indexOf('/') === -1) { - return date.replace('now', 'now()').replace('-', ' - '); + + var parts = /^now-(\d+)([d|h|m|s])$/.exec(date); + if (parts) { + var amount = parseInt(parts[1]); + var unit = parts[2]; + return 'now() - ' + amount + unit; } date = dateMath.parse(date, roundUp); } diff --git a/public/app/plugins/datasource/influxdb_08/datasource.js b/public/app/plugins/datasource/influxdb_08/datasource.js index 3ed12ac2d08..cba2e27b0cf 100644 --- a/public/app/plugins/datasource/influxdb_08/datasource.js +++ b/public/app/plugins/datasource/influxdb_08/datasource.js @@ -270,9 +270,14 @@ function (angular, _, dateMath, InfluxSeries, InfluxQueryBuilder) { if (date === 'now') { return 'now()'; } - if (date.indexOf('now-') >= 0 && date.indexOf('/') === -1) { - return date.replace('now', 'now()'); + + var parts = /^now-(\d+)([d|h|m|s])$/.exec(date); + if (parts) { + var amount = parseInt(parts[1]); + var unit = parts[2]; + return 'now()-' + amount + unit; } + date = dateMath.parse(date, roundUp); } return (date.valueOf() / 1000).toFixed(0) + 's';