{% extends "base.html" %} {% block title %}Uptime / SLA — Fabled Scryer{% endblock %} {% block content %}

Uptime / SLA

← Hosts
{# ── Summary pills ──────────────────────────────────────────────────────────── #} {% set ping_hosts = hosts | selectattr("ping_enabled") | list %} {% set total = ping_hosts | length %} {% if total %} {% set full_30d = ping_hosts | selectattr("id", "in", uptime.keys()) | selectattr("id", "defined") | list %} {% set healthy = namespace(count=0) %} {% for h in ping_hosts %} {% set pct = uptime.get(h.id, {}).get("30d") %} {% if pct is not none and pct >= 99 %}{% set healthy.count = healthy.count + 1 %}{% endif %} {% endfor %}
Hosts monitored
{{ total }}
≥ 99% (30d)
{{ healthy.count }}
{% endif %} {# ── SLA table ──────────────────────────────────────────────────────────────── #} {% if hosts %}
{% for host in hosts %} {% set ut = uptime.get(host.id, {}) %} {% for window in ["24h", "7d", "30d"] %} {% set pct = ut.get(window) %} {% endfor %} {# 30-day visual bar #} {% set pct30 = ut.get("30d") %} {% endfor %}
Host Address 24 h 7 d 30 d 30-day bar
{{ host.name }} {{ host.address }} {% if not host.ping_enabled %} {% elif pct is none %} {% elif pct >= 99.9 %} {{ "%.2f"|format(pct) }}% {% elif pct >= 99 %} {{ "%.2f"|format(pct) }}% {% elif pct >= 95 %} {{ "%.2f"|format(pct) }}% {% else %} {{ "%.2f"|format(pct) }}% {% endif %} {% if not host.ping_enabled %} ping off {% elif pct30 is none %} no data {% else %}
{% endif %}
{% else %}

No hosts configured. Add one.

{% endif %}

Uptime is computed from ping probe results only. Hosts with ping disabled show —.

{% endblock %}