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.
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.
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.