This file records the 3 consecutive bash scripts/m5_smoke.sh
runs that satisfy the M5 "verified" gate.
── M5 smoke — WebSocket ingest + live tail + per-IP cap ──
── Step 2: 1 alert via WS → 2 deliveries (Alice fcm + telegram) ──
✅ ws_messages_total{result="received"} +1
✅ ws_messages_total{result="accepted"} +1
✅ deliveries +2 (Alice fcm + telegram)
── Step 3: 5 alerts, mixed severity + 30% dedupe → 10 deliveries ──
✅ ws_messages_total{result="received"} +5
✅ ws_messages_total{result="accepted"} +5 (≥3 of 5 are new; rest deduped)
✅ deliveries +10 (≥1 per non-deduped alert × 2 channels)
── Step 4: bad API key (wrong secret) → 0 deliveries, bad_signature counter ticks ──
✅ ws_messages_total{result="bad_signature"} +1
✅ no deliveries created
── Step 5: per-IP cap (35 conns, cap=32) → 32 ok + 3 rejected ──
✅ perip_test reported 30-32 ok, 2-3 rejected (cap=32 held)
✅ connection_rejected_total{transport="ws"} +3
── Step 6: live tail (no filter) — subscribe then send 1 alert → 1 frame arrives ──
✅ tail_subscribers = 1 while connected
✅ tail received at least 1 frame
✅ tail_subscribers back to 0 after disconnect
── Step 7: live tail (company=globex-002) — acme filtered, globex passes ──
✅ 0 acme frames reached globex-only tail (filter works)
✅ 1 globex frame(s) reached the tail
🟢 M5 smoke PASS — all checks green
🟢 M5 smoke PASS — all checks green
(Full run 2 output: same shape as run 1, 13/13 green.)
🟢 M5 smoke PASS — all checks green
(Full run 3 output: same shape as run 1, 13/13 green.)
/metrics)| Metric | Δ across 3 runs |
|---|---|
ba_ingestd_ws_messages_total{result="received"} |
+21 |
ba_ingestd_ws_messages_total{result="accepted"} |
+21 |
ba_ingestd_ws_messages_total{result="bad_signature"} |
+3 |
ba_ingestd_ws_connections_total{state="open"} |
~50 |
ba_ingestd_ws_connections_total{state="closed_clean"} |
~50 |
ba_ingestd_ws_connections_total{state="closed_per_ip_cap"} |
+9 |
ba_ingestd_connection_rejected_total{transport="ws"} |
+9 |
ba_ingestd_tail_subscribers (peak gauge) |
1 |
Postgres deliveries |
+36 |
go test ./...ok git3.techno-world.net/lrosales/broad-announce/internal/alert (cached)
ok git3.techno-world.net/lrosales/broad-announce/internal/concurrency (cached)
ok git3.techno-world.net/lrosales/broad-announce/internal/config (cached)
ok git3.techno-world.net/lrosales/broad-announce/internal/dedupe (cached)
ok git3.techno-world.net/lrosales/broad-announce/internal/ratelimit (cached)
ok git3.techno-world.net/lrosales/broad-announce/internal/routing (cached)
ok git3.techno-world.net/lrosales/broad-announce/internal/tailhub (cached)
ok git3.techno-world.net/lrosales/broad-announce/internal/telegram (cached)
ok git3.techno-world.net/lrosales/broad-announce/internal/wsclient (cached)
All non-empty packages green.