Monitoring

Uptime & SLA

Beacon automatically calculates uptime percentages from monitor check data and displays them on your public status page. Use these numbers for SLA reporting, customer communication, and internal reliability tracking.

How uptime is calculated

Uptime is derived from two counters maintained on each monitor:

Counter Description
checks_total Incremented on every check, whether it passes or fails
checks_passed Incremented only when a check succeeds

The formula is straightforward:

uptime = (checks_passed / checks_total) * 100

The result is rounded to 2 decimal places. For example, a monitor with 8,640 total checks and 8,631 passed checks would display:

(8631 / 8640) * 100 = 99.90%

This applies equally to HTTP monitors and heartbeat monitors. Every check or missed ping increments checks_total; only successful ones increment checks_passed.

Per-component uptime

When a monitor is linked to a component, the component displays its uptime percentage on the public status page. This appears next to the component name, giving visitors an at-a-glance view of each service's reliability.

If a component has no linked monitor, no uptime percentage is shown.

Tip: Link a monitor to every critical component. This gives your users a complete picture of per-service reliability without any manual updates.

Overall uptime

The overall uptime displayed at the top of the public status page is an aggregate across all monitors that have check data. It sums checks_passed and checks_total across all monitors, then applies the same formula:

overall = (sum_of_all_checks_passed / sum_of_all_checks_total) * 100

This number is shown as a progress bar at the top of the public page, providing an instant summary of your system's overall health.

Widget uptime

The embeddable widget API includes the overall uptime percentage in its response. This means external sites displaying your widget also show the current uptime figure. See the Embeddable Widget docs for integration details.

Interpreting uptime numbers

Uptime percentages can be misleading without context. The following table translates common SLA targets into real-world downtime allowances:

Uptime Downtime per year Downtime per month Downtime per week
99.0% 3.65 days 7.31 hours 1.68 hours
99.5% 1.83 days 3.65 hours 50.4 minutes
99.9% 8.77 hours 43.8 minutes 10.1 minutes
99.95% 4.38 hours 21.9 minutes 5.04 minutes
99.99% 52.6 minutes 4.38 minutes 1.01 minutes
99.999% 5.26 minutes 26.3 seconds 6.05 seconds

Resetting counters

Uptime counters accumulate over the entire lifetime of a monitor. There is currently no way to reset counters for a specific time window.

If you need to start fresh -- for example, after a major infrastructure migration -- you can delete the monitor and create a new one. The new monitor will begin with zero checks and a clean uptime record.

Note: Deleting a monitor does not delete the incidents it created. Historical incidents remain on your status page for transparency.

Best practices

  • Share the public page URL — Include a link to your Beacon status page in your product documentation, support portal, and SLA agreements. The always-current uptime number serves as proof of reliability.
  • Use uptime for SLA reporting — Export the uptime percentage for monthly or quarterly SLA reports. The number Beacon displays is calculated from every check ever recorded, giving a complete picture.
  • Monitor what matters — Only link monitors to components that map to SLA commitments. Monitoring internal tooling may skew overall uptime without reflecting customer-facing reliability.
  • Communicate during outages — Uptime numbers build trust, but communication builds loyalty. Use Beacon incidents and updates to keep users informed during downtime, not just after.