Motel Debug
kitlangton/motel
Debug applications with motel, a local OpenTelemetry ingest and query server.
Migrate OpenTelemetry Span Events (AddEvent, RecordException, and language equivalents) to the Logs API following the accepted OTEP 4430 migration plan.
$ npx skills add ollygarden/opentelemetry-agent-skills --skill otel-span-events-to-logs-migration -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ollygarden/opentelemetry-agent-skills otel-span-events-to-logs-migration --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-span-events-to-logs-migration .claude/skills/otel-span-events-to-logs-migration && 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-span-events-to-logs-migration" agent skill from https://github.com/ollygarden/opentelemetry-agent-skills/tree/main/skills/otel-span-events-to-logs-migration into .claude/skills/otel-span-events-to-logs-migration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "otel-span-events-to-logs-migration", 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-span-events-to-logs-migrationType 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-span-events-to-logs-migration -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ollygarden/opentelemetry-agent-skills otel-span-events-to-logs-migration --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-span-events-to-logs-migration .agents/skills/otel-span-events-to-logs-migration && 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-span-events-to-logs-migration" agent skill from https://github.com/ollygarden/opentelemetry-agent-skills/tree/main/skills/otel-span-events-to-logs-migration into .agents/skills/otel-span-events-to-logs-migration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "otel-span-events-to-logs-migration", 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-span-events-to-logs-migration -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ollygarden/opentelemetry-agent-skills otel-span-events-to-logs-migration --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-span-events-to-logs-migration .cursor/skills/otel-span-events-to-logs-migration && 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-span-events-to-logs-migration" agent skill from https://github.com/ollygarden/opentelemetry-agent-skills/tree/main/skills/otel-span-events-to-logs-migration into .cursor/skills/otel-span-events-to-logs-migration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "otel-span-events-to-logs-migration", 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-span-events-to-logs-migration--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-span-events-to-logs-migration -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ollygarden/opentelemetry-agent-skills otel-span-events-to-logs-migration --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-span-events-to-logs-migration .gemini/skills/otel-span-events-to-logs-migration && 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-span-events-to-logs-migration" agent skill from https://github.com/ollygarden/opentelemetry-agent-skills/tree/main/skills/otel-span-events-to-logs-migration into .gemini/skills/otel-span-events-to-logs-migration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "otel-span-events-to-logs-migration", 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-span-events-to-logs-migrationInstalls 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-span-events-to-logs-migration -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-span-events-to-logs-migration .github/skills/otel-span-events-to-logs-migration && 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-span-events-to-logs-migration" agent skill from https://github.com/ollygarden/opentelemetry-agent-skills/tree/main/skills/otel-span-events-to-logs-migration into .github/skills/otel-span-events-to-logs-migration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "otel-span-events-to-logs-migration", 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-span-events-to-logs-migration -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-span-events-to-logs-migration --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-span-events-to-logs-migration .opencode/skills/otel-span-events-to-logs-migration && 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-span-events-to-logs-migration" agent skill from https://github.com/ollygarden/opentelemetry-agent-skills/tree/main/skills/otel-span-events-to-logs-migration into .opencode/skills/otel-span-events-to-logs-migration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "otel-span-events-to-logs-migration", 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-span-events-to-logs-migrationMigrate OpenTelemetry Span Events (AddEvent, RecordException, and language equivalents) to the Logs API following the accepted OTEP 4430 migration plan.
Otel Span Events To Logs Migration is an agent skill from ollygarden/opentelemetry-agent-skills. Migrate OpenTelemetry Span Events (AddEvent, RecordException, and language equivalents) to the Logs API following the accepted OTEP 4430 migration plan. Use when migrating instrumentation from span events to log-based events, reviewing code that still uses AddEvent or RecordException, or planning a codebase migration while preserving trace correlation.
Its SKILL.md is about 1.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including scripts and reference files (for example `references/backward-compat.md`, `references/decision-tree.md` and `references/deprecation-plan.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.
6 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.
Ships 1 file in scripts/ (Shell), which the agent can run.
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 Span Events To Logs Migration loads about 1.8k tokens when it runs, and up to ~7.8k if it reads all its reference files. Until then it costs about 97 tokens; SKILL.md has 863 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); the scripts in this folder are not scanned.
The full file from ollygarden/opentelemetry-agent-skills at commit 9900032, republished under its Apache-2.0 licence (© ollygarden). 863 words, ~1,829 tokens.
.claude/skills/otel-span-events-to-logs-migration/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.Use this skill to migrate instrumentation from the Span Event API (AddEvent, RecordException, and language equivalents) to the Logs API, following the accepted OTEP 4430 deprecation plan.
The OpenTelemetry project accepted a plan to deprecate Span.AddEvent and Span.RecordException in favor of emitting events and exceptions through the Logs API. Span Events as a concept remain valid -- they can be emitted via logs that correlate to the active span, and optionally bridged back into the span proto.
Status as of 2026-10-03: OTEP 4430 is accepted, log-based event/exception emission is specified in the Logs API, and the SDK "event to span event bridge" is specified with Development status. The trace API methods AddEvent/RecordException are not yet formally marked Deprecated in the specification -- that step is still pending. Treat existing span-event calls as migration candidates, not automatically invalid code; some SDK-specific equivalents have already changed status (for example OpenTelemetry .NET's Activity.RecordException extension is [Obsolete] in favor of Activity.AddException, which is still a span-event API).
See references/deprecation-plan.md for the full context.
otel-sdk-versions skill's version index if available)AddEvent, add_event, addEvent, RecordException, record_exception, recordException, RecordError, record_error, AddException, and language-specific variantsreferences/decision-tree.md for the full classification logicreferences/migration-patterns.md for language-specific before/after patterns.exception name), reserving exception for generic handlersotel.Logger from the root go.opentelemetry.io/otel package (otel/log/global is deprecated)io.opentelemetry.contrib.eventbridge.EventToSpanEventBridge was removed in opentelemetry-java-contrib v1.60.0; use io.opentelemetry.sdk.extension.incubator.logs.EventToSpanEventBridge from opentelemetry-sdk-extension-incubator (see references/backward-compat.md)log.Record.AddAttributes accepts attribute.KeyValue: use attribute.String(...), not log.String(...); set the event name with Record.SetEventName(...)exception.type and exception.message (at least one is required), plus exception.stacktrace when the language/error type makes it meaningful (in Go, omit it unless an error library preserves the origin stack -- do not call runtime.Stack at the emit site)references/backward-compat.mdFollow this loop every time:
Do not mark a checklist item complete based on intent alone. Mark it complete only after confirming it in the current codebase.
For every item, report one of these statuses in the final answer:
[x] completed[~] not applicable, with a reason[ ] unresolvedInclude file references as evidence for every completed item.
[ ] All general span-event call sites identified and classified, including AddEvent / add_event / addEvent and language equivalents such as .NET ActivityEvent.[ ] All exception span-event call sites identified and classified, including RecordException / record_exception / recordException and language equivalents such as Go RecordError, Rust record_error, and .NET AddException.[ ] A LoggerProvider is configured in the SDK setup (or already existed).[ ] Each migrated event uses the Logs API with the correct event name and attributes.[ ] Each migrated exception preserves the applicable semconv attributes: exception.type and exception.message (at least one is required), plus exception.stacktrace when the language/error type makes it meaningful.[ ] Migrated log records carry the active span context for trace correlation.[ ] Call sites classified as "convert to span attributes" now use span attributes instead.[ ] Call sites classified as "remove" have been removed with justification.[ ] Backward compatibility bridge is configured if downstream systems require span events in the span envelope.[ ] No remaining span-event API call sites are left unintentionally; any retained AddEvent / RecordException / RecordError / AddException / ActivityEvent / equivalent call is justified for current-version compatibility.[ ] The changed files were re-read after implementation to verify the final state.[ ] The final answer includes this checklist, file evidence, and any remaining risks or gaps.In the final answer, include the checklist in this format:
[x] LoggerProvider configured. Evidence: src/telemetry/setup.go:42 -- added OTLP log exporter with batch processor.[~] Backward compatibility bridge. Reason: no downstream systems depend on span events in the proto envelope.[ ] Exception migration. Missing evidence; re-check required.© 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 5 other files (scripts, references) in skills/otel-span-events-to-logs-migration of ollygarden/opentelemetry-agent-skills.
Open the folder on GitHubat commit 9900032
Otel Span Events To Logs Migration 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 Span Events To Logs Migration this skillollygarden/opentelemetry-agent-skills | 106 | — | ~1.8k | 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
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
Migrate OpenTelemetry Span Events (AddEvent, RecordException, and language equivalents) to the Logs API following the accepted OTEP 4430 migration plan. Otel Span Events To Logs Migration is an agent skill from ollygarden/opentelemetry-agent-skills. Migrate OpenTelemetry Span Events (AddEvent, RecordException, and language equivalents) to the Logs API following the accepted OTEP 4430 migration plan.
Otel Span Events To Logs Migration fits situations like: migrating instrumentation from span events to log-based events; reviewing code that still uses AddEvent; recordException; planning a codebase migration while preserving trace correlation.
Run `npx skills add ollygarden/opentelemetry-agent-skills --skill otel-span-events-to-logs-migration -a claude-code`. Or copy the skill folder (skills/otel-span-events-to-logs-migration in ollygarden/opentelemetry-agent-skills) into .claude/skills/otel-span-events-to-logs-migration in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ollygarden/opentelemetry-agent-skills --skill otel-span-events-to-logs-migration -a codex`. Or copy the skill folder (skills/otel-span-events-to-logs-migration in ollygarden/opentelemetry-agent-skills) into .agents/skills/otel-span-events-to-logs-migration 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-span-events-to-logs-migration -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-span-events-to-logs-migration, .gemini/skills/otel-span-events-to-logs-migration, .github/skills/otel-span-events-to-logs-migration and .opencode/skills/otel-span-events-to-logs-migration in your project.
Going by SKILL.md and its folder, Otel Span Events To Logs Migration needs a shell for the scripts in its folder. Our summary lists: A Bash shell.
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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Otel Span Events To Logs Migration 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.8k tokens (SKILL.md is roughly 7.3k 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 5.9k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Otel Span Events To Logs Migration: 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.