Commit 65307c46 by Torkel Ödegaard

Refactoring opentsdb editor view, merging #1438, made Downsampling enabled by default

parent 2ae0ef94
# 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
......
......@@ -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;
}
......
......@@ -43,14 +43,18 @@
</ul>
<ul class="tight-form-list" role="menu">
<li class="tight-form-item" style="width: 86px">
Metric
</li>
<li>
<input type="text"
class="tight-form-input"
class="input-large tight-form-input"
ng-model="target.metric"
spellcheck='false'
bs-typeahead="suggestMetrics"
placeholder="metric name"
data-min-length=0 data-items=100
ng-model-onblur
ng-blur="targetBlur()"
>
<a bs-tooltip="target.errors.metric"
......@@ -76,48 +80,6 @@
</li>
<li class="tight-form-item">
Rate:
<input type="checkbox"
class="tight-form-checkbox"
ng-model="target.shouldComputeRate"
ng-change="targetBlur()"
>
</li>
<li class="tight-form-item" ng-hide="!target.shouldComputeRate">
Counter:
<input type="checkbox"
class="tight-form-checkbox"
ng-disabled="!target.shouldComputeRate"
ng-model="target.isCounter"
ng-change="targetBlur()">
</li>
<li class="tight-form-item" ng-hide="!target.isCounter">
Counter Max:
</li>
<li ng-hide="!target.isCounter">
<input type="text"
class="tight-form-input input-medium"
ng-disabled="!target.shouldComputeRate"
ng-model="target.counterMax"
spellcheck='false'
placeholder="Counter max value"
ng-blur="targetBlur()"
/>
</li>
<li class="tight-form-item" ng-hide="!target.isCounter">
Counter Reset Value:
</li>
<li ng-hide="!target.isCounter">
<input type="text"
class="tight-form-input input-medium"
ng-disabled="!target.shouldComputeRate"
ng-model="target.counterResetValue"
spellcheck='false'
placeholder="Counter reset value"
ng-blur="targetBlur()"
/>
</li>
<li class="tight-form-item">
Alias:
</li>
<li>
......@@ -138,31 +100,29 @@
<div class="tight-form">
<ul class="tight-form-list" role="menu">
<li class="tight-form-item">
Downsample:
<input type="checkbox"
class="tight-form-checkbox"
ng-model="target.shouldDownsample"
ng-change="targetBlur(target)"
>
<i class="fa fa-eye invisible"></i>
</li>
<li ng-hide="!target.shouldDownsample">
<li class="tight-form-item" style="width: 86px">
Down sample
</li>
<li>
<input type="text"
class="input-small tight-form-input"
ng-disabled="!target.shouldDownsample"
class="input-large tight-form-input"
ng-model="target.downsampleInterval"
ng-model-onblur
ng-change="targetBlur()"
placeholder="interval"
placeholder="interval (empty = auto)"
>
</li>
<li class="tight-form-item" ng-hide="!target.shouldDownsample">
<li class="tight-form-item">
Aggregator
</li>
<li ng-hide="!target.shouldDownsample">
<li>
<select ng-model="target.downsampleAggregator"
class="tight-form-input input-small"
ng-options="agg for agg in aggregators"
......@@ -171,7 +131,24 @@
</li>
<li class="tight-form-item">
Tags:
Disable downsampling&nbsp;
<input class="cr1" id="target.disableDownsampling" type="checkbox"
ng-model="target.disableDownsampling" ng-checked="target.disableDownsampling" ng-change="targetBlur()">
<label for="target.disableDownsampling" class="cr1"></label>
</li>
</ul>
<div class="clearfix"></div>
</div>
<div class="tight-form">
<ul class="tight-form-list" role="menu">
<li class="tight-form-item">
<i class="fa fa-eye invisible"></i>
</li>
<li class="tight-form-item" style="width: 86px">
Tags
</li>
<li ng-repeat="(key, value) in target.tags track by $index" class="tight-form-item">
{{key}}&nbsp;=&nbsp;{{value}}
......@@ -202,7 +179,7 @@
ng-model="target.currentTagValue"
placeholder="value">
<a ng-click="addTag()">
<i class="fa fa-plus"></i>
add tag
</a>
<a bs-tooltip="target.errors.tags"
style="color: rgb(229, 189, 28)"
......@@ -213,5 +190,60 @@
</ul>
<div class="clearfix"></div>
</div>
<div class="tight-form">
<ul class="tight-form-list" role="menu">
<li class="tight-form-item">
<i class="fa fa-eye invisible"></i>
</li>
<li class="tight-form-item" style="width: 86px">
Rate&nbsp;
<input class="cr1" id="target.shouldComputeRate" type="checkbox"
ng-model="target.shouldComputeRate" ng-checked="target.shouldComputeRate" ng-change="targetBlur()">
<label for="target.shouldComputeRate" class="cr1"></label>
</li>
<li class="tight-form-item" ng-hide="!target.shouldComputeRate">
Counter&nbsp;
<input class="cr1" id="target.isCounter" type="checkbox"
ng-model="target.isCounter" ng-checked="target.isCounter" ng-change="targetBlur()">
<label for="target.isCounter" class="cr1"></label>
</li>
<li class="tight-form-item" ng-hide="!target.isCounter">
Counter Max:
</li>
<li ng-hide="!target.isCounter">
<input type="text"
class="tight-form-input input-small"
ng-disabled="!target.shouldComputeRate"
ng-model="target.counterMax"
spellcheck='false'
placeholder="max value"
ng-model-onblur
ng-blur="targetBlur()"
/>
</li>
<li class="tight-form-item" ng-hide="!target.isCounter">
Reset Value:
</li>
<li ng-hide="!target.isCounter">
<input type="text"
class="tight-form-input input-small"
ng-disabled="!target.shouldComputeRate"
ng-model="target.counterResetValue"
spellcheck='false'
placeholder="reset value"
ng-model-onblur
ng-blur="targetBlur()"
/>
</li>
</ul>
<div class="clearfix"></div>
</div>
</div>
</div>
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