Here's why your monitors may say there are "No alert conditions set up"

It’s possible you may have encountered a scenario in which, on a temporary (or a consistent) basis, the health status indicator for a Synthetics monitor switches from green or red over to grey. During that period, you might also see a message that states your monitor has “no alert conditions set up,” despite the fact you know there are single- or multi-location alert conditions targeting this monitor.

So why does this happen? Well, this happens when your monitor is in a state where we cannot accurately derive a valid health status. Here’s a quick dive into our entity health system to explain how that works.

Entities derive their health status from alert conditions, which rely on heartbeats from said entities to drive a lookup of the health status and set a time-to-live (TTL) for the current status. When a heartbeat occurs, a new TTL is set. However, a TTL may expire before the next heartbeat, in which case we are unable to determine the status of that entity until another heartbeat arrives (if one arrives at all).

Leaving an entity’s health status in an expired state could be an inaccurate representation of its current health, and therefore we set the status to grey with a boilerplate “No alert conditions set up” message whenever a TTL expires before the next heartbeat. This message stays until we can determine an entity’s status with certainty.

With regards to Synthetics monitors, a heartbeat can be missed for a variety of reasons. It can happen if a check is skipped when a monitor is edited, disabled, or otherwise updated; the timing of checks and subsequent heartbeats can also become irregular if a check is executed manually, or if the frequency of the monitor is adjusted.

But even without manual intervention, the time from one check to the next will be variable, as checks may execute at any point within a window of time equal to the monitor’s frequency. This will average out to one check per location over a given frequency, but the entity status TTL for a Synthetics monitor is determined by the time difference between the last two checks. Subsequently, this TTL will also be variable.

Following the information I’d shared above, if at any point the duration between the last check and the next check exceeds the health status TTL, the health status turns grey until the following heartbeat/check arrives.