Skip to content

Let sources affect incidents in multiple ways with a single event #407

@nilmerg

Description

@nilmerg

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions