We now want to allow events to have multiple effects. We need to prevent inconsistencies caused by an unreliable processing order. Therefore, effects should be atomic. For this reason, the type key is no longer used. Instead, alternative keys that can coexist in combination will be used. The following requirements must be met in this regard:
- Incidents should be able to be closed for multiple reasons. There are problems that cannot be resolved. An example of this are Director Deployments, which may cause an incident, but which is closed immediately after escalation.
- It should be possible to update incidents without triggering notifications. For example, a plugin’s output must be able to reflect the results of the last check, including in Icinga Notifications.
- In addition to the previous point, however, it should also be possible to explicitly trigger notifications even without changing the severity level. This is derived from so-called “volatile” hosts and services in Icinga.
The current distinction of events is therefore obsolete. The key type is replaced by the following ones:
incident: true To open an incident or to trigger escalations
close: true To close an incident irrespective of the severity
muted: bool To mute/unmute an incident (Always in combination with muted_reason: string)
force: true To bypass checks that may prevent notifications
Valid Combinations and their expected outcome
Any key marked with 🚫 cannot occur when any of the other keys are set or absent as described. The endpoint should respond with an error if they occur.
incident |
close |
muted |
force |
Outcome |
| true |
|
|
🚫 |
An incident is opened or escalated |
| true |
true |
🚫 |
🚫 |
Escalates and closes an incident, no matter if just opened or already open |
| true |
🚫 |
true |
🚫 |
Escalates and mutes an incident, no matter if just opened or already open |
| true |
🚫 |
false |
🚫 |
Escalates and unmutes an incident, no matter if just opened or already open |
|
true |
🚫 |
🚫 |
Closes an open incident prematurely, irrespective of the severity, no effect otherwise |
|
🚫 |
true |
🚫 |
Mutes an open incident, notifications are sent, no effect otherwise |
|
🚫 |
false |
🚫 |
Unmutes an open incident, notifications are sent, no effect otherwise |
|
|
|
|
An incident is updated with a new message, severity doesn't change, no notification is sent |
|
|
|
true |
An incident is updated with a new message, severity doesn't change, notifications are sent |
Legend:
| What |
Meaning |
| Empty cell |
no value |
| 🚫 |
not applicable |
We now want to allow events to have multiple effects. We need to prevent inconsistencies caused by an unreliable processing order. Therefore, effects should be atomic. For this reason, the
typekey is no longer used. Instead, alternative keys that can coexist in combination will be used. The following requirements must be met in this regard:The current distinction of events is therefore obsolete. The key
typeis replaced by the following ones:incident: trueTo open an incident or to trigger escalationsclose: trueTo close an incident irrespective of the severitymuted: boolTo mute/unmute an incident (Always in combination withmuted_reason: string)force: trueTo bypass checks that may prevent notificationsValid Combinations and their expected outcome
Any key marked with 🚫 cannot occur when any of the other keys are set or absent as described. The endpoint should respond with an error if they occur.
incidentclosemutedforceLegend: