From bc99427ef938318f3040c768c77aa1c72150f40e Mon Sep 17 00:00:00 2001 From: Oier Bravo Urtasun Date: Sat, 1 Aug 2026 23:17:56 +0200 Subject: [PATCH] docs(monitor): record phases 2+3 as deployed, with prod verification MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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) --- plan/23-monitor.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/plan/23-monitor.md b/plan/23-monitor.md index a17eeb0..1929218 100644 --- a/plan/23-monitor.md +++ b/plan/23-monitor.md @@ -381,3 +381,26 @@ unknown path (404). `mv`) does not increment the `rotations` counter — the tailer takes the "file was gone, reopen" branch instead of the rotation branch. Streaming 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) |