docs(monitor): record phases 2+3 as deployed, with prod verification

Rolling deploy — only the monitor container was recreated, Minecraft was never
restarted, so no world downtime.

Records what was verified against real data rather than assumptions: the TPS
parse and RCON allowlist, the session parser against actual rotated-log join
lines, the level-regex fix (WARN/ERROR now distinguished where every line
previously read INFO), collector isolation with mc-status killed, and the
concurrent-refresh latency win.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
oierandClaude Opus 5 committed 2026-08-01 23:17:56 +02:00
1 parent 00984e1a70
commit bc99427ef9
1 file changed
+23
+23
View File
@@ -381,3 +381,26 @@ unknown path (404).
`mv`) does not increment the `rotations` counter — the tailer takes the `mv`) does not increment the `rotations` counter — the tailer takes the
"file was gone, reopen" branch instead of the rotation branch. Streaming is "file was gone, reopen" branch instead of the rotation branch. Streaming is
unaffected; only the displayed count is. unaffected; only the displayed count is.
### Phase 2 + 3 results (cochi, 2026-08-01)
Deployed **rolling**, not `--hard` — no caddy conf changed, so only the monitor
container was recreated and Minecraft was never restarted (zero downtime).
Live values on first request: server online, MOTD "Uli LAN party", 1.21.1 ·
**14** registered accounts · **20.000 TPS / 0.307 ms/tick across 6 dimensions** ·
88 GB free, 59% used · newest backup 0h old, 57 archives, 14 GB.
Verified against *real* data rather than assumptions:
| Check | Result |
|---|---|
| `neoforge tps` over the in-repo RCON client | 20.000 TPS, 6 dimensions parsed |
| RCON allowlist rejects `op`/`stop`/`say`/`ban`/`LIST`/`"neoforge tps "` | all rejected (unit test) |
| Wrong RCON password | clean `authentication failed`, other tiles unaffected |
| Session parser vs. real rotated-log join lines | `Patxakita joined/left`, timestamps intact |
| UI level regex vs. real log lines | WARN and ERROR now distinguished (was: all INFO) |
| NMSR avatar URL the heads use | HTTP 200, `image/png` |
| mc-status killed | `server_err` set; disk, backup and log stream unaffected |
| 25 concurrent `/api/summary` under `-race` | 0 data races |
| `/api/summary` with a dead dependency | 0.24s (sequential would stack timeouts) |