Leaderboard observability gap: store/submit/fetch endpoints not Prometheus-instrumented #54
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Symptom
QM verified post-round-6 deploy: no
cellblock_leaderboard_*metric series in the live/metricssurface. Bosun's dispatch (9a69) speculated "likely emits this metric series" but the speculation wasn't substrate-verified — the leaderboard store + submit/fetch endpoints aren't Prometheus-instrumented.Other cellblock subsystems do have metrics:
cellblock_active_matches,cellblock_connected_clients,cellblock_matches_started_total,cellblock_matches_ended_total,cellblock_lines_cleared_total,cellblock_garbage_sent_total. The leaderboard surfaces (first persistent server state on cellblock) are observability-blind by comparison.Why this matters
Grafana dashboards covering cellblock won't show leaderboard activity (submit rate, fetch rate, blocked-by-moderation rate, persist-failure rate). Operational visibility into the leaderboard subsystem is meaningfully reduced.
Proposed instrumentation
Candidate metric series (Engineer's call on shape):
cellblock_leaderboard_entries_total— current count of entries in the top-N store (gauge)cellblock_leaderboard_submits_total{outcome="accepted|blocked|invalid"}— count of submit attempts by outcomecellblock_leaderboard_fetches_total— count of fetch requests servedcellblock_leaderboard_persist_errors_total— atomic-write failures (when store degrades to memory-only)cellblock_leaderboard_body_cap_rejected_total— MaxBytesReader rejections (DoS attempt signal)Lane
Engineer (server store author, knows the natural emit points).
Effort
Size/S — a few
prometheus.NewCounterregistrations + counter.Inc() calls at the natural store-event sites + test that the metrics surface.Acceptance criteria
/metricsAnchor
QM round 6 deploy verify (id 2e10) flagged the absent metric series as sub-shape of verify-substrate-not-speculation; Bosun acknowledged the speculation-without-verification slip + routed to a substrate-completeness tracker rather than burying in chamber-state.
AC-tick pass (retroactive) — closed by PR #72 @
e8bf334b+ Engineer's AC3 live-confirmation cycle:submits_total{outcome=accepted|blocked|invalid}with normalizeInitials/isBlockedInitials split to distinguish the three paths. Verified live cb49 with each outcome forced.persist_errors > 0paging is a QM monitoring-config call (not in this scope).Plus bonus empirical confirmation from QM round-7 deploy verification:
persist_errors=0doubles as round-7 /data mount writable evidence, closing the round-6 substrate-correction loop empirically.