triggers: prepend proxy name to host name, #418

This commit is contained in:
Alexander Zobnin
2018-11-07 10:55:33 +03:00
parent 85f320aae3
commit b45eb5ac6f

View File

@@ -203,6 +203,7 @@ export class TriggerPanelCtrl extends PanelCtrl {
getTriggers() { getTriggers() {
let promises = _.map(this.panel.datasources, (ds) => { let promises = _.map(this.panel.datasources, (ds) => {
let proxies = [];
return this.datasourceSrv.get(ds) return this.datasourceSrv.get(ds)
.then(datasource => { .then(datasource => {
var zabbix = datasource.zabbix; var zabbix = datasource.zabbix;
@@ -218,8 +219,12 @@ export class TriggerPanelCtrl extends PanelCtrl {
showTriggers: showEvents showTriggers: showEvents
}; };
return zabbix.getTriggers(groupFilter, hostFilter, appFilter, triggersOptions); return Promise.all([
}).then((triggers) => { zabbix.getTriggers(groupFilter, hostFilter, appFilter, triggersOptions),
zabbix.getProxies()
]);
}).then(([triggers, sourceProxies]) => {
proxies = _.keyBy(sourceProxies, 'proxyid');
return this.getAcknowledges(triggers, ds); return this.getAcknowledges(triggers, ds);
}).then((triggers) => { }).then((triggers) => {
return this.setMaintenanceStatus(triggers); return this.setMaintenanceStatus(triggers);
@@ -227,6 +232,8 @@ export class TriggerPanelCtrl extends PanelCtrl {
return this.filterTriggersPre(triggers, ds); return this.filterTriggersPre(triggers, ds);
}).then((triggers) => { }).then((triggers) => {
return this.addTriggerDataSource(triggers, ds); return this.addTriggerDataSource(triggers, ds);
}).then((triggers) => {
return this.addTriggerHostProxy(triggers, proxies);
}); });
}); });
@@ -344,6 +351,19 @@ export class TriggerPanelCtrl extends PanelCtrl {
return triggers; return triggers;
} }
addTriggerHostProxy(triggers, proxies) {
triggers.forEach(trigger => {
if (trigger.hosts && trigger.hosts.length) {
let host = trigger.hosts[0];
if (host.proxy_hostid !== '0') {
const hostProxy = proxies[host.proxy_hostid];
host.proxy = hostProxy ? hostProxy.host : '';
}
}
});
return triggers;
}
sortTriggers(triggerList) { sortTriggers(triggerList) {
if (this.panel.sortTriggersBy.value === 'priority') { if (this.panel.sortTriggersBy.value === 'priority') {
triggerList = _.orderBy(triggerList, ['priority', 'lastchangeUnix', 'triggerid'], ['desc', 'desc', 'desc']); triggerList = _.orderBy(triggerList, ['priority', 'lastchangeUnix', 'triggerid'], ['desc', 'desc', 'desc']);
@@ -355,12 +375,15 @@ export class TriggerPanelCtrl extends PanelCtrl {
formatTrigger(zabbixTrigger) { formatTrigger(zabbixTrigger) {
let trigger = _.cloneDeep(zabbixTrigger); let trigger = _.cloneDeep(zabbixTrigger);
let triggerObj = trigger;
// Set host that the trigger belongs // Set host and proxy that the trigger belongs
if (trigger.hosts && trigger.hosts.length) { if (trigger.hosts && trigger.hosts.length) {
triggerObj.host = trigger.hosts[0].name; const host = trigger.hosts[0];
triggerObj.hostTechName = trigger.hosts[0].host; trigger.host = host.name;
trigger.hostTechName = host.host;
if (host.proxy) {
trigger.proxy = host.proxy;
}
} }
// Set tags if present // Set tags if present
@@ -375,9 +398,9 @@ export class TriggerPanelCtrl extends PanelCtrl {
// Format last change and age // Format last change and age
trigger.lastchangeUnix = Number(trigger.lastchange); trigger.lastchangeUnix = Number(trigger.lastchange);
triggerObj = this.setTriggerLastChange(triggerObj); trigger = this.setTriggerLastChange(trigger);
triggerObj = this.setTriggerSeverity(triggerObj); trigger = this.setTriggerSeverity(trigger);
return triggerObj; return trigger;
} }
updateTriggerFormat(trigger) { updateTriggerFormat(trigger) {
@@ -491,6 +514,9 @@ export class TriggerPanelCtrl extends PanelCtrl {
} else if (this.panel.hostField || this.panel.hostTechNameField) { } else if (this.panel.hostField || this.panel.hostTechNameField) {
host = this.panel.hostField ? trigger.host : trigger.hostTechName; host = this.panel.hostField ? trigger.host : trigger.hostTechName;
} }
if (trigger.proxy) {
host = `${trigger.proxy}: ${host}`;
}
return host; return host;
} }