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.
95
93%
Does it follow best practices?
Impact
96%
1.39xAverage score across 12 eval scenarios
Advisory
Suggest reviewing before use
Expert guidance for implementing high-quality, cost-efficient OpenTelemetry telemetry across multiple languages and platforms.
otel-instrumentation/
├── SKILL.md # Skill manifest and entry point
├── README.md # This file
└── rules/
├── telemetry.md # Signal overview and correlation
├── resources.md # Resource attributes
├── metrics.md # Instrument types, naming, cardinality
├── logs.md # Structured logging, severity, trace correlation
└── sdks/
├── nodejs.md # Node.js instrumentation
├── go.md # Go instrumentation
├── python.md # Python instrumentation
├── java.md # Java instrumentation
├── dotnet.md # .NET instrumentation
├── ruby.md # Ruby instrumentation
├── php.md # PHP instrumentation
├── browser.md # Browser instrumentation
└── nextjs.md # Next.js full-stack instrumentationInstall the skill:
npx skills add dash0/otel-instrumentationThe skill activates automatically when working on observability tasks.
| Rule | Impact | Description |
|---|---|---|
| telemetry | CRITICAL | Signal overview and correlation |
| resources | CRITICAL | Resource attributes - service identity, environment, Kubernetes |
| metrics | CRITICAL | Instrument types, naming, units, cardinality |
| logs | CRITICAL | Structured logging, severity, trace correlation |
| nodejs | HIGH | Node.js auto-instrumentation setup |
| go | HIGH | Go instrumentation setup |
| python | HIGH | Python auto-instrumentation setup |
| java | HIGH | Java auto-instrumentation setup |
| dotnet | HIGH | .NET auto-instrumentation setup |
| ruby | HIGH | Ruby instrumentation setup |
| php | HIGH | PHP auto-instrumentation setup |
| browser | HIGH | Browser instrumentation with Dash0 SDK |
| nextjs | HIGH | Next.js full-stack instrumentation (App Router) |
Each rule follows a consistent format:
---
title: "Rule Title"
impact: CRITICAL | HIGH | MEDIUM | LOW
tags:
- telemetry
- spans
---Content sections:
| Level | Meaning |
|---|---|
| CRITICAL | Affects data quality, costs, or system reliability |
| HIGH | Significant impact on observability effectiveness |
| MEDIUM | Improves telemetry quality or developer experience |
| LOW | Nice-to-have optimizations |
Get your credentials:
Node.js:
npm install @opentelemetry/auto-instrumentations-node
export OTEL_SERVICE_NAME="my-service"
export OTEL_TRACES_EXPORTER="otlp" # Required! Defaults to "none"
export OTEL_EXPORTER_OTLP_ENDPOINT="https://<OTLP_ENDPOINT>"
export OTEL_EXPORTER_OTLP_HEADERS="Authorization=Bearer <AUTH_TOKEN>"
# Use --import for ESM projects, --require for CommonJS
export NODE_OPTIONS="--import @opentelemetry/auto-instrumentations-node/register"
node app.jsBrowser:
npm install @dash0/sdk-webimport { init } from "@dash0/sdk-web";
init({
serviceName: "my-frontend",
endpoint: { url: "https://<OTLP_ENDPOINT>", authToken: "<AUTH_TOKEN>" }
});rules/_template.mdApache-2.0