SLA tracking
Track actual uptime against a target, see your remaining error budget, and pull monthly compliance numbers.
SLA tracking
Happy Uptime computes uptime over a rolling window and compares it against your declared target (sla_target_pct). The result tells you both the literal % and your remaining "error budget" — the headroom before you breach the SLA.
Anatomy
For each monitor with an SLA target:
| Field | Meaning |
|---|---|
sla_target_pct | Your goal, e.g. 99.9 |
actual_uptime_pct | Computed from check results in the window |
error_budget_seconds_remaining | How much downtime you can still afford |
error_budget_burned_pct | Fraction of the budget you've used |
breached | true if actual < target |
Pre-aggregation
Raw check results live in check_results (high cardinality). For SLA + analytics queries, hourly and daily rollups are pre-computed:
| Table | Granularity |
|---|---|
check_rollups_hourly | Per (monitor, region, hour). Holds avg / p50 / p95 / p99 response time + uptime fraction |
check_rollups_daily | Per (monitor, day). Aggregated from hourly. Includes incident count |
A cron runs every hour to compute the previous hour's rollups, and every midnight UTC to roll daily.
Endpoints
| Endpoint | Returns |
|---|---|
GET /analytics/sla?monitor_id=…&days=30 | SLA tracking for one monitor over N days |
GET /analytics/uptime?days=30 | Per-monitor uptime over time |
GET /analytics/latency?monitor_id=…&days=7 | P50/P95/P99 response times |
GET /analytics/summary | Org-wide stats |