React + Vite + Tailwind v4 + Recharts dashboard for Sentinel, a real-time fraud detection ML serving system.
- Live RPS chart — polled from
/metricsevery 1 second - Stat cards — total requests, decisions, cache hit rate, avg batch size
- A/B Test Controls — load candidate, set split %, promote or abort
- Drift Detection — bar chart of top |z-score| features; baseline progress bar before the tracker locks
- Built-in Load Tester — fires
/predictfrom the browser, computes p50/p95/p99 client-side - Model panel — threshold, allow/block counts, errors, cache size
The Sentinel server must be running on :8080 first (sentinel repo).
npm install
npm run devOpen http://localhost:5173.
Real screenshots from an actual running instance — not mockups.
1. Live dashboard — real-time RPS chart with traffic spikes, drift detection actively flagging shifted features, A/B test running at a 50% split:
2. A/B variant comparison — Variant A and Variant B each show live, independent prediction counts and block rates, plus the model config panel (threshold, allow/block totals, batches run):
- Vite 8 + React 18
- Tailwind CSS v4 (with
@tailwindcss/postcss) - Recharts for time-series + bar charts
- Plain
fetch()polling — no React Query, no Redux. ~400 LOC.

