diff --git a/docs/sources/reference/functions.md b/docs/sources/reference/functions.md index 3e9e749..30c0f34 100644 --- a/docs/sources/reference/functions.md +++ b/docs/sources/reference/functions.md @@ -128,7 +128,7 @@ timeShift(interval) Draws the selected metrics shifted in time. If no sign is given, a minus sign ( - ) is implied which will shift the metric back in time. If a plus sign ( + ) is given, the metric will be shifted forward in time. Examples: ``` -timeShift(24h) - shift metric back in 2h hours +timeShift(24h) - shift metric back in 24h hours timeShift(-24h) - the same result as for timeShift(24h) timeShift(+1d) - shift metric forward in 1 day ``` 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) {