Motel Debug
kitlangton/motel
Debug applications with motel, a local OpenTelemetry ingest and query server.
OpenTelemetry Transformation Language (OTTL) expert for writing and debugging telemetry transformations in the OpenTelemetry Collector.
$ npx skills add ollygarden/opentelemetry-agent-skills --skill otel-ottl -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ollygarden/opentelemetry-agent-skills otel-ottl --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-ottl .claude/skills/otel-ottl && 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-ottl" agent skill from https://github.com/ollygarden/opentelemetry-agent-skills/tree/main/skills/otel-ottl into .claude/skills/otel-ottl/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "otel-ottl", 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-ottlType 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-ottl -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ollygarden/opentelemetry-agent-skills otel-ottl --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-ottl .agents/skills/otel-ottl && 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-ottl" agent skill from https://github.com/ollygarden/opentelemetry-agent-skills/tree/main/skills/otel-ottl into .agents/skills/otel-ottl/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "otel-ottl", 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-ottl -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ollygarden/opentelemetry-agent-skills otel-ottl --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-ottl .cursor/skills/otel-ottl && 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-ottl" agent skill from https://github.com/ollygarden/opentelemetry-agent-skills/tree/main/skills/otel-ottl into .cursor/skills/otel-ottl/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "otel-ottl", 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-ottl--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-ottl -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ollygarden/opentelemetry-agent-skills otel-ottl --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-ottl .gemini/skills/otel-ottl && 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-ottl" agent skill from https://github.com/ollygarden/opentelemetry-agent-skills/tree/main/skills/otel-ottl into .gemini/skills/otel-ottl/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "otel-ottl", 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-ottlInstalls 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-ottl -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-ottl .github/skills/otel-ottl && 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-ottl" agent skill from https://github.com/ollygarden/opentelemetry-agent-skills/tree/main/skills/otel-ottl into .github/skills/otel-ottl/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "otel-ottl", 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-ottl -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-ottl --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-ottl .opencode/skills/otel-ottl && 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-ottl" agent skill from https://github.com/ollygarden/opentelemetry-agent-skills/tree/main/skills/otel-ottl into .opencode/skills/otel-ottl/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "otel-ottl", 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-ottlOpenTelemetry Transformation Language (OTTL) expert for writing and debugging telemetry transformations in the OpenTelemetry Collector.
Otel Ottl is an agent skill from ollygarden/opentelemetry-agent-skills. OpenTelemetry Transformation Language (OTTL) expert for writing and debugging telemetry transformations in the OpenTelemetry Collector. Use when authoring or reviewing transform, filter, tailsampling processor configs or routing connector configs, debugging OTTL syntax or semantics, transforming traces, metrics, logs, or profiles, or converting data-processing requirements into OTTL statements.
Its SKILL.md is about 1.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including reference files (for example `evals/evals.json`, `references/contexts.md` and `references/functions.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 9900032. 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 ottl).
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 Ottl loads about 1.7k tokens when it runs, and up to ~13k if it reads all its reference files. Until then it costs about 104 tokens; SKILL.md has 733 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 9900032, republished under its Apache-2.0 licence (© ollygarden). 733 words, ~1,687 tokens.
.claude/skills/otel-ottl/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.OTTL transforms or selects telemetry inside Collector components. This skill is pinned to collector-contrib v0.162.0. Function, path, default, and feature-gate availability varies by release; when the user's version differs, verify against the matching upstream tag.
transform rewrites, filter drops, tail_sampling decides whether
to retain traces, and routing sends telemetry to pipelines. A component controls its available
contexts and functions.resource.attributes), but parents cannot read children. Use datapoint for point
attributes instead of traversing metric.data_points.set or delete_key mutates data and may have a where condition. Converters
such as ParseJSON and IsMatch return values; they do not mutate.ignore logs statement errors and continues; silent
continues without logging; propagate returns the error and can cause the component to drop the
payload. Transform and filter default to ignore; the transform default-error gate was removed in
v0.162.0, so naming it in --feature-gates fails startup (history: the otel-collector skill's
transform quirks), and the filter gate is stable and cannot be disabled. Routing also
defaults to ignore while its beta default-error feature gate is enabled. For routing, ignore
sends an errored payload to default_pipelines; configure that fallback or the payload is dropped.set(span.attributes["env"], "prod") where resource.attributes["env"] == nilFor a single path or function, read only the relevant section instead of loading the full catalogs.
where x != nil, IsString(x), or the
appropriate type check.ParseJSON, for example
IsString(log.body) and IsMatch(log.body.string, "(?s)^\\s*\\{.*\\}\\s*$"). The RE2 (?s)
flag admits pretty-printed objects containing newlines. Checking IsMap after
parsing does not prevent arrays or scalar JSON from being parsed.ParseJSON, IsString, and IsMatch are available without the
v0.157 alpha lambda feature gate.include_metadata: true on the receiver.
HTTP/client header spelling may retain its form (otelcol.client.metadata["X-Tenant"][0]);
gRPC metadata keys are lowercase (otelcol.grpc.metadata["x-tenant"][0]).request context is deprecated as of v0.156; use otelcol.client.metadata or
otelcol.grpc.metadata.flatten_data: true and the
alpha transform.flatten.logs gate. This copies and regroups data; do not enable it accidentally.set(target, nil) is no longer a no-op: the ottl.set.allowNil gate became beta in
v0.161 and stable (cannot be disabled) in v0.162. A nil value empties a map, slice, or
pcommon.Value target (an attribute key is created with an empty value) and errors on scalar
targets. Use a where source != nil guard when the destination must remain unchanged for missing input.${1} as $${1}. A replacement such
as $1REDACTED is literal and silently fails to substitute the capture.(.{1024}).*; use Substring with a nil/type
guard and Len, or truncate_all for a map.spanevent.*, not span_event.*. Cache paths are context-qualified,
such as span.cache["parsed"].:, for
example 'set(log.attributes["a"], {"foo": "bar"})'; otherwise YAML parses : as a mapping.pcommon.Value paths compare by their underlying type; maps and slices
support only equality and inequality, while primitive values also support ordering.Decode(value, "base64"); Base64Decode was removed in v0.161.\\d, \\s, \\.).© 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 4 other files (references) in skills/otel-ottl of ollygarden/opentelemetry-agent-skills.
Open the folder on GitHubat commit 9900032
Otel Ottl 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 Ottl this skillollygarden/opentelemetry-agent-skills | 106 | — | ~1.7k | 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 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.
ollygarden/opentelemetry-agent-skills
Assess OpenTelemetry package and Collector upgrades across ecosystems.
Works with
Categories
OpenTelemetry Transformation Language (OTTL) expert for writing and debugging telemetry transformations in the OpenTelemetry Collector. Otel Ottl is an agent skill from ollygarden/opentelemetry-agent-skills. OpenTelemetry Transformation Language (OTTL) expert for writing and debugging telemetry transformations in the OpenTelemetry Collector.
Otel Ottl fits situations like: reviewing transform; tailsampling processor configs; routing connector configs; debugging OTTL syntax.
Run `npx skills add ollygarden/opentelemetry-agent-skills --skill otel-ottl -a claude-code`. Or copy the skill folder (skills/otel-ottl in ollygarden/opentelemetry-agent-skills) into .claude/skills/otel-ottl in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ollygarden/opentelemetry-agent-skills --skill otel-ottl -a codex`. Or copy the skill folder (skills/otel-ottl in ollygarden/opentelemetry-agent-skills) into .agents/skills/otel-ottl 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-ottl -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-ottl, .gemini/skills/otel-ottl, .github/skills/otel-ottl and .opencode/skills/otel-ottl in your project.
SKILL.md names no scripts, command-line tools or credentials: Otel Ottl 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 Ottl 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 1.7k tokens (SKILL.md is roughly 6.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 12k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Otel Ottl: 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 11, 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.