OllyGarden APIis now available!Access telemetry quality insights programmatically to integrate with your existing tools and workflows.Explore API →
On this page
High-Cardinality Metric Attribute
ImportantSignal: Metrics
Problem
One of your metrics carries an attribute with unbounded values: user IDs, session IDs, full URLs, raw SQL. Every distinct value creates a separate time series, so a single label can quietly turn one metric into millions of series.
Insights tracks the distinct values seen per metric attribute and flags an attribute once it passes 1,000 distinct values.
Impact
Storage and cost grow with every new value, not with your traffic.
Dashboards slow down: every query scans millions of series to draw one line.
Alerting stops making sense; you canβt alert per user ID.
Example
Exploding:
# metric http_requests_total, attributes
user_id: "9f2a41c7"# a new series per user
session_id: "d8ab99e1"# a new series per session
url: "/product/12345?ref=email"# a new series per URL
Stable:
# metric http_requests_total, attributes
service_name: "checkout"
http_route: "/product/{id}"
http_method: "GET"
How to fix
Remove the flagged attribute from the metric, or replace it with a bounded version: the route template instead of the URL, the plan tier instead of the customer ID.
If you need per-entity detail, put it on spans or logs, which handle high cardinality far better than metric labels.
If you canβt change the code, drop or rewrite the attribute with a Collector processor before export.
Expected gains
Series counts and storage stabilize regardless of traffic, dashboards get fast again, and alerts describe services instead of individual users.