agentsclimarketplace

Otel go

Skill ollygarden/opentelemetry-agent-skills/skills/otel-go

Vendor-neutral OpenTelemetry skills for AI coding agents, grounded in upstream sources

Install
npx -y skills add ollygarden/opentelemetry-agent-skills --skill otel-go

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

What its author says it does

Copied from the file, not written here

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.

SKILL.md

5.1 KB, as published. Nobody here has run it

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

FileUse when
references/declarative-setup.mdConfiguring the SDK via otelconf and YAML: providers, propagators, shutdown, env-var substitution.
references/api.mdLooking up import paths, global API access, tracer/meter/logger usage, attributes, propagation, log bridges (zap, slog).
references/instrumentation-libraries.mdPicking or wiring contrib libraries (otelhttp, otelgrpc, database, AWS, message queues, propagators, resource detectors), and writing manual instrumentation that follows semconv.
references/performance.mdTuning sampling, batch processor, metric reader, exporter compression/retry, attribute allocation, log Enabled() short-circuiting, graceful shutdown.
references/breaking-changes.mdAuditing existing code for deprecated calls, renamed semantic conventions, and removed APIs across recent SDK / contrib releases.
references/compile-time-instrumentation.mdZero-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.

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 groupExample modulesVersion line
Stable signals (traces, metrics)go.opentelemetry.io/otel, otel/sdk, otel/trace, otel/metric, OTLP trace/metric exportersv1.x (e.g. v1.44.0)
Logsotel/log, otel/sdk/log, otel/exporters/otlp/otlplog/otlploghttpv0.x (separate, lower line)
Contrib instrumentationcontrib/instrumentation/net/http/otelhttp, .../otelgrpcv0.x (separate line, e.g. v0.69.0)
Contrib log bridgescontrib/bridges/otelslog, otelzap, otellogrus, otellogrv0.x

The trap: pinning every module to the core version (e.g. go get go.opentelemetry.io/otel/[email protected]) fails — log 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:

go get go.opentelemetry.io/otel@latest go.opentelemetry.io/otel/sdk@latest
# logs (separate 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:

FactFetch
Latest go.opentelemetry.io/otel core releasegh api repos/open-telemetry/opentelemetry-go/releases/latest -q '.tag_name'
Latest go.opentelemetry.io/contrib releasegh api repos/open-telemetry/opentelemetry-go-contrib/releases/latest -q '.tag_name'
Latest otelconf module taggh api repos/open-telemetry/opentelemetry-go-contrib/git/matching-refs/tags/otelconf -q '.[-1].ref'
Latest semconv package versiongh api repos/open-telemetry/semantic-conventions/releases/latest -q '.tag_name'
otel-go CHANGELOGWebFetch https://raw.githubusercontent.com/open-telemetry/opentelemetry-go/main/CHANGELOG.md
otel-go-contrib CHANGELOGWebFetch https://raw.githubusercontent.com/open-telemetry/opentelemetry-go-contrib/main/CHANGELOG.md

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.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.