mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
added support to coustom where conditions
This commit is contained in:
parent
69b9189220
commit
f122da58c1
@ -74,7 +74,23 @@
|
|||||||
function
|
function
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<select class="input-medium grafana-target-segment-input" ng-change="get_data()" ng-model="target.function" ng-options="f for f in ['mean', 'sum', 'min', 'max', 'median', 'derivative', 'stddev']" ></select>
|
<select class="input-medium grafana-target-segment-input"
|
||||||
|
ng-change="get_data()"
|
||||||
|
ng-model="target.function"
|
||||||
|
ng-options="f for f in functions" ></select>
|
||||||
|
</li>
|
||||||
|
<li class="grafana-target-segment">
|
||||||
|
condition
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<input type="text"
|
||||||
|
class="input-medium grafana-target-segment-input"
|
||||||
|
ng-model="target.condition"
|
||||||
|
placeholder="value condition"
|
||||||
|
spellcheck='false'
|
||||||
|
bs-typeahead="listColumns"
|
||||||
|
data-min-length=0
|
||||||
|
ng-blur="get_data()">
|
||||||
</li>
|
</li>
|
||||||
<li class="grafana-target-segment">
|
<li class="grafana-target-segment">
|
||||||
group by time
|
group by time
|
||||||
|
@ -30,12 +30,16 @@ function (angular, _, kbn) {
|
|||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
|
||||||
var template = "select [[func]]([[column]]) from [[series]] where [[timeFilter]] group by time([[interval]]) order asc";
|
// var template = "select [[func]]([[column]]) as [[column]]_[[func]] from [[series]] where [[timeFilter]] group by time([[interval]]) order asc";
|
||||||
|
var template = "select [[func]]([[column]]) from [[series]] where [[condition]] [[timeFilter]] group by time([[interval]]) order asc";
|
||||||
|
|
||||||
|
target.condition_joined = (target.condition !== undefined ? target.condition + ' AND ' : '');
|
||||||
|
|
||||||
var templateData = {
|
var templateData = {
|
||||||
series: target.series,
|
series: target.series,
|
||||||
column: target.column,
|
column: target.column,
|
||||||
func: target.function,
|
func: target.function,
|
||||||
|
condition: target.condition_joined,
|
||||||
timeFilter: getTimeFilter(options),
|
timeFilter: getTimeFilter(options),
|
||||||
interval: target.interval || options.interval
|
interval: target.interval || options.interval
|
||||||
};
|
};
|
||||||
@ -96,6 +100,12 @@ function (angular, _, kbn) {
|
|||||||
function handleInfluxQueryResponse(results) {
|
function handleInfluxQueryResponse(results) {
|
||||||
var output = [];
|
var output = [];
|
||||||
|
|
||||||
|
var getKey = function (str) {
|
||||||
|
var key1 = str.split(' where ');
|
||||||
|
var key2 = key1[1].split(' AND ');
|
||||||
|
return (key2[0] !== key1[1] ? '.' + key2[0] : '');
|
||||||
|
}
|
||||||
|
|
||||||
_.each(results.data, function(series) {
|
_.each(results.data, function(series) {
|
||||||
var timeCol = series.columns.indexOf('time');
|
var timeCol = series.columns.indexOf('time');
|
||||||
|
|
||||||
@ -106,7 +116,7 @@ function (angular, _, kbn) {
|
|||||||
|
|
||||||
console.log("series:"+series.name + ": "+series.points.length + " points");
|
console.log("series:"+series.name + ": "+series.points.length + " points");
|
||||||
|
|
||||||
var target = series.name + "." + column;
|
var target = series.name + "." + column + getKey(results.config.params.q);
|
||||||
var datapoints = [];
|
var datapoints = [];
|
||||||
|
|
||||||
for(var i = 0; i < series.points.length; i++) {
|
for(var i = 0; i < series.points.length; i++) {
|
||||||
|
Loading…
Reference in New Issue
Block a user