Add read-only diagnostic and Grafana dashboards #27
Reference in New Issue
Block a user
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?
Parent: #1
Depends on: #16, #17, #26
Priority: nice-to-have; not a Rendezvous v1 release gate
Outcome
Provide two deliberately separate views of Rendezvous:
This issue does not create a privileged administration web UI. Revocation, key management, tenant configuration, and other destructive operations remain in the authenticated operator CLI/API from #16.
Diagnostic dashboard
Build a minimal static web application with no game or server authority. Prefer plain standards-based HTML/CSS/JavaScript or another build-light static approach unless a heavier framework is justified.
Scope
session_upsert,session_remove, andresetdeterministically.Grafana dashboards
Commit version-controlled provisioning/dashboard definitions covering:
Use only low-cardinality tenant/environment/region/outcome dimensions approved by #16. Never use session IDs, attempt IDs, tokens, metadata, or raw IP addresses as labels.
Security and privacy boundaries
Acceptance criteria
Starting implementation on
codex/issue-27-diagnostic-dashboardsfrom verified issue #26. Scope will preserve the public read-only diagnostic/operator Grafana separation, use build-light static assets, add explicit security and low-cardinality boundaries, and verify WCAG 2.2 AA plus clean provisioning.Implemented and verified in
99885f8(codex/issue-27-diagnostic-dashboards).Delivered:
/diagnosticsstatic dashboard using the public bounded browse + SSE contracts only;Observed acceptance evidence:
default-src 'none'/ same-origin connect/script/style,DENY,nosniff,no-referrer, COOP/CORP, permissions disabled,no-store;/metricsreturned 404, anonymous Grafana API returned 401, Prometheus had no published host port;up=1, store available, and process metrics populated; Grafana rendered UP / AVAILABLE / ACCEPTING and the capacity panels;smoke-deployment.shthree-party scenario passed and populated registration, browse/join issuance, presence, waiting-for-peer, introduction, connected outcome, pairing latency, and UDP byte series;rendezvous_limiter_drops_total{transport="udp",partition="rate-or-concurrency"}=860while target health remainedup=1;