SLA Tracking
SLA tracking turns monitoring into a contract-grade deliverable: set a monthly uptime target per project (e.g. 99.9%), watch the error budget burn down, and get alerted before — not after — the SLA breaks.
Business exclusive. Projects on other editions can open this page but the SLA target field is only accepted on Business workspaces.
How compliance is calculated
Compliance is time-based, not check-count-based:
effective_downtime = incident_downtime − maintenance_overlap
uptime% = 100 × (1 − effective_downtime / window_seconds)
- Only downtime incidents count (SSL-expiry warnings never count, same rule as everywhere else in SiroPing).
- Maintenance windows never count against the SLA. Deploy at 2 AM without fear: checks keep running, incidents are still tracked, and the maintenance overlap is subtracted before compliance is computed.
- A per-monitor override (
Monitor.config['sla_target_percent']) wins over the project target when present.
Error budget
For a 99.9% monthly target, the error budget is ~43 minutes of downtime per 30-day month:
| Budget used | Status | Alert |
|---|---|---|
| < 80% | Met | — |
| 80–100% | At risk | sla_at_risk (once per month) |
| ≥ 100% | Breached | sla_breached (once per month) |
Alerts go through your normal notification channels (email, Telegram, webhook, Web Push). Dropping back under 80% clears the state silently — no alert spam when a month recovers.
Where SLA shows up
- Project page — per-monitor compliance table for the current month.
- Monitor page — SLA tile with uptime vs target and budget used.
- Monthly client report — SLA section with per-service compliance, printable under your white-label branding. This is the page agencies attach to invoices.
Setting a target
Project → Edit → SLA target % (e.g. 99.9; empty = tracking off).
Targets are validated (0 < x ≤ 100) and Business-gated at the backend —
a Community/Pro/Freelancer workspace cannot save one.