expandItemName function moved to helperFunctions.js.

This commit is contained in:
Alexander Zobnin
2015-07-11 11:09:34 +03:00
parent 082d56e1a6
commit c3def217de
4 changed files with 31 additions and 32 deletions

View File

@@ -105,7 +105,7 @@ function (angular, _, kbn) {
if (target.itemFilter) { if (target.itemFilter) {
var item_pattern = new RegExp(target.itemFilter); var item_pattern = new RegExp(target.itemFilter);
return _.filter(items, function (item) { return _.filter(items, function (item) {
return item_pattern.test(self.zabbixAPI.expandItemName(item)); return item_pattern.test(zabbixHelperSrv.expandItemName(item));
}); });
} else { } else {
return items; return items;
@@ -114,7 +114,7 @@ function (angular, _, kbn) {
// Filtering items // Filtering items
return _.filter(items, function (item) { return _.filter(items, function (item) {
return _.contains(itemnames, self.zabbixAPI.expandItemName(item)); return _.contains(itemnames, zabbixHelperSrv.expandItemName(item));
}); });
} }
}).then(function (items) { }).then(function (items) {
@@ -131,10 +131,10 @@ function (angular, _, kbn) {
if ((from < useTrendsFrom) && self.trends) { if ((from < useTrendsFrom) && self.trends) {
return self.zabbixAPI.getTrends(items, from, to) return self.zabbixAPI.getTrends(items, from, to)
.then(_.bind(zabbixHelperSrv.handleTrendResponse, self, items, alias, target.scale)); .then(_.bind(zabbixHelperSrv.handleTrendResponse, zabbixHelperSrv, items, alias, target.scale));
} else { } else {
return self.zabbixAPI.getHistory(items, from, to) return self.zabbixAPI.getHistory(items, from, to)
.then(_.bind(zabbixHelperSrv.handleHistoryResponse, self, items, alias, target.scale)); .then(_.bind(zabbixHelperSrv.handleHistoryResponse, zabbixHelperSrv, items, alias, target.scale));
} }
} }
}); });
@@ -183,12 +183,11 @@ function (angular, _, kbn) {
var template = _.object(['group', 'host', 'app', 'item'], parts); var template = _.object(['group', 'host', 'app', 'item'], parts);
// Get items // Get items
var self = this;
if (parts.length === 4) { if (parts.length === 4) {
return this.zabbixAPI.itemFindQuery(template.group, template.host, template.app) return this.zabbixAPI.itemFindQuery(template.group, template.host, template.app)
.then(function (result) { .then(function (result) {
return _.map(result, function (item) { return _.map(result, function (item) {
var itemname = self.zabbixAPI.expandItemName(item); var itemname = zabbixHelperSrv.expandItemName(item);
return { return {
text: itemname, text: itemname,
expandable: false expandable: false

View File

@@ -46,7 +46,7 @@ function (angular, _) {
var item = indexed_items[itemid]; var item = indexed_items[itemid];
var series = { var series = {
target: (item.hosts ? item.hosts[0].name+': ' : '') target: (item.hosts ? item.hosts[0].name+': ' : '')
+ (alias ? alias : self.zabbixAPI.expandItemName(item)), + (alias ? alias : self.expandItemName(item)),
datapoints: _.map(history, function (p) { datapoints: _.map(history, function (p) {
// Value must be a number for properly work // Value must be a number for properly work
@@ -88,7 +88,7 @@ function (angular, _) {
var item = indexed_items[itemid]; var item = indexed_items[itemid];
var series = { var series = {
target: (item.hosts ? item.hosts[0].name+': ' : '') target: (item.hosts ? item.hosts[0].name+': ' : '')
+ (alias ? alias : self.zabbixAPI.expandItemName(item)), + (alias ? alias : self.expandItemName(item)),
datapoints: _.map(trends, function (p) { datapoints: _.map(trends, function (p) {
// Value must be a number for properly work // Value must be a number for properly work
@@ -107,6 +107,28 @@ function (angular, _) {
}); });
}; };
/**
* Expand item parameters, for example:
* CPU $2 time ($3) --> CPU system time (avg1)
*
* @param item: zabbix api item object
* @return: expanded item name (string)
*/
this.expandItemName = function(item) {
var name = item.name;
var key = item.key_;
// extract params from key:
// "system.cpu.util[,system,avg1]" --> ["", "system", "avg1"]
var key_params = key.substring(key.indexOf('[') + 1, key.lastIndexOf(']')).split(',');
// replace item parameters
for (var i = key_params.length; i >= 1; i--) {
name = name.replace('$' + i, key_params[i - 1]);
}
return name;
};
/** /**
* Convert multiple mettrics to array * Convert multiple mettrics to array
* "{metric1,metcic2,...,metricN}" --> [metric1, metcic2,..., metricN] * "{metric1,metcic2,...,metricN}" --> [metric1, metcic2,..., metricN]

View File

@@ -171,9 +171,9 @@ function (angular, _) {
$scope.datasource.zabbixAPI.itemFindQuery(groups, hosts, apps).then(function (items) { $scope.datasource.zabbixAPI.itemFindQuery(groups, hosts, apps).then(function (items) {
// Show only unique item names // Show only unique item names
var uniq_items = _.map(_.uniq(items, function (item) { var uniq_items = _.map(_.uniq(items, function (item) {
return $scope.datasource.zabbixAPI.expandItemName(item); return zabbixHelperSrv.expandItemName(item);
}), function (item) { }), function (item) {
return {name: $scope.datasource.zabbixAPI.expandItemName(item)}; return {name: zabbixHelperSrv.expandItemName(item)};
}); });
$scope.metric.itemList = $scope.metric.itemList.concat(uniq_items); $scope.metric.itemList = $scope.metric.itemList.concat(uniq_items);
}); });

View File

@@ -455,28 +455,6 @@ function (angular, _) {
}); });
}; };
/**
* Expand item parameters, for example:
* CPU $2 time ($3) --> CPU system time (avg1)
*
* @param item: zabbix api item object
* @return: expanded item name (string)
*/
p.expandItemName = function(item) {
var name = item.name;
var key = item.key_;
// extract params from key:
// "system.cpu.util[,system,avg1]" --> ["", "system", "avg1"]
var key_params = key.substring(key.indexOf('[') + 1, key.lastIndexOf(']')).split(',');
// replace item parameters
for (var i = key_params.length; i >= 1; i--) {
name = name.replace('$' + i, key_params[i - 1]);
}
return name;
};
return ZabbixAPI; return ZabbixAPI;
}); });