From 48f5a61564cfafd76b7d5fbb48ab2df10b52e7fc Mon Sep 17 00:00:00 2001 From: utkarshcmu Date: Wed, 2 Mar 2016 02:14:58 -0800 Subject: [PATCH] Grafana supports ms resolution for Opentsdb --- .../plugins/datasource/opentsdb/config_ctrl.ts | 6 ++++++ .../plugins/datasource/opentsdb/datasource.js | 18 ++++++++++++++---- .../datasource/opentsdb/partials/config.html | 10 ++++++++-- 3 files changed, 28 insertions(+), 6 deletions(-) diff --git a/public/app/plugins/datasource/opentsdb/config_ctrl.ts b/public/app/plugins/datasource/opentsdb/config_ctrl.ts index 55fa14d7493..e4d69c40b4d 100644 --- a/public/app/plugins/datasource/opentsdb/config_ctrl.ts +++ b/public/app/plugins/datasource/opentsdb/config_ctrl.ts @@ -11,6 +11,7 @@ export class OpenTsConfigCtrl { constructor($scope) { this.current.jsonData = this.current.jsonData || {}; this.current.jsonData.tsdbVersion = this.current.jsonData.tsdbVersion || 1; + this.current.jsonData.tsdbResolution = this.current.jsonData.tsdbResolution || 1; } tsdbVersions = [ @@ -18,4 +19,9 @@ export class OpenTsConfigCtrl { {name: '2.2', value: 2}, ]; + tsdbResolutions = [ + {name: 'second', value: 1}, + {name: 'millisecond', value: 2}, + ]; + } diff --git a/public/app/plugins/datasource/opentsdb/datasource.js b/public/app/plugins/datasource/opentsdb/datasource.js index e9662f8f289..fd5cca93bc9 100644 --- a/public/app/plugins/datasource/opentsdb/datasource.js +++ b/public/app/plugins/datasource/opentsdb/datasource.js @@ -16,6 +16,7 @@ function (angular, _, dateMath) { this.basicAuth = instanceSettings.basicAuth; instanceSettings.jsonData = instanceSettings.jsonData || {}; this.tsdbVersion = instanceSettings.jsonData.tsdbVersion || 1; + this.tsdbResolution = instanceSettings.jsonData.tsdbResolution || 1; this.supportMetrics = true; this.tagKeys = {}; @@ -62,16 +63,21 @@ function (angular, _, dateMath) { this._saveTagKeys(metricData); - return transformMetricData(metricData, groupByTags, options.targets[index], options); + return transformMetricData(metricData, groupByTags, options.targets[index], options, this.tsdbResolution); }.bind(this)); return { data: result }; }.bind(this)); }; this.performTimeSeriesQuery = function(queries, start, end) { + var msResolution = false; + if (this.tsdbResolution === 2) { + msResolution = true; + } var reqBody = { start: start, - queries: queries + queries: queries, + msResolution: msResolution }; // Relative queries (e.g. last hour) don't include an end time @@ -246,14 +252,18 @@ function (angular, _, dateMath) { return filterTypesPromise; }; - function transformMetricData(md, groupByTags, target, options) { + function transformMetricData(md, groupByTags, target, options, tsdbResolution) { var metricLabel = createMetricLabel(md, target, groupByTags, options); var dps = []; // TSDB returns datapoints has a hash of ts => value. // Can't use _.pairs(invert()) because it stringifies keys/values _.each(md.dps, function (v, k) { - dps.push([v, k * 1000]); + if (tsdbResolution === 2) { + dps.push([v, k * 1]); + } else { + dps.push([v, k * 1000]); + } }); return { target: metricLabel, datapoints: dps }; diff --git a/public/app/plugins/datasource/opentsdb/partials/config.html b/public/app/plugins/datasource/opentsdb/partials/config.html index f4f0bedfc19..1006ef97d32 100644 --- a/public/app/plugins/datasource/opentsdb/partials/config.html +++ b/public/app/plugins/datasource/opentsdb/partials/config.html @@ -1,6 +1,5 @@ -
Opentsdb settings
@@ -9,5 +8,12 @@ -
+
+
+ + Resolution + + + +