Architectural Invariant Design: OpenTelemetry Prometheus Exemplar Cardinality & Memory Bounds
OpenTelemetry Prometheus Exemplar Cardinality & Memory Bounds defines an industrial-grade behavioral standard for devops engineering. Enforces bounded exemplar reservoirs and deterministic trace-metric correlation on latency spikes while eliminating Prometheus TSDB label explosion and OTel Collector OOM eviction under burst traffic. Prevents injecting high-cardinality trace identifiers into dimensional metric labels and mandates strict memory-limiter pipelining. Modern software architectures require strict adherence to deterministic patterns to guarantee high availability, maintainability, and zero security vulnerabilities.
Hazard Analysis: What Breaks Without This Rule
The following failure modes have been cataloged from hundreds of hours of production code reviews where AI assistants produced non-compliant implementations:
| Failure Mode | AI Symptom (The Anti-Pattern) | Severity | Production Impact & Remedy |
|---|---|---|---|
| AI Hallucination & Deprecation Drift | Unbounded Metric Cardinality and Unconstrained Exemplar Reservoirs Triggering Collector Eviction Crashes | Critical | Violating this industrial standard introduces regression bugs, security risks, and unexpected runtime failures in production. Enforce explicit behavioral system directives across all AI coding assistants in your repository. |
| Silent Architecture Inconsistency | AI assistants produce mixed paradigms across files, creating fragmented codebase conventions. | Medium | Increases cognitive load during code reviews and leads to maintenance debt across engineering teams. Pin project conventions in .cursor/rules, CLAUDE.md, and AGENTS.md so all team agents follow identical guardrails. |
Step-by-Step Production Directives
Each rule constraint below is injected into the AI agent's system prompt to establish deterministic boundaries:
Engineers MUST ALWAYS attach TraceID and SpanID via OpenTelemetry Exemplars rather than dimensional metric attributes (labels) to keep time-series cardinality strictly bounded.
Engineers MUST ALWAYS attach TraceID and SpanID via OpenTelemetry Exemplars rather than dimensional metric attributes (labels) to keep time-series cardinality strictly bounded.
Engineers MUST configure Prometheus Histograms with explicit bucket distributions and fixed-size Exemplar Reservoirs (e.g., AlignedHistogramBucketExemplarReservoir) to prevent unconstrained heap expansion during burst traffic.
Engineers MUST configure Prometheus Histograms with explicit bucket distributions and fixed-size Exemplar Reservoirs (e.g., AlignedHistogramBucketExemplarReservoir) to prevent unconstrained heap expansion during burst traffic.
OTel Collector configurations MUST place the `memory_limiter` processor as the very first processor in every pipeline with explicit check_interval, limit_percentage, and spike_limit_percentage.
OTel Collector configurations MUST place the `memory_limiter` processor as the very first processor in every pipeline with explicit check_interval, limit_percentage, and spike_limit_percentage.
Code MUST NEVER bind dynamic, unbounded request identifiers (such as UUIDs, user IDs, raw URLs, or authorization tokens) into Prometheus metric label keys or values.
Code MUST NEVER bind dynamic, unbounded request identifiers (such as UUIDs, user IDs, raw URLs, or authorization tokens) into Prometheus metric label keys or values.
Collector pipelines MUST use the `batch` processor with strictly bounded `send_batch_max_size` and `timeout` values directly downstream of the `memory_limiter`.
Collector pipelines MUST use the `batch` processor with strictly bounded `send_batch_max_size` and `timeout` values directly downstream of the `memory_limiter`.
Exemplar filters MUST use sample-based or trace-sampled filters (e.g., `TraceBasedExemplarFilter`) rather than unrestricted in-memory accumulators to ensure zero CPU/memory regression during upstream denial-of-service events.
Exemplar filters MUST use sample-based or trace-sampled filters (e.g., `TraceBasedExemplarFilter`) rather than unrestricted in-memory accumulators to ensure zero CPU/memory regression during upstream denial-of-service events.
Frequently Asked Technical Questions
Common questions developers face when configuring AI coding assistants for this stack:
Q:Why is OpenTelemetry Prometheus Exemplar Cardinality & Memory Bounds critical for AI coding assistants?
Enforces bounded exemplar reservoirs and deterministic trace-metric correlation on latency spikes while eliminating Prometheus TSDB label explosion and OTel Collector OOM eviction under burst traffic. Prevents injecting high-cardinality trace identifiers into dimensional metric labels and mandates strict memory-limiter pipelining. Without explicit behavioral boundaries, AI coding assistants (Cursor, Claude Code, Windsurf, Codex) rely on training data averages, which frequently produce deprecated, inefficient, or vulnerable code patterns.
Q:How does adopting this rule prevent AI hallucinations?
This rule explicitly declares what the AI must avoid (Unbounded Metric Cardinality and Unconstrained Exemplar Reservoirs Triggering Collector Eviction Crashes) and prescribes verified positive examples. Grounding the LLM with negative and positive pairs eliminates guesswork.
Q:Which AI coding environments are supported?
This specification is multi-platform compatible: Cursor (.cursor/rules/*.mdc & .cursorrules), Anthropic Claude Code (CLAUDE.md), Windsurf (.windsurfrules), Codex / Cline (AGENTS.md), and GitHub Copilot (.github/copilot-instructions.md).
Q:Can I combine this rule with other technology stacks?
Yes. Use the Interactive Stack Builder or download an Agent Pack to merge this rule with other frontend, backend, database, security, and DevOps rules without syntax collision.