Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add rules/triggerdotdev/trigger.dev/otel-metricsgit clone --depth 1 https://github.com/triggerdotdev/trigger.devWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00000 | $0.00599 |
| Opus 5 | $0.00000 | $0.00300 |
| Sonnet 5 | $0.00000 | $0.00120 |
| Haiku 4.5 | $0.00000 | $0.00060 |
Grade A, and why
otel-metrics scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
Copies of this mod
1 near-identical copy found in the catalogue:
- otel-metrics — 100% identical, 0 lines differ
How it starts
The opening of the file, as written. The whole thing — 67 lines — stays where its author put it; the contents beside it link to each section on GitHub.
OpenTelemetry Metrics Guidelines
When creating or editing OTEL metrics (counters, histograms, gauges), always ensure metric attributes have low cardinality.
What is Cardinality?
Cardinality refers to the number of unique values an attribute can have. Each unique combination of attribute values creates a new time series, which consumes memory and storage in your metrics backend.
Rules
DO use low-cardinality attributes:
- Enums:
environment_type(PRODUCTION, STAGING, DEVELOPMENT, PREVIEW) - Booleans:
hasFailures,streaming,success - Bounded error codes: A finite, controlled set of error types
- Shard IDs: When sharding is bounded (e.g., 0-15)
DO NOT use high-cardinality attributes:
- UUIDs/IDs:
envId,userId,runId,projectId,organizationId - Unbounded integers:
itemCount,batchSize,retryCount - Timestamps:
createdAt,startTime - Free-form strings:
errorMessage,taskName,queueName
Example
// BAD - High cardinality
this.counter.add(1, {
envId: options.environmentId, // UUID - unbounded
itemCount: options.runCount, // Integer - unbounded
});
// GOOD - Low cardinality
this.counter.add(1, {
environment_type: options.environmentType, // Enum - 4 values
streaming: true, // Boolean - 2 values
});
Prometheus Metric Naming
When metrics are exported via OTLP to Prometheus, the exporter automatically adds unit suffixes to metric names:
| OTel Metric Name | Unit | Prometheus Name |
|---|---|---|
my_duration_ms |
ms |
my_duration_ms_milliseconds |
my_counter |
counter | my_counter_total |
items_inserted |
counter | items_inserted_inserts_total |
batch_size |
histogram | batch_size_items_bucket |
Keep this in mind when writing Grafana dashboards or Prometheus queries—the metric names in Prometheus will differ from the names defined in code.
Reference
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- yesterday First seen · 67 lines · 0 tokens per session scan A 63c303d5bcda
otel-metrics is a cursor rule published in the GitHub repository triggerdotdev/trigger.dev (16,165 stars, last pushed 2d ago), licensed Apache-2.0. It costs nothing until one of its globs matches a file; then it loads 599 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other cursor rules, from other repositories
workflow-deployment
Workflow testing and deployment process guide.
swc-plugin
The specification for how to plugin is meant to work can be found in spec.md.
test-running
When running tests, use the --watch false flag to avoid watch mode.
docs
This file provides guidelines for working with the documentation in the /docs directory.
codex-premium-website-skills
Apply Codex Skills standards to frontend, website, motion, accessibility, QA, agent reasoning, and handoff work.
middleware-auth
Next.js middleware auth — prevents auth logic being placed in middleware instead of route handlers.