We use analytics cookies.We use cookies to analyze site traffic and improve your experience.
Loading...
System Design Masterclass · Observability Monitoring
Free preview: the first 2 parts of this 8-part lesson.
Already bought the course? Sign in to read the whole lesson.
this lesson is part of
System Design Masterclass
Unlock this lesson and the 751 other paid lessons
$25 once, by PayPal
See the System Design courseread the rest of this lesson in
System Design Masterclass
Unlock this lesson and the 751 other paid lessons
$25 once, by PayPal
See the System Design coursein Observability Monitoring
This lesson is part of the full System Design Masterclass. Unlock it along with 769 other lessons for a one-time payment.
One-time payment by card or PayPal
Get Lifetime AccessOne-time payment: UPI, card or netbanking
Get Lifetime Access18 Foundation lessons are free, no payment needed. Try them now
It is easy and good
“It is really nice and good Please join the course”
You run 50 instances of your API service. Each emits its own metrics: request count, error rate, histogram. That's 50 separate streams of data. The CEO doesn't want to see 50 dashboards, they want one number: "how is the API performing?"
Metrics aggregation is the process of combining raw metric data into meaningful summaries, across instances, across time windows, across dimensions. "Instance 17 served 340 requests in the last minute" becomes "the API fleet handled 18,000 requests per minute with a P99 latency of 120ms." The raw data tells you what individual machines are doing. The aggregated data tells you what the system is doing.
Every dashboard you've ever seen is built on aggregation. The monitoring system collects granular data and then slices, sums, averages, and percentiles it into the views that humans actually use for decisions.
Metrics can be aggregated across three dimensions:
Across instances (spatial aggregation)
Across time (temporal aggregation)
Across labels (dimensional aggregation)
In PromQL ('s query language):
sum(rate(http_requests_total[5m])), total request rate across all instancesavg by (instance)(node_cpu_utilization). CPU per instancehistogram_quantile(0.99, sum by (le)(rate(http_request_duration_seconds_bucket[5m]))). P99 latency across all instances