OPER-10
feat(dispatcher): SLO dashboard for queue latency, PR SLA, green-on-first-CI, self-recovery
Body
## Context Dispatcher is running in prod at 1-min cadence with `DispatchRun`/`TaskRun`/`ShipAttempt`/`PipelineHealthProbe` telemetry, but no SLO dashboard exists. Yesterday's audit surfaced this as the biggest observability gap. ## Acceptance Criteria - [ ] Queue-latency panel: p50/p95 of `Task.updatedAt(status='IN_PROGRESS') - createdAt` over trailing 7d — target p95 ≤ 60s - [ ] PR-SLA panel: median time from pickup → PR-opened — target ≤ 10min - [ ] Green-on-first-CI panel: `ShipAttempt` outcome distribution — target ≥ 70% first-green - [ ] Reopen-rate panel: PRs that transitioned back from IN_REVIEW → IN_PROGRESS — target < 15% - [ ] Self-recovery-time panel: reaper/recovery-agent MTTR — target ≤ 5min - [ ] Live on `/dashboard/reliability` (or similar route) - [ ] Read-only for now — no alerts wired yet ## Files Touched - operant-studio/apps/web/src/app/dashboard/reliability/page.tsx (new) - operant-studio/apps/web/src/lib/slo-queries.ts (new) ## Dependencies - Depends on existing DispatchRun/TaskRun/ShipAttempt tables (all live) ## Verification Load `/dashboard/reliability`, verify all 5 panels render with real prod data.
Attachments
Loading attachments…
Comments
Loading comments…