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
92%
Does it follow best practices?
Impact
96%
1.39xAverage score across 12 eval scenarios
Low
Low-risk findings worth noting
Expert guidance for configuring and deploying the OpenTelemetry Collector to receive, process, and export telemetry to Dash0 or any OTLP-compatible backend.
otel-collector/
├── SKILL.md # Skill manifest and entry point
├── README.md # This file
└── rules/
├── receivers.md # OTLP, Prometheus, filelog, hostmetrics
├── exporters.md # OTLP/gRPC to Dash0, debug, authentication
├── processors.md # Memory limiter, resource detection, ordering
├── pipelines.md # Service section, per-signal config, connectors
├── deployment.md # Agent vs gateway patterns, deployment method selection
├── deployment/
│ ├── collector-helm-chart.md # Collector Helm chart
│ ├── opentelemetry-operator.md # OTel Operator and auto-instrumentation
│ ├── dash0-operator.md # Dash0 Kubernetes Operator
│ └── raw-manifests.md # DaemonSet, Deployment, RBAC, Docker Compose
├── sampling.md # Head sampling, tail sampling, load balancing
└── red-metrics.md # Semconv-aligned RED metrics from tracesInstall the skill:
npx skills add dash0/otel-collectorThe skill activates automatically when working on Collector configuration tasks.
| Rule | Impact | Description |
|---|---|---|
| receivers | CRITICAL | OTLP, Prometheus, filelog, and hostmetrics receiver configuration |
| exporters | CRITICAL | OTLP/gRPC exporter to Dash0 with authentication, retry, and queuing |
| processors | HIGH | Required and recommended processors with ordering rules |
| pipelines | CRITICAL | Service section, per-signal pipelines, complete working config |
| deployment | HIGH | Agent vs gateway patterns, deployment method selection |
| raw-manifests | HIGH | Raw Kubernetes manifests — DaemonSet, Deployment, RBAC, Docker Compose |
| dash0-operator | HIGH | Dash0 Kubernetes Operator — automated instrumentation and Collector management |
| sampling | HIGH | Head sampling, tail sampling, load balancing |
| red-metrics | HIGH | Semconv-aligned RED metrics from traces |
Get your credentials:
Minimal working configuration:
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317
http:
endpoint: 0.0.0.0:4318
processors:
memory_limiter:
check_interval: 1s
limit_mib: 512
spike_limit_mib: 128
exporters:
otlp:
endpoint: <OTLP_ENDPOINT>
headers:
Authorization: "Bearer <AUTH_TOKEN>"
sending_queue:
enabled: true
queue_size: 5000
storage: file_storage
extensions:
file_storage:
directory: /var/lib/otelcol/queue
service:
extensions: [file_storage]
pipelines:
traces:
receivers: [otlp]
processors: [memory_limiter]
exporters: [otlp]
metrics:
receivers: [otlp]
processors: [memory_limiter]
exporters: [otlp]
logs:
receivers: [otlp]
processors: [memory_limiter]
exporters: [otlp]Replace the placeholders with values from your Dash0 account:
<OTLP_ENDPOINT>: copy the gRPC endpoint from Settings → Endpoints → OTLP via gRPC (e.g., ingress.eu-west-1.aws.dash0.com:4317).<AUTH_TOKEN>: create or copy a token from Settings → Auth Tokens.memory_limiter first in every pipeline.memory_limiter in production.Apache-2.0