SLA reports¶
Preview feature
SLA reports (part of Reports) are off by default — menu item, page and API are blocked until a super admin enables the area under Admin → System → Preview features. The area is not yet stable.
How available was a check during a period? /reports, tab SLA Reports (default tab).
Definition¶
The calculation is over time, not over stored data points: every status counts for as long as it was valid. One minute of CRITICAL in a quiet hour therefore weighs one minute.
What counts as available: only time with status OK.
What counts as an outage:
- WARNING, CRITICAL and UNKNOWN time (weighted equally — there is no option to exclude WARNING)
- NO_DATA time (agent/collector offline, check overdue) — always counted as outage, even during maintenance
What is excluded from the calculation (neither outage nor availability):
- Time within a planned downtime, to the minute and only for the checks the downtime covers (check, device or whole tenant) — not configurable
ACK phases still count as outage — an ACK only pauses notifications, it doesn't mean the world was OK.
View¶
/reports → SLA Reports:
| Element | Meaning |
|---|---|
| Period | 7, 30 (default) or 90 days, or Custom (from/to) |
| Tenant selection | super admins only (multiple selection, across tenants); everyone else sees their tenant |
| SLA target | comparison value 99 / 99.5 / 99.9 (default) / 99.99 % — purely visual: green from the target, yellow up to 0.5 points below, red otherwise; not saved |
| Exclusions | individual hosts/checks can be removed from the view (filter chips), e.g. for a sample |
Output: table with availability per row, expandable tenant → host → check. The "tenant total" is the unweighted mean of the check values.
Example output¶
Tenant Acme — April 2026
─────────────────────────────────────────────────────────────────
Service Available Downtime
api.acme.com / HTTP 99.92% 00:32h
api.acme.com / TLS-Cert 100.00% -
db01.acme.local / Postgres 100.00% -
sw-core / IF Gi1/0/1 99.45% 03:58h
sw-core / IF Gi1/0/2 100.00% -
─────────────────────────────────────────────────────────────────
Tenant total 99.83% 04:30h
Calculation¶
flowchart LR
CR[Check results] --> RATIO[OK time per check]
DT[Downtimes] --> EXCL[Exclude time]
SH[Status history] --> ND[NO_DATA time]
RATIO --> CALC[Availability %]
EXCL --> CALC
ND --> CALC
The report across many tenants is computed in blocks and stays usable even with large inventories.
Endpoints¶
| Endpoint | Scope |
|---|---|
GET /api/v1/sla/services/{service_id}/sla |
a single check (permission reports.view) |
GET /api/v1/sla/tenants/{tenant_id}/sla-report |
all checks of a tenant (permission reports.view) |
GET /api/v1/sla/sla-report |
across tenants, super admin only |
Period via start/end parameters, default the last 30 days.
Export¶
| Format | Purpose |
|---|---|
| View in the browser | interactive, with exclusions |
| CSV ("Export CSV") | generated in the browser from the loaded view (UTF-8 with BOM, Excel-friendly); names starting with =, +, -, @ or a tab are written so that Excel/LibreOffice don't turn them into a formula |
There is no separate server export endpoint for the view.
SLA as PDF¶
The PDF report type sla exists but can only be selected via the API — the PDF reports interface offers Executive and Technical (the technical report contains an SLA table).
Multiple SLA targets¶
If different checks have different expectations ("API: 99.9 %, wiki: 99.0 %"), remove the other checks from the view via exclusions and set the matching target — the SLA target is only a visual comparison value.
Related¶
- PDF reports — reports as PDF and by mail
- Downtimes — how maintenance is excluded from the calculation