Grafana supports ms resolution for Opentsdb
This commit is contained in:
@@ -11,6 +11,7 @@ export class OpenTsConfigCtrl {
|
|||||||
constructor($scope) {
|
constructor($scope) {
|
||||||
this.current.jsonData = this.current.jsonData || {};
|
this.current.jsonData = this.current.jsonData || {};
|
||||||
this.current.jsonData.tsdbVersion = this.current.jsonData.tsdbVersion || 1;
|
this.current.jsonData.tsdbVersion = this.current.jsonData.tsdbVersion || 1;
|
||||||
|
this.current.jsonData.tsdbResolution = this.current.jsonData.tsdbResolution || 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
tsdbVersions = [
|
tsdbVersions = [
|
||||||
@@ -18,4 +19,9 @@ export class OpenTsConfigCtrl {
|
|||||||
{name: '2.2', value: 2},
|
{name: '2.2', value: 2},
|
||||||
];
|
];
|
||||||
|
|
||||||
|
tsdbResolutions = [
|
||||||
|
{name: 'second', value: 1},
|
||||||
|
{name: 'millisecond', value: 2},
|
||||||
|
];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ function (angular, _, dateMath) {
|
|||||||
this.basicAuth = instanceSettings.basicAuth;
|
this.basicAuth = instanceSettings.basicAuth;
|
||||||
instanceSettings.jsonData = instanceSettings.jsonData || {};
|
instanceSettings.jsonData = instanceSettings.jsonData || {};
|
||||||
this.tsdbVersion = instanceSettings.jsonData.tsdbVersion || 1;
|
this.tsdbVersion = instanceSettings.jsonData.tsdbVersion || 1;
|
||||||
|
this.tsdbResolution = instanceSettings.jsonData.tsdbResolution || 1;
|
||||||
this.supportMetrics = true;
|
this.supportMetrics = true;
|
||||||
this.tagKeys = {};
|
this.tagKeys = {};
|
||||||
|
|
||||||
@@ -62,16 +63,21 @@ function (angular, _, dateMath) {
|
|||||||
|
|
||||||
this._saveTagKeys(metricData);
|
this._saveTagKeys(metricData);
|
||||||
|
|
||||||
return transformMetricData(metricData, groupByTags, options.targets[index], options);
|
return transformMetricData(metricData, groupByTags, options.targets[index], options, this.tsdbResolution);
|
||||||
}.bind(this));
|
}.bind(this));
|
||||||
return { data: result };
|
return { data: result };
|
||||||
}.bind(this));
|
}.bind(this));
|
||||||
};
|
};
|
||||||
|
|
||||||
this.performTimeSeriesQuery = function(queries, start, end) {
|
this.performTimeSeriesQuery = function(queries, start, end) {
|
||||||
|
var msResolution = false;
|
||||||
|
if (this.tsdbResolution === 2) {
|
||||||
|
msResolution = true;
|
||||||
|
}
|
||||||
var reqBody = {
|
var reqBody = {
|
||||||
start: start,
|
start: start,
|
||||||
queries: queries
|
queries: queries,
|
||||||
|
msResolution: msResolution
|
||||||
};
|
};
|
||||||
|
|
||||||
// Relative queries (e.g. last hour) don't include an end time
|
// Relative queries (e.g. last hour) don't include an end time
|
||||||
@@ -246,14 +252,18 @@ function (angular, _, dateMath) {
|
|||||||
return filterTypesPromise;
|
return filterTypesPromise;
|
||||||
};
|
};
|
||||||
|
|
||||||
function transformMetricData(md, groupByTags, target, options) {
|
function transformMetricData(md, groupByTags, target, options, tsdbResolution) {
|
||||||
var metricLabel = createMetricLabel(md, target, groupByTags, options);
|
var metricLabel = createMetricLabel(md, target, groupByTags, options);
|
||||||
var dps = [];
|
var dps = [];
|
||||||
|
|
||||||
// TSDB returns datapoints has a hash of ts => value.
|
// TSDB returns datapoints has a hash of ts => value.
|
||||||
// Can't use _.pairs(invert()) because it stringifies keys/values
|
// Can't use _.pairs(invert()) because it stringifies keys/values
|
||||||
_.each(md.dps, function (v, k) {
|
_.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 };
|
return { target: metricLabel, datapoints: dps };
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
<datasource-http-settings current="ctrl.current"></datasource-http-settings>
|
<datasource-http-settings current="ctrl.current"></datasource-http-settings>
|
||||||
|
|
||||||
<br>
|
|
||||||
<h5>Opentsdb settings</h5>
|
<h5>Opentsdb settings</h5>
|
||||||
<div class="gf-form">
|
<div class="gf-form">
|
||||||
<span class="gf-form-label width-7">
|
<span class="gf-form-label width-7">
|
||||||
@@ -9,5 +8,12 @@
|
|||||||
<span class="gf-form-select-wrapper">
|
<span class="gf-form-select-wrapper">
|
||||||
<select class="gf-form-input gf-size-auto" ng-model="ctrl.current.jsonData.tsdbVersion" ng-options="v.value as v.name for v in ctrl.tsdbVersions"></select>
|
<select class="gf-form-input gf-size-auto" ng-model="ctrl.current.jsonData.tsdbVersion" ng-options="v.value as v.name for v in ctrl.tsdbVersions"></select>
|
||||||
</span>
|
</span>
|
||||||
<div class="clearfix"></div>
|
</div>
|
||||||
|
<div class="gf-form">
|
||||||
|
<span class="gf-form-label width-7">
|
||||||
|
Resolution
|
||||||
|
</span>
|
||||||
|
<span class="gf-form-select-wrapper">
|
||||||
|
<select class="gf-form-input gf-size-auto" ng-model="ctrl.current.jsonData.tsdbResolution" ng-options="v.value as v.name for v in ctrl.tsdbResolutions"></select>
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user