OpenTelemetry in Ruby
Entry point for OpenTelemetry mechanics in Ruby applications. Load only the reference that matches
the task; each reference is self-contained.
References
| File |
Use when |
references/setup.md |
Installing gems, configuring OpenTelemetry::SDK.configure, selecting OTLP exporters, setting resources and environment variables, and handling process shutdown. |
references/api.md |
Writing manual traces, metrics, or logs; managing context and propagation; testing emitted telemetry. |
references/instrumentation-libraries.md |
Selecting and configuring contrib instrumentation for Rails, Rack, Sinatra, HTTP clients, databases, jobs, messaging, and other gems. |
references/performance.md |
Tuning sampling, batching, cardinality, forked-process behavior, exporters, and lifecycle handling. |
references/breaking-changes.md |
Reviewing Ruby/runtime compatibility, independently versioned gems, experimental signal changes, and core/contrib upgrades. |
Signal stability matters
Tracing uses the stable opentelemetry-api and opentelemetry-sdk gems. Ruby metrics and logs are
separate 0.x API, SDK, and exporter gems and remain experimental. Do not assume a tracing gem's
version exists for metrics, logs, semantic conventions, exporters, or contrib instrumentation.
Resolve each gem independently with Bundler, inspect its changelog, and keep the resulting
Gemfile.lock change under review.
Released snapshot verified 2026-09-03: tracing API 1.11.0, tracing SDK 1.13.0, trace OTLP
exporter 0.35.1; metrics API 0.7.0, SDK 0.17.0, OTLP exporter 0.11.0; logs API 0.4.1, SDK
0.6.1, OTLP exporter 0.5.1. Treat this as an audit anchor, not a version-alignment rule; use the
lookups below for newer releases.
Sources of truth
| Fact |
Fetch |
| Latest core releases and per-gem tags |
gh api repos/open-telemetry/opentelemetry-ruby/releases --paginate |
| Latest contrib instrumentation releases |
gh api repos/open-telemetry/opentelemetry-ruby-contrib/releases --paginate |
| Released and locked gem dependencies |
gem specification <gem> dependencies --remote --yaml; inspect Gemfile.lock for the locked dependency set |
| Core implementation and changelogs |
open-telemetry/opentelemetry-ruby |
| Contrib catalog, compatibility, and per-gem options |
open-telemetry/opentelemetry-ruby-contrib |
| Ruby language docs |
OpenTelemetry Ruby documentation |
Cross-references
- SDK version selection across languages:
otel-sdk-versions skill.
- Semantic convention names and stability:
otel-semantic-conventions skill.
- OTLP receiver/export validation:
otel-collector and otel-telemetrygen skills.
1---2name: otel-ruby3description: OpenTelemetry in Ruby — SDK setup, manual tracing, experimental metrics and logs, Bundler integration, contrib instrumentation for Rails/Rack/Sinatra/Sidekiq and other gems, propagation, performance, and upgrades. Use when adding, reviewing, configuring, or troubleshooting OpenTelemetry in a Ruby or Rails service. Triggers on "setup otel in ruby", "ruby telemetry", "Rails OpenTelemetry", "OpenTelemetry::SDK.configure", "opentelemetry-instrumentation-all", "Ruby tracing", "Rack otel", "Sidekiq otel", or any Ruby-related OTel question.4---5
6# OpenTelemetry in Ruby
7
8Entry point for OpenTelemetry mechanics in Ruby applications. Load only the reference that matches
9the task; each reference is self-contained.
10
11## References
12
13| File | Use when |
14|---|---|
15| [`references/setup.md`](references/setup.md) | Installing gems, configuring `OpenTelemetry::SDK.configure`, selecting OTLP exporters, setting resources and environment variables, and handling process shutdown. |
16| [`references/api.md`](references/api.md) | Writing manual traces, metrics, or logs; managing context and propagation; testing emitted telemetry. |
17| [`references/instrumentation-libraries.md`](references/instrumentation-libraries.md) | Selecting and configuring contrib instrumentation for Rails, Rack, Sinatra, HTTP clients, databases, jobs, messaging, and other gems. |
18| [`references/performance.md`](references/performance.md) | Tuning sampling, batching, cardinality, forked-process behavior, exporters, and lifecycle handling. |
19| [`references/breaking-changes.md`](references/breaking-changes.md) | Reviewing Ruby/runtime compatibility, independently versioned gems, experimental signal changes, and core/contrib upgrades. |
20
21## Signal stability matters
22
23Tracing uses the stable `opentelemetry-api` and `opentelemetry-sdk` gems. Ruby metrics and logs are
24separate `0.x` API, SDK, and exporter gems and remain experimental. Do not assume a tracing gem's
25version exists for metrics, logs, semantic conventions, exporters, or contrib instrumentation.
26Resolve each gem independently with Bundler, inspect its changelog, and keep the resulting
27`Gemfile.lock` change under review.
28
29Released snapshot verified 2026-09-03: tracing API `1.11.0`, tracing SDK `1.13.0`, trace OTLP
30exporter `0.35.1`; metrics API `0.7.0`, SDK `0.17.0`, OTLP exporter `0.11.0`; logs API `0.4.1`, SDK
31`0.6.1`, OTLP exporter `0.5.1`. Treat this as an audit anchor, not a version-alignment rule; use the
32lookups below for newer releases.
33
34## Sources of truth
35
36| Fact | Fetch |
37|---|---|
38| Latest core releases and per-gem tags | `gh api repos/open-telemetry/opentelemetry-ruby/releases --paginate` |
39| Latest contrib instrumentation releases | `gh api repos/open-telemetry/opentelemetry-ruby-contrib/releases --paginate` |
40| Released and locked gem dependencies | `gem specification <gem> dependencies --remote --yaml`; inspect `Gemfile.lock` for the locked dependency set |
41| Core implementation and changelogs | [open-telemetry/opentelemetry-ruby](https://github.com/open-telemetry/opentelemetry-ruby) |
42| Contrib catalog, compatibility, and per-gem options | [open-telemetry/opentelemetry-ruby-contrib](https://github.com/open-telemetry/opentelemetry-ruby-contrib) |
43| Ruby language docs | [OpenTelemetry Ruby documentation](https://opentelemetry.io/docs/languages/ruby/) |
44
45## Cross-references
46
47- SDK version selection across languages: `otel-sdk-versions` skill.
48- Semantic convention names and stability: `otel-semantic-conventions` skill.
49- OTLP receiver/export validation: `otel-collector` and `otel-telemetrygen` skills.