К основному содержанию
скилл CX Codex

otel-go — скилл для Claude Code: настройка и установка

Скилл помогает настраивать и проверять OpenTelemetry в Go-сервисах. Пригодится для инструментирования, обновления SDK и разбора производительности.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add ollygarden/opentelemetry-agent-skills --skill otel-go -a claude-code
Открыть на GitHub

Что делает otel-go

Скилл подбирает справочные материалы по задаче: настройке SDK через otelconf и YAML, работе с API, библиотекам otelhttp и otelgrpc, производительности и несовместимым изменениям. Отдельный материал посвящён инструментированию при компиляции с otelc.

При добавлении зависимостей скилл предупреждает, что группы модулей OpenTelemetry используют разные линии версий. Версии пакетов contrib нельзя подменять версией основного SDK: такая установка может сломать сборку. Для проверки обновлений предусмотрены go mod tidy -diff, go build ./... и go test ./...; проверять URL экспортера и повторы предлагается на локальном тестовом приёмнике, а не на рабочем адресе.

Скилл пригодится, когда нужно выбрать библиотеку для Go-сервиса или проверить переход на новую версию OpenTelemetry. Рекомендации по YAML опираются на отдельный скилл otel-declarative-config.

Какие задачи решает

  • настроить OpenTelemetry SDK через YAML
  • подобрать библиотеку инструментирования для Go
  • проверить код на удалённые и переименованные API
  • настроить инструментирование при компиляции через otelc
  • разобраться с линиями версий модулей OpenTelemetry

Примеры запросов агенту

  • Помоги подключить OpenTelemetry к Go-сервису и подобрать нужные модули.
  • Проверь код на устаревшие вызовы OpenTelemetry перед обновлением SDK.
  • Объясни, как инструментировать сборку Go с помощью otelc.

Как установить otel-go

1Через Skills CLI (Vercel)

npx skills add ollygarden/opentelemetry-agent-skills --skill otel-go -a claude-code

2Вручную: положить файлы

~/.claude/skills/otel-go/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/otel-go/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о otel-go

Как установить otel-go в Claude Code?

Выполните npx skills add ollygarden/opentelemetry-agent-skills --skill otel-go -a claude-code. Файл скилла находится по пути ~/.claude/skills/otel-go/SKILL.md.

Что делает otel-go?

Скилл помогает настраивать OpenTelemetry в Go, выбирать библиотеки инструментирования и проверять изменения SDK. Он также охватывает производительность и компиляционное инструментирование через otelc.

Почему нельзя задать всем модулям OpenTelemetry одну версию?

Группы модулей выпускаются по отдельным линиям версий: основные API и SDK, экспортеры логов и contrib-инструментирование могут иметь разные версии. Привязка всех пакетов к версии основного SDK способна привести к ошибке сборки.

Исходный текст

SKILL.md · Apache-2.0
---
name: otel-go
description: OpenTelemetry in Go — SDK setup, API surface, breaking changes, contrib instrumentation libraries (otelhttp, otelgrpc, otelmongo), compile-time zero-code instrumentation (otelc), and performance tuning. Use when adding, reviewing, or configuring OpenTelemetry in a Go service. Triggers on "setup otel in go", "go telemetry", "go tracing", "otelconf go", "otelhttp", "otelgrpc", "TracerProvider go", "MeterProvider go", "otelc", "compile-time instrumentation go", "zero-code go instrumentation", "go build instrumentation", or any Go-related OTel question.
---

# OpenTelemetry in Go

Entry point for OpenTelemetry mechanics in Go services. Load a reference below based on the
task; each reference is self-contained.

## References

| File | Use when |
|---|---|
| [`references/declarative-setup.md`](references/declarative-setup.md) | Configuring the SDK via `otelconf` and YAML: providers, propagators, shutdown, env-var substitution. |
| [`references/api.md`](references/api.md) | Looking up import paths, global API access, tracer/meter/logger usage, attributes, propagation, log bridges (zap, slog). |
| [`references/instrumentation-libraries.md`](references/instrumentation-libraries.md) | Picking or wiring contrib libraries (otelhttp, otelgrpc, database, AWS, message queues, propagators, resource detectors), and writing manual instrumentation that follows semconv. |
| [`references/performance.md`](references/performance.md) | Tuning sampling, batch processor, metric reader, exporter compression/retry, attribute allocation, log `Enabled()` short-circuiting, graceful shutdown. |
| [`references/breaking-changes.md`](references/breaking-changes.md) | Auditing existing code for deprecated calls, renamed semantic conventions, and removed APIs across recent SDK / contrib releases. |
| [`references/compile-time-instrumentation.md`](references/compile-time-instrumentation.md) | Zero-code, compile-time instrumentation with `otelc`: usage modes (`otelc go build`, tool dependency, toolexec drop-in), subcommands, supported libraries, rule sources/precedence, and pinning via `otel.instrumentation.go`. |

For upgrade reviews, always finish with a safe local verification path (`go mod tidy -diff`,
`go build ./...`, and `go test ./...`). Test exporter URL or retry changes against a disposable
local receiver, never a deployment endpoint.

## Module versioning — read before adding dependencies

opentelemetry-go is split into **independently versioned module groups**. They do NOT
share one version number. Assuming they do is the most common cause of broken builds
and version churn:

| Module group | Example modules | Version line |
|---|---|---|
| Stable (traces, metrics, logs API/SDK) | `go.opentelemetry.io/otel`, `otel/sdk`, `otel/trace`, `otel/metric`, `otel/log`, `otel/sdk/log`, OTLP trace/metric exporters | **v1.x** (e.g. v1.47.0; logs API/SDK joined at v1.47.0) |
| Log exporters and test helpers | `otel/exporters/otlp/otlplog/otlploghttp`, `.../otlploggrpc`, `otel/exporters/stdout/stdoutlog`, `otel/log/logtest`, `otel/sdk/log/logtest` | **v0.x** (separate, lower line, e.g. v0.23.0) |
| Contrib instrumentation | `contrib/instrumentation/net/http/otelhttp`, `.../otelgrpc` | **v0.x** (separate line, e.g. v0.72.0) |
| Contrib log bridges | `contrib/bridges/otelslog`, `otelzap`, `otellogrus`, `otellogr` | **v0.x** |

**The trap:** pinning every module to the core version (e.g. `go get go.opentelemetry.io/otel/exporters/otlp/otlplog/[email protected]`)
fails — log exporter, log test-helper, and bridge modules have no v1.x tag. Hand-picking and re-guessing each `@vX`
is the churn to avoid.

**Do this instead** — add each module with `@latest` and let Go resolve a compatible set:

```bash
go get go.opentelemetry.io/otel@latest go.opentelemetry.io/otel/sdk@latest
# logs (API/SDK are v1.x; log exporters stay on a v0.x line — do NOT force the core version):
go get go.opentelemetry.io/otel/log@latest go.opentelemetry.io/otel/sdk/log@latest \
       go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp@latest
# contrib (instrumentation and bridges each resolve to their own v0.x line):
go get go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp@latest \
       go.opentelemetry.io/contrib/bridges/otelslog@latest
go mod tidy && go build ./...
```

If exact versions are required, fetch each module group's tag from its own source
(see below) — never infer one group's version from another's.

## Sources of Truth

For YAML schema details, fetch the upstream sources listed in the `otel-declarative-config` skill.
For Go-specific facts:

| Fact | Fetch |
|---|---|
| Latest `go.opentelemetry.io/otel` core release | `gh api repos/open-telemetry/opentelemetry-go/releases/latest -q '.tag_name'` |
| Latest `go.opentelemetry.io/contrib` release | `gh api repos/open-telemetry/opentelemetry-go-contrib/releases/latest -q '.tag_name'` |
| Latest `otelconf` module tag | the version-sorted tag command below the table |
| Latest Go semconv package | Search the selected core release's CHANGELOG for `Add the go.opentelemetry.io/otel/semconv/`; do not infer package availability from the upstream semantic-conventions release. Offline: `semconv/v1.43.0` in otel v1.47.0, verified 2026-10-15 (record: the `otel-semantic-conventions` skill's `references/sdk-semconv-packages.md`). |
| `otel-go` CHANGELOG | `WebFetch https://raw.githubusercontent.com/open-telemetry/opentelemetry-go/main/CHANGELOG.md` |
| `otel-go-contrib` CHANGELOG | `WebFetch https://raw.githubusercontent.com/open-telemetry/opentelemetry-go-contrib/main/CHANGELOG.md` |

```bash
gh api repos/open-telemetry/opentelemetry-go-contrib/git/matching-refs/tags/otelconf -q '.[].ref' | sort -V | tail -1
```

## Cross-References

- Schema-level facts: `otel-declarative-config` skill (language-agnostic YAML schema sources).
- SDK version selection across languages: `otel-sdk-versions` skill.
- Semantic conventions lookup: `otel-semantic-conventions` skill.

© ollygarden · Apache-2.0 · ollygarden/opentelemetry-agent-skills

Похожие скиллы

Все скиллы по теме «Бэкенд и API» →
mcp-builder официальный anthropics Скилл проводит через создание MCP-сервера на TypeScript или Python: от изучения протокола до тестов и оценки качества. 130 949установок claude-api официальный anthropics Справочник по Anthropic SDK и API Claude для генерации кода без устаревших параметров и выдуманных методов. 74 198установок lark-im larksuite Скилл подключает Lark IM к агенту: он отправляет сообщения, ищет историю, управляет чатами и файлами. Подойдёт для задач вокруг командных коммуникаций. CX Codex +1 472 900установок lark-event larksuite Слушает события Lark/Feishu и отдаёт их потоком NDJSON. Подходит для ботов, обработчиков сообщений и долгих подписчиков. CX Codex +1 466 800установок caveman-discover JuliusBrussee Находит точки вызова LLM в репозитории и размечает их воркфлоу для Caveman Cloud, чтобы расходы на токены не сливались в одну общую кучу. CX Codex +1 104 400установок migration JuliusBrussee Скилл задаёт правила безопасных миграций схем, данных и API с обязательным откатом. Пригодится при изменениях, где нельзя терять данные или ломать совместимость. CX Codex +1 103 900установок

Из того же набора15

otel-ruby Помогает агенту настраивать и проверять OpenTelemetry в Ruby-приложениях. Пригодится для трассировки, метрик, логов и инструментирования Rails и других библиотек. CX Codex +1 ★ 116звёзд репо otel-python Скилл для настройки и отладки OpenTelemetry в Python-сервисах: SDK, декларативный конфиг, автоинструментация без правок кода. CX Codex +1 ★ 116звёзд репо otel-ottl Скилл помогает писать выражения на OpenTelemetry Transformation Language (OTTL) для трансформирования и фильтрации телеметрии в Collector. CX Codex +1 ★ 116звёзд репо otel-js Помогает агенту настроить OpenTelemetry в сервисе на Node.js, JavaScript или TypeScript. Пригодится, когда нужно добавить трассировку или разобраться с NodeSDK. CX Codex +1 ★ 116звёзд репо otel-java Настраивает OpenTelemetry в Java-сервисах: конфигурирует Javaagent, Spring Boot Starter и скрывает чувствительные данные из трейсов. CX Codex +1 ★ 116звёзд репо otel-dotnet Скилл по OpenTelemetry в .NET и ASP.NET Core: настройка SDK через DI, инструментирование, zero-code агент, аудит ломающих изменений. CX Codex +1 ★ 116звёзд репо otel-collector Помогает писать, проверять и отлаживать YAML-конфигурацию компонентов OpenTelemetry Collector. Пригодится, когда нужно разобраться с конкретным receiver, processor или exporter. CX Codex +1 ★ 116звёзд репо otel-collector-builder Скилл для сборки собственных дистрибутивов OpenTelemetry Collector через OCB. Пригодится, когда стандартные otelcol и otelcol-contrib не подходят. CX Codex +1 ★ 116звёзд репо

Спонсоры проекта

Компании, которые помогают держать аналитику открытой