diff --git a/plugins/datasource-zabbix/addMetricFunction.js b/plugins/datasource-zabbix/addMetricFunction.js index 4bc4014..7f6f569 100644 --- a/plugins/datasource-zabbix/addMetricFunction.js +++ b/plugins/datasource-zabbix/addMetricFunction.js @@ -92,6 +92,7 @@ function (angular, _, $, metricFunctions) { } function createFunctionDropDownMenu(categories) { + console.log(categories); return _.map(categories, function(list, category) { return { text: category, diff --git a/plugins/datasource-zabbix/dataProcessingService.js b/plugins/datasource-zabbix/dataProcessingService.js index a79bad8..e79cdb5 100644 --- a/plugins/datasource-zabbix/dataProcessingService.js +++ b/plugins/datasource-zabbix/dataProcessingService.js @@ -2,9 +2,10 @@ define([ 'angular', 'lodash', 'moment', - './utils' + './utils', + './metricFunctions' ], -function (angular, _, moment, utils) { +function (angular, _, moment, utils, metricFunctions) { 'use strict'; var module = angular.module('grafana.services'); diff --git a/plugins/datasource-zabbix/datasource.js b/plugins/datasource-zabbix/datasource.js index cd9a7be..87906b3 100644 --- a/plugins/datasource-zabbix/datasource.js +++ b/plugins/datasource-zabbix/datasource.js @@ -3,6 +3,7 @@ define([ 'lodash', 'app/core/utils/datemath', './utils', + './metricFunctions', './queryProcessor', './directives', './zabbixAPI', @@ -13,7 +14,7 @@ define([ './addMetricFunction', './metricFunctionEditor' ], -function (angular, _, dateMath, utils) { +function (angular, _, dateMath, utils, metricFunctions) { 'use strict'; /** @ngInject */ @@ -145,22 +146,21 @@ function (angular, _, dateMath, utils) { return getHistory.then(function (timeseries_data) { return _.map(timeseries_data, function (timeseries) { - // Metric data processing - var dp = timeseries.datapoints; - if (false) { - dp = DataProcessingService.groupBy(dp, options.interval, - DataProcessingService.AVERAGE); - timeseries.datapoints = dp; - } - - var functions = _.map(target.functions, function(func) { + // Filter only transform functions + var transformFunctions = _.map(metricFunctions.getCategories()['Transform'], 'name'); + var transFuncDefs = _.filter(target.functions, function(func) { + return _.contains(transformFunctions, func.def.name); + }); + var functions = _.map(transFuncDefs, function(func) { return func.bindFunction(DataProcessingService.metricFunctions); }); - if (functions.length) { - //console.log(functions); - dp = functions[0](dp); - timeseries.datapoints = dp; + + // Metric data processing + var dp = timeseries.datapoints; + for (var i = 0; i < functions.length; i++) { + dp = functions[i](dp); } + timeseries.datapoints = dp; return timeseries; }); diff --git a/plugins/datasource-zabbix/queryCtrl.js b/plugins/datasource-zabbix/queryCtrl.js index 77ac082..2be8afe 100644 --- a/plugins/datasource-zabbix/queryCtrl.js +++ b/plugins/datasource-zabbix/queryCtrl.js @@ -261,7 +261,7 @@ define([ }; $scope.targetChanged = function() { - console.log($scope.target.functions); + //console.log($scope.target); $scope.get_data(); };