Currently there exists a scenario where you may start a job far before the expected check in time, and if it completes near the checkin time OR after the check in time (after it was marked missed) the status of the monitor will be updated to successful.
Imagine a crontab monitor configured as 0 * * * *. This cron monitor should run on the hour every hour. You have also configured a 5 minute checkin margin.

In this scenario...
- A checkin has happened at
12:40 (a good 20 minutes before expected)
- At
01:05 the expected checkin at 01:00 is marked as missed since no checkin happened within the 5 minute checkin margin.
- Finally the job started at
12:40 completes, and now the monitor is marked as having been "successful"
Existing world
This is not quite right, as the monitor actually started much earlier than it should have. If it had run faster and completed BEFORE 1:00 it would not have been accounted for the 1:00 checkin at all.
Proposed new world
We should not update a monitors due to checkins that started before the expected checkin time.
Currently there exists a scenario where you may start a job far before the expected check in time, and if it completes near the checkin time OR after the check in time (after it was marked missed) the status of the monitor will be updated to successful.
Imagine a crontab monitor configured as
0 * * * *. This cron monitor should run on the hour every hour. You have also configured a 5 minute checkin margin.In this scenario...
12:40(a good 20 minutes before expected)01:05the expected checkin at01:00is marked as missed since no checkin happened within the 5 minute checkin margin.12:40completes, and now the monitor is marked as having been "successful"Existing world
This is not quite right, as the monitor actually started much earlier than it should have. If it had run faster and completed BEFORE
1:00it would not have been accounted for the1:00checkin at all.Proposed new world
We should not update a monitors due to checkins that started before the expected checkin time.