diff --git a/CHANGELOG.md b/CHANGELOG.md index ce635a47357..5229633bdba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,8 @@ release. ([#4211](https://github.com/open-telemetry/opentelemetry-specification/pull/4211)) - Make all fields as identifying for Meter. Previously attributes were omitted from being identifying. ([#4161](https://github.com/open-telemetry/opentelemetry-specification/pull/4161)) +- Clarify that applying cardinality limits should be done after attribute filtering. + ([#4228](https://github.com/open-telemetry/opentelemetry-specification/pull/4228)) ### Logs diff --git a/specification/metrics/sdk.md b/specification/metrics/sdk.md index f1c33c38fbb..b1edf498ff3 100644 --- a/specification/metrics/sdk.md +++ b/specification/metrics/sdk.md @@ -780,7 +780,9 @@ SDKs SHOULD support being configured with a cardinality limit. The number of unique combinations of attributes is called cardinality. For a given metric, the cardinality limit is a hard limit on the number of [Metric Points](./data-model.md#metric-points) that can be collected during a collection -cycle. +cycle. Cardinality limit enforcement SHOULD occur _after_ attribute filtering, +if any. This ensures users can filter undesired attributes using [views](#view) +and prevent reaching the cardinality limit. #### Configuration