Skip to content

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

Availability (%) = OK time ÷ observed time × 100

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.

  • PDF reports — reports as PDF and by mail
  • Downtimes — how maintenance is excluded from the calculation