diff --git a/src/datasource-zabbix/dataProcessor.js b/src/datasource-zabbix/dataProcessor.js index 456829a..547e65a 100644 --- a/src/datasource-zabbix/dataProcessor.js +++ b/src/datasource-zabbix/dataProcessor.js @@ -35,6 +35,12 @@ function limit(order, n, orderByFunc, timeseries) { } } +function sortSeries(direction, timeseries) { + return _.orderBy(timeseries, [function (ts) { + return ts.target.toLowerCase(); + }], direction); +} + function setAlias(alias, timeseries) { timeseries.target = alias; return timeseries; @@ -117,6 +123,7 @@ let metricFunctions = { sumSeries: sumSeries, top: _.partial(limit, 'top'), bottom: _.partial(limit, 'bottom'), + sortSeries: sortSeries, timeShift: timeShift, setAlias: setAlias, setAliasByRegex: setAliasByRegex, diff --git a/src/datasource-zabbix/metricFunctions.js b/src/datasource-zabbix/metricFunctions.js index ca04c32..f5ad950 100644 --- a/src/datasource-zabbix/metricFunctions.js +++ b/src/datasource-zabbix/metricFunctions.js @@ -171,6 +171,15 @@ addFuncDef({ defaultParams: [5, 'avg'], }); +addFuncDef({ + name: 'sortSeries', + category: 'Filter', + params: [ + { name: 'direction', type: 'string', options: ['asc', 'desc'] } + ], + defaultParams: ['asc'] +}); + // Trends addFuncDef({