Uptime monitoring means checking a service on a schedule and alerting someone when it stops responding correctly. The aim is to hear about real problems before customers do, without so many false alarms that people stop reacting.
Types of check
- HTTP: request a URL and check the status code and response time. Used for most websites and APIs.
- Keyword: an HTTP check that also looks for a word (or its absence) in the body, so a 200 response showing an error page still fails.
- Heartbeat: your cron job or worker requests the monitor's URL on each run. If no request arrives in the expected window, the job is marked down. Used for anything without a public URL.
- TCP: open a connection to a host and port. Used for databases, mail servers and other services that don't speak HTTP.
Check interval
Most monitors check every one or two minutes. A single failed check rarely means an outage: networks drop packets, servers pause, deploys restart processes. Alerting on every single failure is how a pager ends up ignored.
Confirmation thresholds
Require several failures in a row before opening an incident, and several successes in a row before resolving it. Short glitches are absorbed and sustained failures are still caught within a few minutes. A brief recovery in the middle of an outage shouldn't split it into two incidents. A confirmed recovery followed by a new failure should start a new one.
Checking from more than one region
Every check runs from somewhere, and a network fault between that location and your server looks the same as your server being down. Thresholds handle short faults, but a longer one on a single route can still look like an outage. Checking from several regions handles that. In Sentivel, a monitor with two or more regions is checked from each one, and an incident opens only when a majority of regions see the failure. Combined with the thresholds above, an outage has to last and be seen from more than one place before anyone is paged.
Connecting monitors to your status page
When a monitor's confirmed state drives a component on your status page, customers see the real status without anyone updating it by hand. A new monitor should show as warming up until it has a few successful checks.