Motel Debug
kitlangton/motel
Debug applications with motel, a local OpenTelemetry ingest and query server.
OpenTelemetry Collector component configuration. An agent skill from ollygarden/opentelemetry-agent-skills.
$ npx skills add ollygarden/opentelemetry-agent-skills --skill otel-collector -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ollygarden/opentelemetry-agent-skills otel-collector --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/ollygarden/opentelemetry-agent-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/otel-collector .claude/skills/otel-collector && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "otel-collector" agent skill from https://github.com/ollygarden/opentelemetry-agent-skills/tree/main/skills/otel-collector into .claude/skills/otel-collector/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "otel-collector", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/ollygarden/opentelemetry-agent-skills/tree/main/skills/otel-collectorType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add ollygarden/opentelemetry-agent-skills --skill otel-collector -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ollygarden/opentelemetry-agent-skills otel-collector --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ollygarden/opentelemetry-agent-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/otel-collector .agents/skills/otel-collector && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "otel-collector" agent skill from https://github.com/ollygarden/opentelemetry-agent-skills/tree/main/skills/otel-collector into .agents/skills/otel-collector/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "otel-collector", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ollygarden/opentelemetry-agent-skills --skill otel-collector -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ollygarden/opentelemetry-agent-skills otel-collector --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ollygarden/opentelemetry-agent-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/otel-collector .cursor/skills/otel-collector && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "otel-collector" agent skill from https://github.com/ollygarden/opentelemetry-agent-skills/tree/main/skills/otel-collector into .cursor/skills/otel-collector/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "otel-collector", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/ollygarden/opentelemetry-agent-skills.git --path skills/otel-collector--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add ollygarden/opentelemetry-agent-skills --skill otel-collector -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ollygarden/opentelemetry-agent-skills otel-collector --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ollygarden/opentelemetry-agent-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/otel-collector .gemini/skills/otel-collector && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "otel-collector" agent skill from https://github.com/ollygarden/opentelemetry-agent-skills/tree/main/skills/otel-collector into .gemini/skills/otel-collector/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "otel-collector", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install ollygarden/opentelemetry-agent-skills otel-collectorInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add ollygarden/opentelemetry-agent-skills --skill otel-collector -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ollygarden/opentelemetry-agent-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/otel-collector .github/skills/otel-collector && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "otel-collector" agent skill from https://github.com/ollygarden/opentelemetry-agent-skills/tree/main/skills/otel-collector into .github/skills/otel-collector/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "otel-collector", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ollygarden/opentelemetry-agent-skills --skill otel-collector -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ollygarden/opentelemetry-agent-skills otel-collector --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ollygarden/opentelemetry-agent-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/otel-collector .opencode/skills/otel-collector && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "otel-collector" agent skill from https://github.com/ollygarden/opentelemetry-agent-skills/tree/main/skills/otel-collector into .opencode/skills/otel-collector/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "otel-collector", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
otel-collectorOpenTelemetry Collector component configuration. An agent skill from ollygarden/opentelemetry-agent-skills.
Otel Collector is an agent skill from ollygarden/opentelemetry-agent-skills. OpenTelemetry Collector component configuration. Use when authoring, reviewing, or debugging Collector YAML for a specific receiver, processor, exporter, connector, or extension — config keys, defaults, validation rules, signal support, stability levels, and component-level gotchas. Triggers on Collector component questions including receivers, processors, exporters, connectors, extensions, component renames, signal support, and pipeline wiring.
Its SKILL.md is about 4.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 135 other files (for example `components/attributes/README.md`, `components/attributes/advanced.md` and `components/attributes/configuration.md`).
It sits in DevOps & Cloud, covering Observability. It works with OpenTelemetry. The repository describes itself as: Vendor-neutral OpenTelemetry skills for AI coding agents like Claude Code, Cursor, and Codex, grounded in upstream sources. The licence is Apache-2.0.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 12296db. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are yaml).
From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
github.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Otel Collector loads about 4.4k tokens when it runs. Until then it costs about 116 tokens; SKILL.md has 1,873 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from ollygarden/opentelemetry-agent-skills at commit 12296db, republished under its Apache-2.0 licence (© ollygarden). 1,873 words, ~4,352 tokens.
.claude/skills/otel-collector/SKILL.md (or your agent's skills folder). This skill also uses 131 other files; get the full folder from GitHub.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 many components have been renamed to snake_case since v0.146.0 with deprecated aliases preserved — see Recent renames.components/<type>/README.md first — the top-level index is only a routing aid, not enough evidence for an answer. Follow its Details index to the smallest relevant file: read configuration.md for versioned keys, defaults, or validation; quirks.md for stability, availability, failure behavior, or migration traps; and the other detail files only as the question requires. Do not infer exact configuration or status from the summary row or memory.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.
Coverage is intentionally selective. If a component is not indexed here, fall back to the upstream component README for the user's Collector version.
| 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 metrics and emits one point per series per interval: latest value for cumulative monotonic series, gauges, and summaries; the summed value for delta series. Non-monotonic sums pass through unchanged. |
tail_sampling | components/tail_sampling/README.md | processor | traces | Beta | Buffers whole traces and makes a single keep/drop decision after a wait window via policies. Supports in-process concurrency through num_shards; scaling across Collector instances still requires a load_balancing layer. v0.160 adds tracestate-aware thresholds for rate/bytes limiting. |
drain | components/drain/README.md | processor | logs | Alpha | Clusters log bodies and annotates each record with a template. v0.158 replaced extract_parameters / params_attribute with masking_rules + parameter_key_prefix for named values and emit_wildcards + wildcards_attribute for remaining <*> positions. |
redaction | components/redaction/README.md | processor | traces, logs, metrics | Beta (traces), Alpha (logs/metrics) | Allow/block-list masking or removal of sensitive attribute keys and values, with hashing and URL/DB sanitizers. |
filter | components/filter/README.md | processor | traces, metrics, logs, profiles | Alpha (traces/metrics/logs), Development (profiles) | Drops spans, metric data points, log records, and profiles that match OTTL conditions (or legacy metric-name / severity filters). The most direct telemetry-volume lever. |
transform | components/transform/README.md | processor | traces, metrics, logs, profiles | Beta (traces/metrics/logs), Development (profiles) | Applies OTTL statements to mutate spans, metric data points, log records, and profiles in place (rename/redact/convert/aggregate attributes). The OTTL language itself lives in the otel-ottl skill. |
probabilistic_sampler | components/probabilistic_sampler/README.md | processor | traces, logs | Beta (traces), Alpha (logs) | Head sampling — deterministically keeps a configured percentage of traces/logs by hashing the trace ID (or an attribute). The cheaper, stateless counterpart to tail_sampling. |
attributes | components/attributes/README.md | processor | traces, metrics, logs | Beta | Modifies span/log/datapoint attributes via an ordered action list (insert/update/upsert/delete/hash/extract/convert), scoped by include/exclude matching. |
resource | components/resource/README.md | processor | traces, metrics, logs, profiles | Beta (traces/metrics/logs), Development (profiles) | Modifies the resource attributes of telemetry via the same action grammar as attributes (e.g. set service.name, drop noisy resource keys). No include/exclude matching. |
k8s_attributes | components/k8s_attributes/README.md | processor | traces, metrics, logs, profiles | Stable (traces/metrics/logs, since v0.161), Development (profiles) | Enriches telemetry with Kubernetes pod/namespace/node/workload metadata, associating each record to a pod by IP or resource attribute. v0.161 enables the v1 semconv gates by default (singular k8s.pod.label.*, container.image.tags). |
routing | components/routing/README.md | connector | traces, metrics, logs | Alpha | Routes same-signal telemetry to different pipelines by OTTL condition/statement per context; ordered table, first match wins, default_pipelines fallback. Replaces the deprecated routingprocessor. |
memory_limiter | components/memory_limiter/README.md | processor | traces, metrics, logs, profiles | Beta (traces/metrics/logs), Alpha (profiles) | Safety valve against OOM: refuses data with backpressure when Go heap exceeds a soft/hard limit. Its receiver-middleware extension reached Beta in v0.158 but is absent from stock distributions; the bundled processor remains the standard form. |
load_balancing | components/load_balancing/README.md | exporter | traces, logs, metrics | Beta (traces/logs), Alpha (metrics) | Distributes telemetry across downstream Collectors via a consistent-hash ring keyed on trace ID / service.name / (v0.162+) OTel randomness, etc., pinning related records to one backend. The standard way to scale tail_sampling/span_metrics. Renamed from loadbalancing in v0.153.0; alias preserved. |
otlp (receiver) | components/otlp/README.md | receiver | traces, metrics, logs, profiles | Stable (traces/metrics/logs), Alpha (profiles) | The canonical OTLP ingress over gRPC (4317) and/or HTTP (4318, protobuf + JSON). protocols: block, at least one required. Default endpoint is localhost, not 0.0.0.0 — must be set explicitly to receive containerized traffic. |
otlp_grpc (exporter) | components/otlp_exporter/README.md | exporter | traces, metrics, logs, profiles | Stable (traces/metrics/logs), Alpha (profiles) | Sends OTLP over gRPC to a downstream endpoint; gzip, sending queue, and retry are enabled by default. Exporter-side sending_queue.batch is opt-in unless the pkg.exporterhelper.queueBatchEnabled gate is enabled. Renamed from otlp in core v1.50.0; alias preserved. |
file_log (receiver) | components/file_log/README.md | receiver | logs | Beta | Tails log files (glob include), turns each line/entry into a log record, and parses it via a stanza operators pipeline. Fingerprint + offset tracking across rotation; storage for durable offsets. v0.160 adds opt-in skip_unmodified_files. |
resource_detection | components/resource_detection/README.md | processor | traces, metrics, logs, profiles | Beta (traces/metrics/logs), Development (profiles) | Auto-detects resource attributes via an ordered detectors list with global retry settings. Includes Azure Container Apps, Azure App Service (v0.160+), and Azure Functions (v0.162+) detectors. Renamed from resourcedetection in v0.153.0; alias preserved. |
file_storage | components/file_storage/README.md | extension | — (not pipeline-scoped) | Beta | Persists component state to local disk (bbolt) so it survives a Collector restart: receiver read offsets (storage:), exporter persistent send queues (sending_queue.storage:), and stateful-processor decision caches. One bbolt file per consumer; directory must exist unless create_directory: true. Not placed in a pipeline — listed under service.extensions: and referenced by other components. |
prometheus (receiver) | components/prometheus/README.md | receiver | metrics | Beta | Scrapes Prometheus-format HTTP endpoints and converts them to OTLP metrics, embedding prometheus/prometheus's scrape manager — the config: block is the same YAML as prometheus.yml (global, scrape_configs, scrape_config_files, service discovery, relabeling). Extra keys: trim_metric_suffixes, target_allocator (sharded targets from the OTel Operator), api_server (debug API). Scrape-only: rejects remote_write/remote_read/rule_files/alerting. Stateful, does not auto-shard across replicas. |
prometheus (exporter) | components/prometheus_exporter/README.md | exporter | metrics | Beta | Exposes pipeline metrics for Prometheus to scrape. In-memory accumulator expires stale series after 5m. v0.160 adds resource_constant_labels and deprecates resource_to_telemetry_conversion; add_metric_suffixes remains deprecated in favor of translation_strategy. |
prometheus_remote_write (exporter) | components/prometheus_remote_write/README.md | exporter | metrics | Beta | Pushes OTLP metrics as Prometheus Remote Write. Nests HTTP client settings under http; uses remote_write_queue (not sending_queue). v0.160 adds resource_constant_labels and deprecates resource_to_telemetry_conversion; RW2 remains gated and in development. |
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:
- 'log.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. |
Stability now varies per component — and per signal for multi-signal components (e.g. redaction is Beta for traces but Alpha for logs/metrics). Don't assume a single level for the indexed set: check each component's README header metadata table for the authoritative stability and surface it when the user asks about production readiness.
Many components have been renamed to snake_case since v0.146.0, and renames are still landing (e.g. awss3 → aws_s3 in v0.162.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, …).otlp_grpc exporter's sending queue is enabled by default, but its sending_queue.batch sub-block is opt-in. Enable exporter-side batching explicitly (or with the alpha pkg.exporterhelper.queueBatchEnabled migration gate). The separate batch processor remains Beta and supported; use it when pipeline-level batching is needed and place it after data-dropping processors.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).© ollygarden, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 131 other files in skills/otel-collector of ollygarden/opentelemetry-agent-skills.
Open the folder on GitHubat commit 12296db
Otel Collector next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Otel Collector this skillollygarden/opentelemetry-agent-skills | 106 | — | ~4.4k | Automated safety check: Pass | Apache-2.0 | |
| Motel Debugkitlangton/motel | 298 | — | ~2.2k | Automated safety check: Pass | MIT | |
| Tempsgotempsh/temps | 833 | — | ~2k | Automated safety check: Pass | Apache-2.0 | |
| Axiom Metrics Queryopenclaw/clawhub | 9.5k | — | ~2.6k | Automated safety check: Pass | MIT | |
| UModel Root Cause Analysisalibaba/UnifiedModel | 415 | — | ~1.9k | Automated safety check: Pass | Custom licence | |
| Agent Kill Switchvivekchand/clawmetry | 426 | — | ~1.1k | Automated safety check: Pass | MIT |
kitlangton/motel
Debug applications with motel, a local OpenTelemetry ingest and query server.
gotempsh/temps
Manage, deploy, operate, and instrument applications with Temps.
openclaw/clawhub
Explores and queries OpenTelemetry metrics in Axiom MetricsDB, listing datasets, metrics and tags first and picking the right aggregation for each metric's type.
alibaba/UnifiedModel
Investigates a service incident to its root cause by querying a UModel object graph alongside metrics, logs, topology and recent deployments.
vivekchand/clawmetry
Give the human an off switch and a cost meter for the coding agents on this machine, using ClawMetry.
roy-tong/AgentMeasure
Check whether agent telemetry preserves measurement semantics.
ollygarden/opentelemetry-agent-skills
Build custom OpenTelemetry Collector distributions with OCB (OpenTelemetry Collector Builder).
ollygarden/opentelemetry-agent-skills
OpenTelemetry in Go — SDK setup, API surface, breaking changes, contrib instrumentation libraries (otelhttp, otelgrpc, otelmongo), compile-time zero-code instrumentation (otelc), and performance…
ollygarden/opentelemetry-agent-skills
OpenTelemetry Transformation Language (OTTL) expert for writing and debugging telemetry transformations in the OpenTelemetry Collector.
ollygarden/opentelemetry-agent-skills
OpenTelemetry profiles signal and the eBPF profiler (otelcol-ebpf-profiler, profiling receiver).
ollygarden/opentelemetry-agent-skills
Migrate OpenTelemetry Span Events (AddEvent, RecordException, and language equivalents) to the Logs API following the accepted OTEP 4430 migration plan.
ollygarden/opentelemetry-agent-skills
Build safe, version-pinned telemetrygen commands for synthetic OTLP traces, metrics, and logs.
Works with
Categories
OpenTelemetry Collector component configuration. An agent skill from ollygarden/opentelemetry-agent-skills. Otel Collector is an agent skill from ollygarden/opentelemetry-agent-skills. OpenTelemetry Collector component configuration.
Otel Collector fits situations like: debugging Collector YAML for a specific receiver; extension — config keys; validation rules; stability levels.
Run `npx skills add ollygarden/opentelemetry-agent-skills --skill otel-collector -a claude-code`. Or copy the skill folder (skills/otel-collector in ollygarden/opentelemetry-agent-skills) into .claude/skills/otel-collector in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ollygarden/opentelemetry-agent-skills --skill otel-collector -a codex`. Or copy the skill folder (skills/otel-collector in ollygarden/opentelemetry-agent-skills) into .agents/skills/otel-collector in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ollygarden/opentelemetry-agent-skills --skill otel-collector -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/otel-collector, .gemini/skills/otel-collector, .github/skills/otel-collector and .opencode/skills/otel-collector in your project.
SKILL.md names no scripts, command-line tools or credentials: Otel Collector is instructions for the agent only.
SKILL.md names 1 domain. As links in the text: github.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Otel Collector is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.4k tokens (SKILL.md is roughly 17k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Otel Collector: Motel Debug (kitlangton/motel, 298 stars), Temps (gotempsh/temps, 833 stars), Axiom Metrics Query (openclaw/clawhub, 9.5k stars) and UModel Root Cause Analysis (alibaba/UnifiedModel, 415 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ollygarden (a GitHub organization) maintains it in ollygarden/opentelemetry-agent-skills, which has 106 GitHub stars. The repository holds 19 skills in this directory. The repository was last updated on October 10, 2026.
Source: ollygarden/opentelemetry-agent-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.