otel-collector-config

Solid

Use when authoring, debugging, or reviewing an OpenTelemetry Collector (otelcol) configuration — defining receivers/processors/exporters/connectors, wiring service pipelines, choosing between the core and contrib distributions, or exporting to OTLP/Prometheus/Loki/Tempo/Mimir. Also use when a Collector starts but no data arrives, a component is rejected at startup, or metrics lack expected labels. Triggers on "otelcol", "otel collector config", "collector pipeline", "receivers/processors/exporters", "memory_limiter", "otlp exporter", "prometheusremotewrite", "spanmetrics", "tail_sampling".

Data & Documents 7 stars 0 forks Updated 6 days ago Apache-2.0

Install

View on GitHub

Quality Score: 78/100

Stars 20%
30
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
80
License 10%
100
Description 5%
100

Skill Content

# OpenTelemetry Collector config — doctor Generate correct configs from a plain-English description, and diagnose broken ones. The Collector is a small set of concepts with a lot of sharp edges; this skill encodes the edges so the output validates on the first try. ## Mental model (get this right and everything follows) A Collector config has four component blocks plus a `service` block that wires them: ``` receivers: # where data comes IN (otlp, prometheus, hostmetrics, filelog, kafka…) processors: # what happens in the MIDDLE, in order (memory_limiter, batch, transform…) exporters: # where data goes OUT (otlp, otlphttp, debug, prometheus, prometheusremotewrite…) connectors: # bridge one pipeline's OUTPUT into another's INPUT (spanmetrics, routing…) extensions: # collector-level features, not in the data path (health_check, pprof, zpages…) service: extensions: [health_check] pipelines: traces: { receivers: [...], processors: [...], exporters: [...] } metrics: { receivers: [...], processors: [...], exporters: [...] } logs: { receivers: [...], processors: [...], exporters: [...] } telemetry: { ... } # the Collector's OWN logs/metrics ``` **The #1 rule everyone violates:** defining a component under `receivers:` / `processors:` / `exporters:` does **nothing** on its own. A component only runs if it is referenced inside a `service.pipelines.<signal>` list. A config can be "valid" yet do nothing because a pipeline was never wired. Always che...

Details

Author
s3onghyun
Repository
s3onghyun/otelcol-doctor
Created
1 months ago
Last Updated
6 days ago
Language
Shell
License
Apache-2.0

Similar Skills

Semantically similar based on skill content — not just same category