I have a feeling this bug has been extant
for over a decade but no one noticed. It's a leftover from a very old
form of the alerting system.
last_ok is immediately reset to now() when the check returns OK, so it's
never available to do the duration calculation later on. I suspect a
very long time ago the duration calculation was done in a different
location, but that must have been before the poller <> alerter
code split, so a very very long time ago.
I've done a workaround by putting the previous_last_ok into the database
in the json blob, rather than modifying the schema for it.
It should work now, if a little bit sub-optimally in terms of code/data
path.
it's in r14636.
Thanks,
adam.
Tony Guadagno via observium wrote on 26/02/2026 15:38: