Documentation
¶
Overview ¶
ingress_churn is a release-gate load harness for the AerolVM cluster data-plane ingress. It runs against a live cluster (NOT a unit-test fixture) and measures the SLOs called out in plans/cluster-criticial-thinking-stage-2/06-release-gates.md:
- placement-to-ingress convergence p95 < 2s
- Raft apply p99 < 100ms steady-state
- zero wrong-owner ingress route misses after convergence
It expects the cluster to already be running (e.g. the three-server + N-worker + three-ingress topology from cluster-ingress.mdx) and an SB_PAT_TOKEN set in the env. It does NOT bring up nodes or join them.
Output: a CSV of (timestamp, op, duration_ms, status_code, route_lag_ms) suitable for attaching to a release PR as the convergence artifact, plus a per-op p50/p95/p99 summary printed to stderr at exit.
Run:
go run scripts/load/ingress_churn.go \
-api https://api.sandbox.example.com \
-ingress https://ingress.sandbox.example.com \
-pat "$SB_PAT_TOKEN" \
-rate 1 \
-concurrency 4 \
-duration 60m \
-out churn.csv
The harness is intentionally small. It is not a load generator in the hey/wrk sense — it's a slow, steady churn driver whose goal is to surface the convergence story under realistic placement churn, not to saturate any individual endpoint.