OXYGENHUB

Scaling phase 0: metrics, traces, hub-load and a one-node baseline issue #362 open andymccall opened this · 0 comments

andymccall

Scaling, phase 0 (docs/scaling.md §4): measure what one node carries before the repository service.

  • Metrics on /metrics (Prometheus) where missing: request latency by route (histograms), push and fetch throughput and bytes, the blocking pool's queue depth, lock waits per repository, cache hit rates, database pool waits and query time, the work queue's depth and age (issue #276), event bus lag (issue #273), Flow queue time.
  • Traces with OpenTelemetry (OTLP, off by default), spans across web, worker and the queue; /readyz beside /health.
  • hub-load, a load generator (Rust, in this workspace): simulated users browsing, searching, pushing, opening and landing proposals, and runners claiming, in a fixed mix with a fixed seed, reporting latency percentiles and errors per action.
  • A baseline report run on Earth against a copy of the hub (never production): requests per second and pushes per minute one node sustains on SQLite and on PostgreSQL, the first thing to break, with graphs; kept in docs/ with how to rerun it.
  • Exit: "one node serves N active users", with the evidence, and the order of the next bottlenecks for phase 2.

andymccall set labels performance ·