{% extends "base.html" %} {% block title %}SLA report{% endblock %} {% block head %}{% endblock %} {% block content %}
{{ since|dt }} → {{ until|dt }} · workspace {{ ws.email }} · generated {{ until|dt }}
| Service | Target | Achieved | Result | Error budget | Downtime | Incidents |
|---|---|---|---|---|---|---|
| {{ r.m.name }} {{ r.m.url }} | {{ r.target }}% | {{ r.achieved if r.achieved is not none else '—' }}{% if r.achieved is not none %}%{% endif %} | {{ 'met' if r.met else 'breached' }} | {{ fmt_duration(r.remaining_s) }} left of {{ fmt_duration(r.budget_s) }} | {{ fmt_duration(r.down_s) }} | {{ r.incidents|length }} |
| Monitor | Type | Uptime | Downtime | Incidents |
|---|---|---|---|---|
| {{ r.m.name }} | {{ r.m.mode }} | {{ r.achieved if r.achieved is not none else '—' }}{% if r.achieved is not none %}%{% endif %} | {{ fmt_duration(r.down_s) }} | {{ r.incidents|length }} |
| Started | Service | Duration | Cause | Acknowledged | Postmortem |
|---|---|---|---|---|---|
| {{ i.started_at|dt }} | {{ m.name }} | {{ fmt_duration(i.duration_seconds) }} | {{ (i.cause or '')[:120] }} | {{ i.acknowledged_by or '—' }} | {{ (i.postmortem or '—')[:160] }} |
Uptime = successful checks ÷ total checks in the period. Downtime = sum of confirmed outage incidents. Error budget = allowed downtime at the target over the period. Report generated by {{ app_name }}.
{% endblock %}