Cardinality
Cardinality is the number of distinct combinations of label values for a metric, and it is the primary driver of metric storage cost.
What is cardinality?
Cardinality is the number of distinct combinations of label values for a metric, and it is the primary driver of metric storage cost.
Plain and technical
Every unique combination of labels on a metric creates a separate series to store. Adding a label with many possible values (a user ID, for example) can multiply your storage cost enormously.
Each unique label combination is an independent time series with its own storage and memory footprint. Unbounded labels such as identifiers or full URL paths produce unbounded cardinality. The standard remedy is to move high-cardinality attributes onto traces and logs, which handle them naturally, and link back from metrics using exemplars.
What it looks like in practice
Nearby vocabulary
Observability
Observability is the property of a system that allows its internal state to be understood from the signals it emits, including for failures nobody anticipated.
Distributed tracing
Distributed tracing follows one request across every service it touches, recording the duration and outcome of each step so you see where time went.
OpenTelemetry
OpenTelemetry is a vendor-neutral standard and set of libraries for generating and exporting metrics, logs and traces, portable across backends.
How DevOpsArk handles cardinality
Articles on this subject
Logs, metrics and traces: which signal answers which question
What each telemetry type is genuinely good at, what it costs, and how to decide where a given piece of information belongs.
What is observability, and how is it different from monitoring?
A definition of observability that does more work than "the three pillars": what property you are actually trying to obtain, and how to tell whether you have it.
More definitions
See these concepts in a running system
A 30-minute walkthrough against your own infrastructure rather than a slide about the theory.