SLO + Uptime Dashboard
Generated 2026-05-10T00:35:20Z ·
SLO target: 99.9% ·
window: 30 days ·
Pre-launch empty state — no production traffic yet.
All panels show placeholders. See the wiring guide in
scripts/generate-slo-dashboard.sh to connect real data.
1. Sync Daemon Uptime
Uptime (30-day window)
—
Target: 99.9%
How to wire: write a JSON state file at .github/slo-state.json
(path override: SLO_DATA_FILE env var) with:
{"uptime_pct": 99.95, "window_days": 30, "last_check_utc": "2026-05-08T15:00:00Z"}
Produce this from a heartbeat / synthetic-monitor cron that pings the sync daemon.
Will populate post-launch — currently no production traffic.
2. Error Rate vs SLO Target
Current error rate
—
Allowed: ≤0.1%
How to wire: add to .github/slo-state.json:
{"error_rate_pct": 0.02}
Source: Sentry API or application error counter. Populate post-launch once
error-rate telemetry is emitted.
3. Error Budget Consumed
Budget consumed (month)
—
Total budget: 720h 0m / month
How to wire: add to .github/slo-state.json:
{"budget_consumed_pct": 12.5, "budget_remaining_min": 37800}
Derived from (1 - uptime_pct/100) * MONTH_BUDGET_MIN.
Will populate post-launch — currently no production traffic.
4. Time at Green / Yellow / Red
| Status | Definition | Duration (30 days) |
| Green |
Error rate ≤ SLO threshold; no active incidents |
— (will populate post-launch) |
| Yellow |
Error rate elevated; error budget >50% consumed |
— (will populate post-launch) |
| Red |
SLO breach; active incident or budget exhausted |
— (will populate post-launch) |
How to wire: add to .github/slo-state.json:
{"time_green_min": 41000, "time_yellow_min": 1800, "time_red_min": 400}
Derived from Sentry issue counts bucketed by severity over the rolling window.
Will populate post-launch once Sentry has 30 days of production data.
5. Health Page
The health endpoint is expected at https://internal.praxum.ai/health.
Once the service is deployed, this dashboard will reflect live reachability
(wire by adding a health_reachable boolean to .github/slo-state.json).