iss 35 - move expandItemName() function to zabbixAPIWrapper.js

This commit is contained in:
Alexander Zobnin
2015-06-28 20:02:20 +03:00
parent 1831b2b8c4
commit 1ca18d4823
3 changed files with 35 additions and 60 deletions

View File

@@ -104,7 +104,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(expandItemName(item)); return item_pattern.test(zabbix.expandItemName(item));
}); });
} else { } else {
return items; return items;
@@ -113,7 +113,7 @@ function (angular, _, kbn) {
// Filtering items // Filtering items
return _.filter(items, function (item) { return _.filter(items, function (item) {
return _.contains(itemnames, expandItemName(item)); return _.contains(itemnames, zabbix.expandItemName(item));
}); });
} }
}).then(function (items) { }).then(function (items) {
@@ -152,7 +152,7 @@ function (angular, _, kbn) {
return $q.when(_.map(grouped_history, function (trends, itemid) { return $q.when(_.map(grouped_history, function (trends, itemid) {
var item = indexed_items[itemid]; var item = indexed_items[itemid];
var series = { var series = {
target: (item.hosts ? item.hosts[0].name+': ' : '') + (alias ? alias : expandItemName(item)), target: (item.hosts ? item.hosts[0].name+': ' : '') + (alias ? alias : zabbix.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
@@ -206,7 +206,7 @@ function (angular, _, kbn) {
return $q.when(_.map(grouped_history, function (history, itemid) { return $q.when(_.map(grouped_history, function (history, itemid) {
var item = indexed_items[itemid]; var item = indexed_items[itemid];
var series = { var series = {
target: (item.hosts ? item.hosts[0].name+': ' : '') + (alias ? alias : expandItemName(item)), target: (item.hosts ? item.hosts[0].name+': ' : '') + (alias ? alias : zabbix.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
@@ -252,9 +252,9 @@ function (angular, _, kbn) {
// Get items // Get items
if (parts.length === 4) { if (parts.length === 4) {
return this.itemFindQuery(template.group, template.host, template.app).then(function (result) { return zabbix.itemFindQuery(template.group, template.host, template.app).then(function (result) {
return _.map(result, function (item) { return _.map(result, function (item) {
var itemname = expandItemName(item) var itemname = zabbix.expandItemName(item)
return { return {
text: itemname, text: itemname,
expandable: false expandable: false
@@ -264,7 +264,7 @@ function (angular, _, kbn) {
} }
// Get applications // Get applications
else if (parts.length === 3) { else if (parts.length === 3) {
return this.appFindQuery(template.host, template.group).then(function (result) { return zabbix.appFindQuery(template.host, template.group).then(function (result) {
return _.map(result, function (app) { return _.map(result, function (app) {
return { return {
text: app.name, text: app.name,
@@ -275,7 +275,7 @@ function (angular, _, kbn) {
} }
// Get hosts // Get hosts
else if (parts.length === 2) { else if (parts.length === 2) {
return this.hostFindQuery(template.group).then(function (result) { return zabbix.hostFindQuery(template.group).then(function (result) {
return _.map(result, function (host) { return _.map(result, function (host) {
return { return {
text: host.name, text: host.name,
@@ -286,7 +286,7 @@ function (angular, _, kbn) {
} }
// Get groups // Get groups
else if (parts.length === 1) { else if (parts.length === 1) {
return this.findZabbixGroup(template.group).then(function (result) { return zabbix.findZabbixGroup(template.group).then(function (result) {
return _.map(result, function (hostgroup) { return _.map(result, function (hostgroup) {
return { return {
text: hostgroup.name, text: hostgroup.name,
@@ -379,29 +379,6 @@ function splitMetrics(metrics) {
} }
/**
* Expand item parameters, for example:
* CPU $2 time ($3) --> CPU system time (avg1)
*
* @param item: zabbix api item object
* @return: expanded item name (string)
*/
function expandItemName(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 Date object to local time in format * Convert Date object to local time in format
* YYYY-MM-DD HH:mm:ss * YYYY-MM-DD HH:mm:ss

View File

@@ -37,7 +37,7 @@ function (angular, _) {
*/ */
function setItemAlias() { function setItemAlias() {
if (!$scope.target.alias && $scope.target.item) { if (!$scope.target.alias && $scope.target.item) {
$scope.target.alias = expandItemName($scope.target.item); $scope.target.alias = zabbix.expandItemName($scope.target.item);
} }
}; };
@@ -184,9 +184,9 @@ function (angular, _) {
zabbix.itemFindQuery(groups, hosts, apps).then(function (items) { zabbix.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 expandItemName(item); return zabbix.expandItemName(item);
}), function (item) { }), function (item) {
return {name: expandItemName(item)} return {name: zabbix.expandItemName(item)}
}); });
$scope.metric.itemList = $scope.metric.itemList.concat(uniq_items); $scope.metric.itemList = $scope.metric.itemList.concat(uniq_items);
}); });
@@ -208,31 +208,6 @@ function (angular, _) {
}; };
/**
* Expand item parameters, for example:
* CPU $2 time ($3) --> CPU system time (avg1)
*
* @param {Object} item Zabbix item object
* @return {string} expanded item name
*/
function expandItemName(item) {
var name = item.name;
var key = item.key_;
if (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;
};
////////////////////////////// //////////////////////////////
// VALIDATION // VALIDATION
////////////////////////////// //////////////////////////////

View File

@@ -434,5 +434,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;
}
}); });
}); });