Help us improve
Share bugs, ideas, or general feedback.
From opentelemetry-agent-skills
Authors, reviews, and debugs OpenTelemetry Collector YAML configuration for receivers, processors, exporters, connectors, and extensions. Covers config keys, defaults, validation, and stability levels.
npx claudepluginhub ollygarden/opentelemetry-agent-skills --plugin otel-javaHow this skill is triggered — by the user, by Claude, or both
Slash command
/opentelemetry-agent-skills:otel-collectorThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill covers the configuration surface of individual OpenTelemetry Collector components. It targets [opentelemetry-collector](https://github.com/open-telemetry/opentelemetry-collector) and [opentelemetry-collector-contrib](https://github.com/open-telemetry/opentelemetry-collector-contrib).
components/interval/README.mdcomponents/interval/advanced.mdcomponents/interval/configuration.mdcomponents/interval/quirks.mdcomponents/interval/verification.mdcomponents/log_dedup/README.mdcomponents/log_dedup/advanced.mdcomponents/log_dedup/configuration.mdcomponents/log_dedup/quirks.mdcomponents/log_dedup/verification.mdConfigures and deploys the OpenTelemetry Collector: receivers, exporters, processors, pipelines, sampling, RED metrics, and custom distributions. Use for agent/gateway patterns, Kubernetes (operator, Helm chart, raw manifests), and Dash0 forwarding.
Reviews OpenTelemetry Collector configurations managed by the Operator for pipeline correctness, deployment mode, memory safety, sampling integrity, and auto-instrumentation coverage.
Instrument apps with OpenTelemetry and send telemetry to Grafana Cloud via OTLP. Covers SDK setup, Alloy collector, sampling, and migration from other observability tools.
Share bugs, ideas, or general feedback.
This skill covers the configuration surface of individual OpenTelemetry Collector components. It targets opentelemetry-collector and opentelemetry-collector-contrib.
It does not cover OTTL expressions (see otel-ottl), declarative SDK configuration (otel-declarative-config), or end-to-end pipeline design choices. Reach for those skills when the question is about transformation language, SDK setup, or pipeline composition.
type in the user's config or question (log_dedup, interval, otlp, …). Note that several components were renamed to snake_case in v0.150.0–v0.151.0 with deprecated aliases preserved — see Recent renames.components/<type>/README.md first — it carries the metadata, description, main use-cases, and a Details index. Open the linked detail files (configuration.md, verification.md, advanced.md, quirks.md, …) only as the question requires; don't load files you don't need.processor/<name>/, receiver/<name>/, exporter/<name>/, connector/<name>/, or extension/<name>/ in opentelemetry-collector-contrib. Don't invent config keys from memory — Collector components evolve quickly.type/name), stability levels, and pipeline placement rules in Collector-wide conventions apply to every component.telemetrygen (see the otel-telemetrygen skill) plus a debug or file exporter — to confirm the component behaves as the docs claim. Alpha- and Development-stability components are common here, and behavior changes between releases. See Verification harness for how to run a recipe end-to-end.Each component is a directory under components/<type>/. The File column points at the lean README.md (metadata, description, main use-cases, and a Details index); the full config reference, verification recipe, advanced use-cases, and quirks live in on-demand detail files linked from that README.
| Type | File | Kind | Signals | Stability | Summary |
|---|---|---|---|---|---|
log_dedup | components/log_dedup/README.md | processor | logs | Alpha | Deduplicates identical log records over a time window; emits one aggregated log with a count. Renamed from logdedup in v0.151.0; alias preserved. |
interval | components/interval/README.md | processor | metrics | Alpha | Buffers cumulative monotonic metrics (and optionally gauges/summaries) and emits the latest value once per interval. Delta and non-monotonic sums pass through unchanged. |
Every component type supports the type/name pattern so the same type can be configured more than once. The pipeline references the named form:
processors:
log_dedup/health-checks:
interval: 30s
conditions:
- 'attributes["log.type"] == "health_check"'
log_dedup/access-logs:
interval: 10s
service:
pipelines:
logs/health:
processors: [log_dedup/health-checks]
logs/access:
processors: [log_dedup/access-logs]
Components publish a stability level per signal. Treat these as load-bearing when recommending production use:
| Level | Use in |
|---|---|
| Development | Tests and prototypes only — breaking changes expected. |
| Alpha | Limited, non-critical workloads — config keys can still change. |
| Beta | Production viable — breaking changes rare. |
| Stable | Production — backward compatibility guaranteed. |
The components currently indexed here (log_dedup, interval) are Alpha. Surface that to the user when they ask about production readiness.
Many components were renamed to snake_case in v0.150.0–v0.151.0. The legacy names remain as deprecated aliases — old configs keep working but new configs should use the new names. Check the upstream component README for the exact rename version before flagging a config as broken.
Examples: logdedup → log_dedup, hostmetrics → host_metrics, spanmetrics → span_metrics, servicegraph → service_graph, k8sattributes → k8s_attributes, plus several _log and _check receivers.
Two rules of thumb that apply across components:
memory_limiter belongs first in any processor list, before anything that allocates buffers (log_dedup, transform, tail_sampling, …).sending_queue.batch, not by a separate batch processor. Don't add batch to new pipelines.Each component page's Verification section gives a config, a telemetrygen command, and the expected output. To run any of them:
contrib/k8s distributions, otelcol-contrib --config <file>.yaml; for components not in any distribution, build a custom collector with the OpenTelemetry Collector Builder (OCB) first.telemetrygen (see the otel-telemetrygen skill).debug exporter's stdout (or the file exporter's output) for the expected result.The Verification configs are minimal repros: they omit memory_limiter and other production scaffolding on purpose, to isolate the component under test. Don't copy them verbatim into production.
When extending coverage:
components/<type>/. Files carry no frontmatter — only SKILL.md has frontmatter.README.md — always loaded, kept small:
type name, signals, per-signal stability, distributions, Go module, upstream README link, and a rename note if the component was renamed.configuration.md).- [Configuration](configuration.md) — config keys, defaults, validation), so the reader loads only what a question needs.configuration.md — full config-reference table (key, type, default, validation) plus any mechanism/reference tables.verification.md — a telemetrygen + debug/file exporter recipe that proves the documented behavior; cross-reference the otel-telemetrygen skill. Verify every telemetrygen flag against that skill — never assert a flag that doesn't exist. If telemetrygen can't produce the input the component needs, say so and point to an alternative (OTTL/transform, a custom emitter). Keep the config a minimal repro (see Verification harness).advanced.md — named instances, multi-pipeline setups, combinations, and edge configs.quirks.md — gotchas, stability caveats, memory model, a validation-error→fix table, anti-patterns, and troubleshooting.policies.md for a big policy catalog); merge trivial sections into a sibling rather than create a stub. Repoint any in-page anchor links that now cross files.components/log_dedup/ and components/interval/ as reference implementations of this structure.File column points at components/<type>/README.md).