triggers: prepend proxy name to host name, #418
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user