problems: use event tags for problems instead of trigger tags, #487
This commit is contained in:
@@ -404,6 +404,20 @@ export class ZabbixAPIConnector {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getExtendedEventData(eventids) {
|
||||||
|
var params = {
|
||||||
|
output: 'extend',
|
||||||
|
eventids: eventids,
|
||||||
|
preservekeys: true,
|
||||||
|
select_acknowledges: 'extend',
|
||||||
|
selectTags: 'extend',
|
||||||
|
sortfield: 'clock',
|
||||||
|
sortorder: 'DESC'
|
||||||
|
};
|
||||||
|
|
||||||
|
return this.request('event.get', params);
|
||||||
|
}
|
||||||
|
|
||||||
getEventAlerts(eventids) {
|
getEventAlerts(eventids) {
|
||||||
const params = {
|
const params = {
|
||||||
eventids: eventids,
|
eventids: eventids,
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import { ZabbixNotImplemented } from './connectors/dbConnector';
|
|||||||
const REQUESTS_TO_PROXYFY = [
|
const REQUESTS_TO_PROXYFY = [
|
||||||
'getHistory', 'getTrend', 'getGroups', 'getHosts', 'getApps', 'getItems', 'getMacros', 'getItemsByIDs',
|
'getHistory', 'getTrend', 'getGroups', 'getHosts', 'getApps', 'getItems', 'getMacros', 'getItemsByIDs',
|
||||||
'getEvents', 'getAlerts', 'getHostAlerts', 'getAcknowledges', 'getITService', 'getSLA', 'getVersion', 'getProxies',
|
'getEvents', 'getAlerts', 'getHostAlerts', 'getAcknowledges', 'getITService', 'getSLA', 'getVersion', 'getProxies',
|
||||||
'getEventAlerts'
|
'getEventAlerts', 'getExtendedEventData'
|
||||||
];
|
];
|
||||||
|
|
||||||
const REQUESTS_TO_CACHE = [
|
const REQUESTS_TO_CACHE = [
|
||||||
@@ -18,7 +18,8 @@ const REQUESTS_TO_CACHE = [
|
|||||||
|
|
||||||
const REQUESTS_TO_BIND = [
|
const REQUESTS_TO_BIND = [
|
||||||
'getHistory', 'getTrend', 'getMacros', 'getItemsByIDs', 'getEvents', 'getAlerts', 'getHostAlerts',
|
'getHistory', 'getTrend', 'getMacros', 'getItemsByIDs', 'getEvents', 'getAlerts', 'getHostAlerts',
|
||||||
'getAcknowledges', 'getITService', 'getVersion', 'login', 'acknowledgeEvent', 'getProxies', 'getEventAlerts'
|
'getAcknowledges', 'getITService', 'getVersion', 'login', 'acknowledgeEvent', 'getProxies', 'getEventAlerts',
|
||||||
|
'getExtendedEventData'
|
||||||
];
|
];
|
||||||
|
|
||||||
export class Zabbix {
|
export class Zabbix {
|
||||||
|
|||||||
@@ -269,12 +269,13 @@ export class TriggerPanelCtrl extends PanelCtrl {
|
|||||||
return trigger.lastEvent.eventid;
|
return trigger.lastEvent.eventid;
|
||||||
}));
|
}));
|
||||||
return Promise.all([
|
return Promise.all([
|
||||||
this.datasources[ds].zabbix.getAcknowledges(eventids),
|
this.datasources[ds].zabbix.getExtendedEventData(eventids),
|
||||||
this.datasources[ds].zabbix.getEventAlerts(eventids),
|
this.datasources[ds].zabbix.getEventAlerts(eventids),
|
||||||
Promise.resolve(triggers)
|
Promise.resolve(triggers)
|
||||||
]);
|
]);
|
||||||
})
|
})
|
||||||
.then(([events, alerts, triggers]) => {
|
.then(([events, alerts, triggers]) => {
|
||||||
|
this.addEventTags(events, triggers);
|
||||||
this.addAcknowledges(events, triggers);
|
this.addAcknowledges(events, triggers);
|
||||||
this.addEventAlerts(alerts, triggers);
|
this.addEventAlerts(alerts, triggers);
|
||||||
return triggers;
|
return triggers;
|
||||||
@@ -323,6 +324,18 @@ export class TriggerPanelCtrl extends PanelCtrl {
|
|||||||
return ack;
|
return ack;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
addEventTags(events, triggers) {
|
||||||
|
_.each(triggers, trigger => {
|
||||||
|
var event = _.find(events, event => {
|
||||||
|
return event.eventid === trigger.lastEvent.eventid;
|
||||||
|
});
|
||||||
|
if (event && event.tags && event.tags.length) {
|
||||||
|
trigger.tags = event.tags;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return triggers;
|
||||||
|
}
|
||||||
|
|
||||||
addEventAlerts(alerts, triggers) {
|
addEventAlerts(alerts, triggers) {
|
||||||
alerts.forEach(alert => {
|
alerts.forEach(alert => {
|
||||||
const trigger = _.find(triggers, t => {
|
const trigger = _.find(triggers, t => {
|
||||||
|
|||||||
Reference in New Issue
Block a user