diff --git a/lib/icinga/checkable-check.cpp b/lib/icinga/checkable-check.cpp index 832decaf2..8feeaceb0 100644 --- a/lib/icinga/checkable-check.cpp +++ b/lib/icinga/checkable-check.cpp @@ -256,6 +256,9 @@ void Checkable::ProcessCheckResult(const CheckResult::Ptr& cr, const MessageOrig else stateChange = (Host::CalculateState(old_state) != Host::CalculateState(new_state)); + /* Store the current last state change for the next iteration. */ + SetPreviousStateChange(GetLastStateChange()); + if (stateChange) { SetLastStateChange(now); diff --git a/lib/icinga/checkable.ti b/lib/icinga/checkable.ti index 158c5ceae..a0ed85c52 100644 --- a/lib/icinga/checkable.ti +++ b/lib/icinga/checkable.ti @@ -120,6 +120,9 @@ abstract class Checkable : CustomVarObject }; [state] Timestamp last_state_unreachable; + [state] Timestamp previous_state_change { + default {{{ return Application::GetStartTime(); }}} + }; [no_storage] int severity { get; };