From f96c847f6dd41601af4899ca39c7da61f034cacd Mon Sep 17 00:00:00 2001 From: evandro-portugal Date: Mon, 23 Jan 2017 09:52:46 -0200 Subject: [PATCH] setAlias using a regex (#336) created a new function that allows to use a regex to manipulate item name --- src/datasource-zabbix/dataProcessor.js | 15 ++++++++++++++- src/datasource-zabbix/metricFunctions.js | 15 +++++++++++++-- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/src/datasource-zabbix/dataProcessor.js b/src/datasource-zabbix/dataProcessor.js index 0415d11..560ccd6 100644 --- a/src/datasource-zabbix/dataProcessor.js +++ b/src/datasource-zabbix/dataProcessor.js @@ -156,6 +156,18 @@ function setAlias(alias, timeseries) { return timeseries; } +function setAliasByRegex(alias, timeseries) { + timeseries.target = extractText(timeseries.target, alias); + return timeseries; +} + +function extractText(str, pattern) { + var extractPattern = new RegExp(pattern); + var extractedValue = extractPattern.exec(str); + extractedValue = extractedValue[0] + return extractedValue; +} + function scale(factor, datapoints) { return _.map(datapoints, point => { return [ @@ -281,7 +293,8 @@ let metricFunctions = { top: _.partial(limit, 'top'), bottom: _.partial(limit, 'bottom'), timeShift: timeShift, - setAlias: setAlias + setAlias: setAlias, + setAliasByRegex: setAliasByRegex }; let aggregationFunctions = { diff --git a/src/datasource-zabbix/metricFunctions.js b/src/datasource-zabbix/metricFunctions.js index 97e5c29..d2cca3d 100644 --- a/src/datasource-zabbix/metricFunctions.js +++ b/src/datasource-zabbix/metricFunctions.js @@ -149,13 +149,24 @@ addFuncDef({ defaultParams: ['24h'], }); +//Alias + addFuncDef({ name: 'setAlias', category: 'Alias', params: [ - { name: 'alias', type: 'string'} + { name: 'alias', type: 'string' } ], - defaultParams: [], + defaultParams: [] +}); + +addFuncDef({ + name: 'setAliasByRegex', + category: 'Alias', + params: [ + { name: 'aliasByRegex', type: 'string' } + ], + defaultParams: [] }); _.each(categories, function(funcList, catName) {