Icinga / icingaweb2-module-businessprocess

Create top-level views of your applications in a graphical editor. Rules express dependencies between existing hosts and services and let you alert on application level. Business processes are displayed in a tree or list overview.
https://icinga.com/docs/businessprocess/latest
GNU General Public License v2.0
108 stars 44 forks source link

Enhance "Degraded" operator #436

Closed vlcty closed 8 months ago

vlcty commented 8 months ago

Is your feature request related to a problem? Please describe.

I've two services: A and B in a process with the DEGRADED operator. I try to achieve that the process will go into a critical state when both services are in a critical state.

Example story:

Customer has two BGP sessions. A primary one and a VPN backup. If one of them is critical then go into a warning state. If both of them are in a critical state then the process should also be in a critical state. We have two alarm states: 9to5 and 24_7. 9to5 sends a message in the chat when a service goes into warning or critical state. 24_7 sends a message in the chat when a service goes into warning or critical state but also wakes us up in the night. I would like to continue sleeping when one session is down. However when two sessions are down I'd like to be woken up.

Describe the solution you'd like

From the manual I checked the state table for the DEGRADED operator: https://github.com/Icinga/icingaweb2-module-businessprocess/blob/main/doc/09-Operators.md#degraded

My expectation is that the process should always go into a critical state if both/all services are also critical. But as you can see in the table the Cell for Critical/Critical is still warning. If everything inside a process is critical then it's not degraded anymore. It's completly down. I'd suggest changing that state to CRITICAL or introduced a new operator.

Example:

OK + OK = OK.
OK + WARNING = WARNING OK + CRITICAL = WARNING CRITICAL + CRITICAL = CRITICAL

Describe alternatives you've considered

The AND, OR or XOR Operator does not achieve what I need, as the process itself is then either OK or CRITICAL, but never WARNING.

nilmerg commented 8 months ago

Duplicate of #278