From 72f6dc1e0c23ce6193386c033be9fe06f3a6950e Mon Sep 17 00:00:00 2001 From: Teet Talviste Date: Fri, 6 Feb 2015 18:15:27 +0200 Subject: [PATCH 1/5] enable sending calculated interval to opentsdb downsample --- src/app/features/opentsdb/datasource.js | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/app/features/opentsdb/datasource.js b/src/app/features/opentsdb/datasource.js index d5bdd011dcf..58578a4d7c2 100644 --- a/src/app/features/opentsdb/datasource.js +++ b/src/app/features/opentsdb/datasource.js @@ -24,7 +24,15 @@ function (angular, _, kbn) { OpenTSDBDatasource.prototype.query = function(options) { var start = convertToTSDBTime(options.range.from); var end = convertToTSDBTime(options.range.to); - var queries = _.compact(_.map(options.targets, convertTargetToQuery)); + var qs = Array(); + if (options.interval.match(/\.[0-9]+s/)) { + options.interval = parseFloat(options.interval)*1000 + "ms" + } + _.each(options.targets, function(target){ + qs.push(convertTargetToQuery(target, options.interval)); + } + ); + var queries = _.compact(qs); // No valid targets, return the empty result to save a round trip. if (_.isEmpty(queries)) { @@ -119,7 +127,7 @@ function (angular, _, kbn) { return metric; } - function convertTargetToQuery(target) { + function convertTargetToQuery(target, interval) { if (!target.metric) { return null; } @@ -149,7 +157,7 @@ function (angular, _, kbn) { } if (target.shouldDownsample) { - query.downsample = templateSrv.replace(target.downsampleInterval) + "-" + target.downsampleAggregator; + query.downsample = templateSrv.replace(target.downsampleInterval ? target.downsampleInterval : interval ) + "-" + target.downsampleAggregator; } query.tags = angular.copy(target.tags); From 28f7806d1994df20051009d65a210fb88402e8c0 Mon Sep 17 00:00:00 2001 From: Teet Talviste Date: Fri, 6 Feb 2015 18:39:05 +0200 Subject: [PATCH 2/5] fix some linting problems --- src/app/features/opentsdb/datasource.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/app/features/opentsdb/datasource.js b/src/app/features/opentsdb/datasource.js index 58578a4d7c2..c8617d7a383 100644 --- a/src/app/features/opentsdb/datasource.js +++ b/src/app/features/opentsdb/datasource.js @@ -24,9 +24,9 @@ function (angular, _, kbn) { OpenTSDBDatasource.prototype.query = function(options) { var start = convertToTSDBTime(options.range.from); var end = convertToTSDBTime(options.range.to); - var qs = Array(); + var qs = []; if (options.interval.match(/\.[0-9]+s/)) { - options.interval = parseFloat(options.interval)*1000 + "ms" + options.interval = parseFloat(options.interval)*1000 + "ms"; } _.each(options.targets, function(target){ qs.push(convertTargetToQuery(target, options.interval)); @@ -157,7 +157,8 @@ function (angular, _, kbn) { } if (target.shouldDownsample) { - query.downsample = templateSrv.replace(target.downsampleInterval ? target.downsampleInterval : interval ) + "-" + target.downsampleAggregator; + var buf = target.downsampleInterval || interval; + query.downsample = templateSrv.replace(buf) + "-" + target.downsampleAggregator; } query.tags = angular.copy(target.tags); From ddfb36b511be8b6d5d00432118ea12b0d53df55d Mon Sep 17 00:00:00 2001 From: Teet Talviste Date: Fri, 6 Feb 2015 21:07:31 +0200 Subject: [PATCH 3/5] satisfy travis: fix curly brace space --- src/app/features/opentsdb/datasource.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/app/features/opentsdb/datasource.js b/src/app/features/opentsdb/datasource.js index c8617d7a383..098bd809a2a 100644 --- a/src/app/features/opentsdb/datasource.js +++ b/src/app/features/opentsdb/datasource.js @@ -28,10 +28,9 @@ function (angular, _, kbn) { if (options.interval.match(/\.[0-9]+s/)) { options.interval = parseFloat(options.interval)*1000 + "ms"; } - _.each(options.targets, function(target){ + _.each(options.targets, function(target) { qs.push(convertTargetToQuery(target, options.interval)); - } - ); + }); var queries = _.compact(qs); // No valid targets, return the empty result to save a round trip. From a0a4b04007bb448880c8323048eac07457fc4d26 Mon Sep 17 00:00:00 2001 From: Teet Talviste Date: Fri, 6 Feb 2015 21:15:14 +0200 Subject: [PATCH 4/5] fix identation --- src/app/features/opentsdb/datasource.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/features/opentsdb/datasource.js b/src/app/features/opentsdb/datasource.js index 098bd809a2a..a90379b9fc4 100644 --- a/src/app/features/opentsdb/datasource.js +++ b/src/app/features/opentsdb/datasource.js @@ -29,7 +29,7 @@ function (angular, _, kbn) { options.interval = parseFloat(options.interval)*1000 + "ms"; } _.each(options.targets, function(target) { - qs.push(convertTargetToQuery(target, options.interval)); + qs.push(convertTargetToQuery(target, options.interval)); }); var queries = _.compact(qs); From 65307c463a5ffc25b8e6923c122c83f2792979ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Mon, 23 Feb 2015 12:48:07 +0100 Subject: [PATCH 5/5] Refactoring opentsdb editor view, merging #1438, made Downsampling enabled by default --- CHANGELOG.md | 5 + src/app/features/opentsdb/datasource.js | 4 +- .../opentsdb/partials/query.editor.html | 168 +++++++++++------- 3 files changed, 108 insertions(+), 69 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 330aad603f3..b2c3f4e495c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # 2.0.0 (unreleased) +**Changes** +- [Issue #1438](https://github.com/grafana/grafana/issues/1438). OpenTSDB: Automatic downsample interval passed to OpenTSDB (depends on timespan and graph width) +- NOTICE, Downsampling is now enabled by default, so if you have not picked a downsample aggregator in your metric query do so or your graphs will be missleading +- This will make Grafana a lot quicker for OpenTSDB users when viewing large time spans without having to change the downsample interval manually. + **New features** - [Issue #1331](https://github.com/grafana/grafana/issues/1331). Graph & Singlestat: New axis/unit format selector and more units (kbytes, Joule, Watt, eV), and new design for graph axis & grid tab and single stat options tab views - [Issue #1241](https://github.com/grafana/grafana/issues/1242). Timepicker: New option in timepicker (under dashboard settings), to change ``now`` to be for example ``now-1m``, usefull when you want to ignore last minute because it contains incomplete data diff --git a/src/app/features/opentsdb/datasource.js b/src/app/features/opentsdb/datasource.js index a90379b9fc4..17b98ba9dca 100644 --- a/src/app/features/opentsdb/datasource.js +++ b/src/app/features/opentsdb/datasource.js @@ -25,12 +25,14 @@ function (angular, _, kbn) { var start = convertToTSDBTime(options.range.from); var end = convertToTSDBTime(options.range.to); var qs = []; + if (options.interval.match(/\.[0-9]+s/)) { options.interval = parseFloat(options.interval)*1000 + "ms"; } _.each(options.targets, function(target) { qs.push(convertTargetToQuery(target, options.interval)); }); + var queries = _.compact(qs); // No valid targets, return the empty result to save a round trip. @@ -155,7 +157,7 @@ function (angular, _, kbn) { } } - if (target.shouldDownsample) { + if (!target.disableDownsampling) { var buf = target.downsampleInterval || interval; query.downsample = templateSrv.replace(buf) + "-" + target.downsampleAggregator; } diff --git a/src/app/features/opentsdb/partials/query.editor.html b/src/app/features/opentsdb/partials/query.editor.html index 794d148676c..09def6a471b 100644 --- a/src/app/features/opentsdb/partials/query.editor.html +++ b/src/app/features/opentsdb/partials/query.editor.html @@ -43,14 +43,18 @@