Dashboard / check behaviour for soft and hard states
s2156945 opened this issue · 2 comments
Is your feature request related to a problem? Please describe.
Icinga has a feature around "soft" and "hard" states. This is for a reason, e.g. don't wake me up for transient conditions
Currently meerkat displays "soft" states
Describe the solution you'd like
My order of preference; 1 is by far the most important
- installation-level choice of hard/soft state
- dashboard-level choice of hard/soft state (installation level turn off/on?)
- element-level choice of hard/soft state (installation level turn off/on + dashboard level turn on/off?)
- more nuanced display of hard/soft state, e.g. if the hard state is OK but the soft state is critical
i. green fading right to red; OR
ii. outline border around green background for cards; - different alert sounds for soft and hard states
- choice of nuanced behaviours at each level like 1/2/3
If all 6 were implemented then at each level the choices for look could be:
- soft: (current behaviour) soft states are displayed on the dashboard
- hard: only hard states are displayed on the dashboard
- fade: the hard state color is on the left, fading to the soft state colour on the right
- outline: the hard state color is used for the fill, the soft state colour is used for the border for cards/svgs/lines
- flash: flash between hard state (long) and soft state (short) e.g. 2 seconds / 1 second or 2.5 seconds 0.5 seconds
- blur: items with a soft state have a gaussian blur
- (other)
Choices for sound:
- soft: (current behaviour) make sounds for soft changes
- hard: only make sounds for hard state change
- quiet: make quieter sounds for soft state changes
- fast: pitch and speed change the sounds for soft changes
- individual: have different sounds for the soft and hard transitions
- (other)
more nuanced display of hard/soft state, e.g. if the hard state is OK but the soft state is critical
Hard and soft states aren't separate states Icinga holds for a host/service, rather it an extra value on top of the current host/service state;
A host/service that is current critical is critical, on top of this it is either soft OR hard.
A first step for this feature set would be a drop down value (defaulting to global/dashboard default) for SOFT
or HARD
that only changes the state based on the appropriate threshold.
check_attempt
and max_check_attempts
are part of host/service attributes, not the last_check_result
so aren't available to event streams.
There is a another var in the check_result of event streams vars_after.state_type
that may relate to SOFT/HARD state.
vars_after.attempt
also exists in event streams, if we want to determine SOFT/HARD state and nothing else contains the data we need a option could be a make a api call and cache the max_check_attempts
and then compare the event vars_after.attempt
value to that.