Metrics Fundamentals
Metrics are numeric observations about a system collected over time. They show rates, current levels, and distributions so you can understand behavior and decide where to investigate.
itObservability and performance | OpenSkills.info
Course pathWalk it in order
Look it upDip in anytime
Go furtherLeaves this page
Don't Panic
Don't Panic - Metrics Fundamentals
Metrics are the notebook a system keeps about itself, except the notebook contains numbers, timestamps, and no explanation of why the server began behaving like a startled goat. They turn repeated observations into time series, which makes the present comparable with the recent past. Before metrics, an operator often had a collection of individual events and guesses. Metrics provide the aggregate evidence needed to see rates, levels, and distributions.
The important bit is the question. A counter can show completed requests or errors. A gauge can show the current queue depth or memory level. A histogram can show how request duration is distributed, including whether work crosses a useful threshold. Pick a shape that matches the behavior, because asking a gauge to remember completed work is like asking a thermometer to keep the receipts.
Dimensions split a metric into meaningful groups. Method, status, and region can help compare behavior. User IDs, email addresses, request IDs, and random tokens create a fresh time series whenever they change. This is the surprise: a tiny label can become a large storage and query problem. Name one quantity and one unit, then keep only dimensions that support a decision.
Metrics are evidence, not a health verdict. A low CPU value does not prove that a request succeeded. Logs retain the detailed event, and traces follow one operation across component boundaries. When a graph changes, those signals explain the particular work behind the trend.
Open the Intro for the full model and the distinction between counters, gauges, histograms, and summaries. Use the Cheatsheet when designing names, units, buckets, and dimensions. The Field Notes describe the operational cost of a dimension that has not earned its place. The exercise turns all of that into a bounded metric contract, which is far less glamorous than a dashboard and considerably more useful.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://prometheus.io/docs/concepts/metric_types/
Supports
- Counter, gauge, histogram, and summary definitions
- Counter and gauge examples and constraints
- https://prometheus.io/docs/practices/naming/
Supports
- Metric names, units, total suffixes, labels, and cardinality cautions
- Base-unit guidance and meaningful aggregation rule of thumb
- https://prometheus.io/docs/practices/histograms/
Supports
- Histogram and summary tradeoffs
- Aggregation limits for summary quantiles and bucketed distributions
- https://opentelemetry.io/docs/specs/otel/metrics/
Supports
- Metrics API and SDK responsibilities
- Instrumentation, aggregation, processors, and exporters
- https://opentelemetry.io/docs/specs/otel/metrics/data-model/
Supports
- Metric streams, point kinds, resource, scope, attributes, and temporality
- Metric transformation and aggregation concepts
- https://github.com/roaldnefs/awesome-prometheus
Supports
- Curated discovery of Grafana, node exporter, and Blackbox Exporter
- https://prometheus.io/blog/2016/01/26/one-year-of-open-prometheus-development/
Supports
- Prometheus started as an open-source project in 2012
- Production use at SoundCloud in 2013 and public announcement in January 2015
- https://www.cncf.io/announcements/2016/05/09/cloud-native-computing-foundation-accepts-prometheus-as-second-hosted-project/
Supports
- Prometheus was accepted as a CNCF incubating project in May 2016
- https://www.cncf.io/projects/prometheus/
Supports
- Prometheus graduated from CNCF in August 2018
- https://opentelemetry.io/blog/2023/sunsetting-opencensus/
Supports
- OpenTracing and OpenCensus merged to form OpenTelemetry in 2019
- Stable Metrics SDK releases and OpenCensus archival in 2023
- https://opentelemetry.io/blog/2022/metrics-announcement/
Supports
- OpenTelemetry metrics release candidates in May 2022
- Collector support for OpenTelemetry and Prometheus-compatible metrics
- https://github.com/open-telemetry/opentelemetry-proto/blob/main/CHANGELOG.md
Supports
- OpenTelemetry collector metrics components reached stable status in September 2021
- https://grafana.com/blog/how-to-manage-high-cardinality-metrics-in-prometheus-and-kubernetes/
Supports
- Unbounded labels create time-series growth, storage cost, and slower queries
- Cardinality should be inspected and controlled before it harms operations
- https://grafana.com/blog/identify-unused-costly-metrics-with-cardinality-management-dashboards-in-grafana-cloud/
Supports
- Usage analysis distinguishes unused and partially used metrics from operationally required metrics
- https://prometheus.io/
Supports
- Prometheus product landscape entry
- https://grafana.com/products/cloud/
Supports
- Grafana Cloud product landscape entry
- https://www.datadoghq.com/
Supports
- Datadog product landscape entry
- https://newrelic.com/
Supports
- New Relic product landscape entry
- https://www.dynatrace.com/
Supports
- Dynatrace product landscape entry
- https://www.elastic.co/observability
Supports
- Elastic Observability product landscape entry
- https://www.influxdata.com/products/influxdb/
Supports
- InfluxDB product landscape entry
