Guides an AI coding agent in choosing, placing and reviewing the standard attributes attached to OpenTelemetry monitoring data. It covers attribute naming, values suitable for metrics, custom attribute decisions and migration between convention versions.
WHEN TO USE
SCOPE
USE FOR
Look up the standard attribute name for a concept instead of inventing your own.
Decide whether an attribute belongs on the resource, the span, or the log record.
Keep values with many distinct entries, such as user IDs or request paths with IDs in them, out of metric attributes. The skill warns that they inflate storage and query cost and directs the agent to put them on spans instead.
Replace deprecated attribute names in existing code with their current ones, such as http.method with http.request.method.
NOT FOR
Naming spans, choosing span kind, or setting span status codes — that's the instrumentation skill's job.
This is a saved copy of the skill's SKILL.md instructions. It may differ from the upstream file or the version you install.
OpenTelemetry Semantic Conventions
This skill governs correct selection, placement, and validation of telemetry attributes and metric instruments according to the OpenTelemetry Semantic Conventions specification.
For span naming, span kinds, and span status codes, see the otel-instrumentation skill.
The Attribute Registry is the single source of truth for all defined attributes.
Search the registry first — Look up the concept in the Attribute Registry. Use the standard name if it exists (e.g., prefer http.request.method over a custom custom.http.verb). Custom names fragment querying and break tooling — only create a custom attribute when no registry entry covers the concept.
Check stability — Prefer stable attributes; note any experimental attributes that may change. See versioning.
Place at the correct level — Resource attributes describe the entity producing telemetry; span/log attributes describe the individual operation. Do not duplicate across levels. Once an attribute is at a given level, keep it there consistently across all services.
Verify cardinality — Metric attribute values must be low-cardinality (bounded set). Variable data (user IDs, request paths with parameters) belongs in span attributes, not metric attributes.
Custom attribute as last resort — Only create a custom attribute if no registry entry covers the concept. Document the decision and follow the org.namespace.attribute_name naming pattern.
Example: correct vs incorrect attribute selection
# Correct — uses registry attribute for HTTP method
span.set_attribute("http.request.method", "GET")
# Incorrect — invents a custom attribute for a concept already in the registry
span.set_attribute("custom.http.verb", "GET")
Example: resource vs span attribute placement
# Correct — service identity is a resource attribute
resource = Resource({"service.name": "checkout-service", "service.version": "2.1.0"})
# Correct — operation-specific data is a span attribute
span.set_attribute("http.request.method", "POST")
span.set_attribute("http.response.status_code", 201)
# Incorrect — placing a resource-level attribute on every span
span.set_attribute("service.name", "checkout-service") # belongs on the resource
Example: cardinality violation in metric attributes
# Correct — metric attribute uses a bounded, low-cardinality value
histogram.record(duration_ms, {"http.request.method": "GET", "http.response.status_code": 200})
# Incorrect — unbounded values as metric attributes explode storage and query cost
histogram.record(duration_ms, {"user.id": "u-839201", "url.path": "/orders/839201"})
# Fix: move high-cardinality values to span attributes instead
span.set_attribute("user.id", "u-839201")
span.set_attribute("url.path", "/orders/839201")
No requirements beyond installing this skill were found.
Listed as free
Connected services may require an account or charge fees.
Run this outside your AI tool, using Node.js 22.20.0 or newer. Skills CLI 1.7.2 skips skill selection; prompts cancel installation without an interactive terminal. If choosing Project when asked about installation scope, open your project's folder before running this.
Install checklist
Check selected tools if a picker appears; Claude Code may be unchecked under Additional agents. ↑/↓ moves, Space toggles selections, Enter confirms.
Without a tool picker, check Installing to: for your intended tool. Stop if it names a different tool.
If asked, choose Symlink (Recommended) for shared files or Copy to all agents for separate copies; review the summary before confirming installation.
Install the find-skills skill? defaults to Yes, adding another skill for all projects. Choose No if you don't want that extra installation.
Skills CLI 1.7.2 sends install data to skills.sh by default, including the source, skill names, target tools and file details; GitHub sources are reported only when GitHub confirms the repository is public, while other remote sources can also be reported. Confirmed-public GitHub sources also trigger a security-audit request. Before installing, set the environment variable DO_NOT_TRACK=1 or DISABLE_TELEMETRY=1 to disable both.
It installs 3 skills: this one and the 2 it relies on, otel-collector and otel-instrumentation. Once these skills are installed where Claude Code loads them, their descriptions help Claude decide when to use them.
Install the whole plugin
This route installs the Dash0 Agent Skills plugin package selected for your AI tool.
By tool
Packages & runtimes
Add the marketplace, then install the plugin
Enter both lines in a Claude Code session. They add Dash0’s marketplace and open the four-skill plugin for installation; choose where to enable it in the install panel.
Install checklist
Have Claude Code available to enter these session commands.
Choose dash0-agent-skills; Dash0’s marketplace also lists a different plugin named dash0-agent-plugin.
Choose user, project or local scope according to where you want the plugin enabled.
Read the install summary and follow any reload instruction. Check the / menu for the plugin’s skills.
Your agent can select relevant skills automatically. To choose one explicitly, use /plugin-name:skill-name for plugin skills; direct skill installations use /skill-name.
Clone Dash0’s repository
Run this terminal command to copy Dash0’s four-skill repository into ~/.agents/skills/dash0-agent-skills.
Install checklist
Have Git installed to clone the repository.
If the destination already contains this repository, reuse it rather than cloning into the same folder again.
Open /skills and check for the four skill names. Your agent can select a matching skill automatically; use /skills or $ to choose explicitly.
In a Vercel Sandbox, Codex CLI 0.162.1 listed all four skills through codex debug prompt-input without login; removing this clone removed them from the list.
Install from Dash0’s GitHub repository
Enter Dash0’s command in an interactive GitHub Copilot CLI session. It requests a direct plugin installation from the repository; GitHub documents direct installations under ~/.copilot/installed-plugins/_direct/.
Install checklist
Use GitHub Copilot CLI for this session command; other Copilot interfaces have their own installation controls.
Copilot CLI 1.0.95 warns that direct repository installs are deprecated; a future release will accept only plugin@marketplace installs.
Use copilot skill list to check for the four skills. Your agent can load relevant skills automatically.
In a Vercel Sandbox with no Dash0 clones active, Copilot CLI 1.0.95 installed and listed four skills without login through terminal subcommands; session slash commands were untested.
Clone into your local skills folder
Dash0 documents this terminal command to copy its four-skill repository into ~/.cursor/skills/dash0-agent-skills. Cursor lists ~/.cursor/skills as a local user skills location.
Install checklist
Have Git installed to clone the repository.
This folder stays on your machine. For Cloud Agents, sync personal Cursor skills or use project skills.
Discovery of the four nested skills through this clone route has not been tested in Cursor.
In Agent chat, type / and check for the four skill names before relying on them.
Your agent selects relevant skills from context. Selecting a skill through / attaches it to that message.
Install the Gemini CLI extension
Run this command in a terminal. It installs Dash0’s repository as a Gemini CLI extension containing four skills under ~/.gemini/extensions/dash0-agent-skills.
Install checklist
Have Gemini CLI available to run the extension installer.
Have Git installed; Gemini CLI requires it for extensions installed from GitHub.
In our Vercel Sandbox run, Gemini CLI 0.63.0 prompted for workspace trust and skill approval in an initially untrusted workspace; review installation prompts.
Restart your Gemini CLI session for the extension changes to take effect.
Use /skills list to inspect discovered skills. When your agent proposes activation for a matching task, review its skill-directory access prompt before approving.
Clone into the local skills folder
Run this terminal command to copy Dash0’s four-skill repository into ~/.openclaw/skills/dash0-agent-skills.
Install checklist
Have Git installed to clone the repository.
Check your OpenClaw state directory; the command targets ~/.openclaw, while managed skills follow the configured state directory.
In the Control UI, type $ and check for the four skills. Your agent can select them automatically; use $skill-name to reference one explicitly.
In a Vercel Sandbox, OpenClaw 2026.6.35 listed four skills through openclaw skills list --json with only this OpenClaw clone active; invocation was untested.
Clone Dash0’s repository
Run this terminal command to copy Dash0’s four-skill repository into ~/.agents/skills/dash0-agent-skills.
Install checklist
Have Git installed to clone the repository.
If you already cloned this repository for Codex, reuse it: both panels target the same directory.
Your agent can select and load these skills when relevant. Their metadata does not enable /name commands in OpenCode.
In a Vercel Sandbox, OpenCode 1.19.0 listed four skills through opencode debug skill without login; removing this clone removed them from the list. Invocation was untested.
Install into your repository
Run this command in a terminal inside your Git repository. It installs Dash0’s four-skill registry plugin under .tessl/plugins/dash0/agent-skills and links skills into detected agents’ directories.
Install checklist
Install Tessl CLI first; native, Homebrew and winget installers are available. npm installation is deprecated.
In our Vercel Sandbox run, Tessl CLI 0.114.0 initialized an empty Git repository without tessl.json, wrote AGENTS.md and configured four detected agents’ Tessl MCP connections.
Review these project and agent configuration changes before installing.
tessl install dash0/agent-skills
Installation and loading
Tessl records the plugin reference in tessl.json.
Tessl says your agent loads relevant skills from your task, files and conversation context, without explicit invocation. Loading through these links was not tested.
Good to know
Tessl’s --global option installs plugins under ~/.tessl/plugins/ for use across repositories.
That sandbox installation completed without login.
Expert guidance for configuring and deploying the OpenTelemetry Collector. Use when setting up a Collector pipeline, configuring receivers, exporters, or processors, deploying a Collector to Kubernetes or Docker, or forwarding telemetry to Dash0. Triggers on requests involving collector, pipeline, OTLP receiver, exporter, or Dash0 collector setup.Read full description
Configures trace spans, defines custom metrics, sets up log exporters, and optimizes sampling strategies for OpenTelemetry instrumentation. Use when instrumenting applications with traces, metrics, or logs. Triggers on requests for observability, telemetry, tracing, metrics collection, logging integration, or OTel setup.Read full description
OpenTelemetry Transformation Language (OTTL) expert. Use when writing or debugging OTTL expressions for any OpenTelemetry Collector component that supports OTTL (processors, connectors, receivers, exporters). Triggers on tasks involving telemetry transformation, filtering, attribute manipulation, data redaction, sampling policies, routing, or Collector configuration. Covers syntax, contexts, functions, error handling, and performance.Read full description
Official Sentry MCP server for investigating issues, error reports, traces, and performance monitoring data from AI coding agents.Read full description
MCP-PostgreSQL-Ops is a professional MCP server for PostgreSQL database operations, monitoring, and management. Supports PostgreSQL 12-17 with comprehensive database analysis, performance monitoring, and intelligent maintenance recommendations through natural language queries.Read full description