// lab
The Lab
arcane@prod:~$ ./lab --run
Real operations you can trigger — not screenshots. The chaos button actually deletes a pod in a disposable demo namespace and you watch Kubernetes heal it; the load test really hammers an isolated demo service (never this site) with hard caps, streaming a live latency histogram. Everything runs my own code against an isolated, NetworkPolicy-fenced namespace — the interactive visitor shell is deliberately deferred (too dangerous on a single-node host). The same live metrics are on /system.
Chaos
Delete a pod in the disposable demo namespace and watch Kubernetes recreate it.
Load test
Fire a bounded burst at an isolated demo target (never this site) and watch the latency histogram build live. Hard caps: ≤50 concurrent · ≤10s · server-clamped.
Event stream
Live lab lifecycle events over SSE — every chaos kill and load test above appears here as it happens.
no lab events yet — trigger a chaos kill or a load test above
Rate limiter
The real per-IP token bucket that guards every /api/* route. Hammer it and watch it refuse past the burst — these are live responses, not a simulation.
- rps
- —
- burst
- —
- active IPs
- —
- 429s total
- —
fires 40 requests at once at the limiter (burst ~20); your other panels share this per-IP limit, so they may briefly rate-limit too. “429s total” is a global cumulative counter.
API playground
Try the platform’s real read-only endpoints — a fixed allow-list of GET paths (no free-text URLs), returning the live response, status, timing and headers. None of these paginate.
pick an endpoint to try it