Free tools Windows power users keep installed
One-click scans. No signup required.
Agent metrics can become expensive or misleading when every agent instance, conversation, or tool call creates a new time series. Metric cardinality is the number of distinct combinations of attribute values attached to a metric—not simply the number of requests. Keep metric dimensions bounded for aggregate questions, and use traces or logs for individual execution details.
What metric cardinality means for agent telemetry
A metric SDK aggregates measurements for each distinct combination of attributes. If a metric has attributes for model, tool, and outcome, each observed combination can require its own aggregation state and become a separate time series downstream. Adding an attribute with a new value for every request, session, or conversation can therefore multiply the combinations quickly, increasing SDK memory use and backend time-series volume. OpenTelemetry’s 2026 cardinality guide explains this relationship.
As an Amazon Associate I earn from qualifying purchases.
Agent instrumentation makes the distinction important. The OpenTelemetry GenAI attribute conventions include agent and conversation identifiers alongside provider, model, tool, and workflow information. These attributes can be useful, but values unique to each agent instance, conversation, or call are poor default dimensions for aggregate metrics. A metric label should help answer a recurring operational question across many measurements.
Metrics, traces, and logs serve different purposes. A metric summarizes behavior across events; a trace records the path and relationships of an individual execution; a log records event-level detail. Put per-conversation correlation identifiers in traces or logs when needed, with appropriate privacy and retention controls, rather than automatically attaching them to every metric. OpenTelemetry’s HTTP metric conventions likewise distinguish aggregate metric attributes from request-level detail.
#1 Best Overall
- Real-time detection: Capture voltage signals in real time and accurately measure the operating voltage of devices, systems or batteries.
- High stability: stable and reliable circuit design, suitable for harsh environments, high anti-interference ability and safety.
- High accuracy: Provides high-precision voltage measurement data with high resolution and accuracy for precision measurement requirements.
- [Comfortable to carry] Small and lightweight for easy transport and storage, easily take it anywhere you need it.
- Easy to install: Simple structure, easy installation, intuitive operation for fast voltage data acquisition and processing.
How cardinality limits can change what your metrics show
The OpenTelemetry Metrics SDK specification sets a default limit of 2,000 distinct attribute combinations per metric stream when no matching view or reader default supplies another limit. The limit is applied after attribute filtering. This is an SDK default, not a universal backend capacity or a guarantee that every SDK configuration behaves identically. See the OpenTelemetry Metrics SDK specification.
When a stream exceeds its limit, the SDK can fold additional combinations into one overflow data point marked otel.metric.overflow=true. The overall aggregate may remain correct, but the overflow point no longer retains the original attributes. As a result, a query grouped or filtered by one of those attributes—for example, success status—can undercount. Dashboards, alerts, and SLO calculations that depend on those groupings may then tell an incomplete story even when an unfiltered total looks reasonable. OpenTelemetry describes this behavior in its cardinality guide.
Rank #2
Which agent dimensions belong in metrics?
Start with the question an aggregate metric must answer. Prefer dimensions with a finite, operationally useful set of values, such as provider, model family, bounded tool name, workflow type, outcome, or a classified error category. The right set depends on the questions your team needs to answer and on how those values are controlled.
| Dimension | Metric use | Safer alternative or qualification |
|---|---|---|
| Agent instance ID, conversation ID, request ID, or session ID | Usually avoid as metric attributes when values are unique or continuously growing. | Keep the identifier in a trace or log when execution-level correlation is needed. |
| Raw URL or dynamic path | Avoid raw values that vary per request. | Use a bounded route template, such as a path with dynamic segments represented by placeholders. |
| Provider, model, tool, workflow, or outcome | Can be useful if the values are controlled and the set is bounded. | Review whether new values can appear without limit; classify or normalize if necessary. |
| Error message or user input | Avoid unbounded, free-form text. | Use a bounded error category in metrics; retain detailed text only in an appropriate log or trace. |
OpenTelemetry’s operational guidance identifies raw URLs, user input, request IDs, session IDs, and unbounded error messages as examples of values to keep out of metrics by default. For HTTP metrics, the semantic conventions call for low-cardinality routes, with dynamic path segments represented by placeholders. The same principle applies to agent routes and workflows: preserve a stable classification for aggregation, not the raw value that makes each event unique.
Rank #3
How to find unbounded dimensions and reduce growth
- Inspect the attributes on each metric stream. Find dimensions containing identifiers, free-form strings, raw paths, or values created from user input. Review the combinations they produce together, because multiple individually moderate dimensions can multiply into a large set.
- Decide which aggregate questions each metric must answer. Keep only dimensions needed for those questions, such as model family and outcome. If a dimension does not support a useful aggregation, remove it rather than retaining it merely because instrumentation makes it available.
- Normalize values before recording metrics. Replace raw URLs with route templates, free-form errors with bounded categories, and other variable values with controlled classifications. OpenTelemetry’s cardinality guidance recommends avoiding unbounded values and using bounded classifications where they answer operational questions.
- Remove unsuitable attributes at the right layer. Correct instrumentation upstream when the dimension does not belong on the metric at all. Where the instrumentation needs the attribute for other uses, an OpenTelemetry view can remove it from a specific metric stream before aggregation. The SDK limit is a guardrail, not a replacement for sound instrumentation.
- Watch for overflow and investigate its source. Treat
otel.metric.overflow=trueas evidence that the configured combination limit has been exceeded. Identify the metric and its originating attributes; simply raising the limit can increase memory exposure without fixing an accidental unbounded label.
How to interpret cardinality numbers
Numeric guidance from different observability sources describes different things. Prometheus’s instrumentation guidance gives a general rule of thumb: keep cardinality below 10 where possible, and investigate metrics over 100 or that could reach that level. Those are Prometheus instrumentation guidelines, not the OpenTelemetry SDK’s per-stream overflow limit.
OpenTelemetry’s default of 2,000 combinations per metric stream describes when SDK aggregation may overflow if no configuration overrides it. It is neither a target for routine metric design nor a backend capacity promise. Total time-series volume also differs from the cardinality of an individual metric: Prometheus’s guidance describes 10,000 nodes producing roughly 100,000 node_filesystem_avail series as manageable in its example. That example illustrates system scale, not permission to add unique identifiers to agent metrics.
Rank #4
When a higher-cardinality dimension may be justified
High cardinality is not automatically wrong. A per-tenant SLO may justify a tenant attribute when the need is explicit and the active tenant set is bounded. OpenTelemetry’s guide notes that delta temporality may be practical for a bounded active set, while cumulative temporality retains aggregation state across cycles and can accumulate more combinations. This is a context-specific example, not a universal configuration recommendation; assess the active set, aggregation behavior, memory budget, and query needs before adopting it.
Windows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallCrashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteQuick Recap
Best Value
- Automatic Probe recognition
- Front panel touch pad: Real Time data view, Battery backup (CR4), Field replaceable probes
- Field calibration of probes
- Independent Channel Alarms (CR4)
- 48 Hours continuous battery life
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




