System design interview questionMediumObservability

Design a Metrics / Monitoring System

Design a metrics/monitoring system: services emit metrics, you ingest at high write volume, store time-series-ish data, and serve dashboards.

Interview scope

Producer/Client → Gateway/LB → App → Message Queue; App → DB (+ Cache for hot queries). Optional Object Storage for cold retention. No Client → Queue/DB.

Functional requirements

  • Ingest metric datapoints from many services.
  • Store metrics for querying over time ranges.
  • Serve recent graphs to operators quickly.

Scale and quality goals

  • Write-heavy ingest — buffer with a queue.
  • Hot recent queries benefit from cache.
  • Long retention can use cheap Object Storage / DB tiering at a high level.

Capacity assumption

Design for this scale

Assume ~5B metric points/day (~58k points/s average); dashboards mostly read recent windows.

Practice more than a diagram

Place components on the Froquiz canvas, connect the data flow, and see which decisions the scenario-specific review finds missing. The full exercise and review unlock with Premium.

Explore Premium