support template variables in itemid query mode

This commit is contained in:
Alexander Zobnin
2017-07-25 18:54:30 +03:00
parent fc1748a087
commit 3b1bc4d4a5
4 changed files with 25 additions and 1 deletions

View File

@@ -71,6 +71,13 @@ System.register(['lodash', 'app/core/utils/datemath', './utils', './migrations',
return '(' + escapedValues.join('|') + ')'; return '(' + escapedValues.join('|') + ')';
} }
function zabbixItemIdsTemplateFormat(value) {
if (typeof value === 'string') {
return value;
}
return value.join(',');
}
/** /**
* If template variables are used in request, replace it using regex format * If template variables are used in request, replace it using regex format
* and wrap with '/' for proper multi-value work. Example: * and wrap with '/' for proper multi-value work. Example:
@@ -496,6 +503,7 @@ System.register(['lodash', 'app/core/utils/datemath', './utils', './migrations',
var _this5 = this; var _this5 = this;
var itemids = target.itemids; var itemids = target.itemids;
itemids = this.templateSrv.replace(itemids, options.scopedVars, zabbixItemIdsTemplateFormat);
itemids = _.map(itemids.split(','), function (itemid) { itemids = _.map(itemids.split(','), function (itemid) {
return itemid.trim(); return itemid.trim();
}); });

File diff suppressed because one or more lines are too long

View File

@@ -356,6 +356,7 @@ var ZabbixAPIDatasource = function () {
var _this5 = this; var _this5 = this;
var itemids = target.itemids; var itemids = target.itemids;
itemids = this.templateSrv.replace(itemids, options.scopedVars, zabbixItemIdsTemplateFormat);
itemids = _lodash2.default.map(itemids.split(','), function (itemid) { itemids = _lodash2.default.map(itemids.split(','), function (itemid) {
return itemid.trim(); return itemid.trim();
}); });
@@ -741,6 +742,13 @@ function zabbixTemplateFormat(value) {
return '(' + escapedValues.join('|') + ')'; return '(' + escapedValues.join('|') + ')';
} }
function zabbixItemIdsTemplateFormat(value) {
if (typeof value === 'string') {
return value;
}
return value.join(',');
}
/** /**
* If template variables are used in request, replace it using regex format * If template variables are used in request, replace it using regex format
* and wrap with '/' for proper multi-value work. Example: * and wrap with '/' for proper multi-value work. Example:

View File

@@ -279,6 +279,7 @@ class ZabbixAPIDatasource {
queryItemIdData(target, timeRange, useTrends, options) { queryItemIdData(target, timeRange, useTrends, options) {
let itemids = target.itemids; let itemids = target.itemids;
itemids = this.templateSrv.replace(itemids, options.scopedVars, zabbixItemIdsTemplateFormat);
itemids = _.map(itemids.split(','), itemid => itemid.trim()); itemids = _.map(itemids.split(','), itemid => itemid.trim());
if (!itemids) { if (!itemids) {
@@ -647,6 +648,13 @@ function zabbixTemplateFormat(value) {
return '(' + escapedValues.join('|') + ')'; return '(' + escapedValues.join('|') + ')';
} }
function zabbixItemIdsTemplateFormat(value) {
if (typeof value === 'string') {
return value;
}
return value.join(',');
}
/** /**
* If template variables are used in request, replace it using regex format * If template variables are used in request, replace it using regex format
* and wrap with '/' for proper multi-value work. Example: * and wrap with '/' for proper multi-value work. Example: