Intermediate LevelSystem Design & Architecture
How do you design a Time-Series Metrics Collection System (like Prometheus)?
β Interview Prompt: Explain Time-Series Databases (TSDB), Pull vs Push metric collection, Gorilla compression, and Prometheus architecture.
Designing a scalable Time-Series Metrics Collection System (Prometheus/Grafana):
Architecture:
1
Metrics Scraping (Pull Model): Server periodically fetches '/metrics' HTTP endpoints from target application instances.
2
Time-Series Engine (TSDB): Uses Gorilla Compression to compress timestamped float values, achieving $10 imes$ memory reduction.
3
Alert Manager: Evaluates PromQL alerting rules and triggers PagerDuty/Slack notifications.
Code Implementation Example
yaml
# Prometheus Scraping Target Configuration
scrape_configs:
- job_name: 'payment-microservices'
scrape_interval: 15s
static_configs:
- targets: ['payment-1.internal:3000', 'payment-2.internal:3000']π‘Prometheus metric scraping target configuration.
π― Interview Key Takeaway
Design time-series metrics collectors using pull-based scraping and Gorilla compression for high-density timestamped storage.
#System Design#Prometheus#TSDB#Metrics#Intermediate
Back to all System Design & Architecture Questionsβ