Archicise
Exercise

Design a Metrics & Monitoring System

Build an observability platform similar to Datadog or Prometheus that collects, stores, and visualizes system metrics.

Functional Requirements

  • Collect metrics from thousands of services
  • Store time-series data efficiently
  • Query metrics with aggregations and filters
  • Set up alerts based on metric thresholds
  • Create dashboards for visualization
  • Support for custom metrics and tags

Non-Functional Requirements

  • Ingest millions of data points per second
  • Query historical data spanning months
  • Alert latency under 30 seconds
  • Efficient storage with compression

Questions to Consider

  • What storage engine is optimized for time-series data?
  • How do you handle high-cardinality metrics?
  • What query language will you support?
Your Solution

Data Ingestion

Design the metrics ingestion pipeline. Consider push vs pull models, batching, buffering, and handling burst traffic.