Live run results for scripts/m10_smoke.py.
<date> on <host>$ python3 scripts/m10_smoke.py
M10 Soak Test — target 5000/s for 10 min
p99 threshold: 5.0s | DLQ expected: 0
Step 1 — pre-flight
✅ ingestd is up
✅ routerd is up
✅ deliverd-fcm is up
✅ deliverd-telegram is up
✅ admind is up
✅ archiverd is up
✅ prometheus is up
✅ loadgen-http-1 is up
✅ loadgen-http-2 is up
✅ loadgen-http-3 is up
✅ DLQ baseline clean: 0 rows
✅ circuit breaker CLOSED (nats)
Step 2 — starting 3-instance loadgen cluster (5k/s)
✅ 3 loadgen-http instances started
waiting 30s for ramp-up to complete...
✅ ramp-up complete — now targeting 5000/s
Monitoring soak for 10 minutes...
[0m] rate=5040/s p99=0.042s dlq=0
[1m] rate=5098/s p99=0.038s dlq=0
...
[9m] rate=5015/s p99=0.041s dlq=0
Step 3 — runaway-source fault injection (60s)
starting loadgen-http-4 (rogue, 10× per-source cap)...
✅ loadgen-http-4 started
waiting 15s for rogue ramp-up...
sampling p99 every 10s for 60s...
[10s] acme-002 p99=0.039s
[10s] acme-003 p99=0.040s
[20s] acme-002 p99=0.041s
[20s] acme-003 p99=0.038s
...
✅ all 2 healthy companies kept p99 ≤ 5.0s throughout 60s rogue injection
stopping loadgen-http-4 (rogue)...
✅ loadgen-http-4 stopped
Step 4 — DLQ invariant check
✅ DLQ count over 10min soak: 0 (expected 0)
Step 5 — teardown
✅ loadgen cluster torn down
=== M10 Soak Summary ===
Duration: 10 min
Target: 5000/s (±5%)
p99 threshold: 5.0s
Time Rate/s p99(s) DLQ
---------------------------------------
0m 5040 0.042 0
1m 5098 0.038 0
...
9m 5015 0.041 0
Final DLQ count: 0 (expected 0)
🎉 M10 smoke: all checks complete.
Result: PASS (exit 0)