Integrations

Ruby
Add OpenTelemetry instrumentation to your Ruby applications.
Overview
Ruby applications can be instrumented with OpenTelemetry to capture traces, metrics, and logs. The Ruby SDK provides auto-instrumentation for Rails and other popular frameworks.
Install
Add the OpenTelemetry gems to your Gemfile:
# Gemfile
gem 'opentelemetry-sdk'
gem 'opentelemetry-exporter-otlp'
gem 'opentelemetry-instrumentation-all'Then run:
bundle installConfigure
1. Set environment variables
export OTEL_SERVICE_NAME="my-ruby-service"
export OTEL_EXPORTER_OTLP_ENDPOINT="https://ingress.us-east-2.rocketgraph.app"
export OTEL_EXPORTER_OTLP_HEADERS="Authorization=Bearer YOUR_ROCKETLOGS_API_TOKEN"2. Configure in your application
For Rails, create an initializer:
# config/initializers/opentelemetry.rb
require 'opentelemetry/sdk'
require 'opentelemetry/exporter/otlp'
require 'opentelemetry/instrumentation/all'
OpenTelemetry::SDK.configure do |c|
c.service_name = ENV['OTEL_SERVICE_NAME'] || 'my-ruby-service'
c.use_all # Enables all auto-instrumentation
endFor non-Rails Ruby applications
require 'opentelemetry/sdk'
require 'opentelemetry/exporter/otlp'
OpenTelemetry::SDK.configure do |c|
c.service_name = 'my-ruby-app'
c.add_span_processor(
OpenTelemetry::SDK::Trace::Export::BatchSpanProcessor.new(
OpenTelemetry::Exporter::OTLP::Exporter.new
)
)
end
# Get a tracer
tracer = OpenTelemetry.tracer_provider.tracer('my-tracer')
# Create spans
tracer.in_span('my-operation') do |span|
span.set_attribute('user.id', user_id)
# Your code here
endSupported libraries
Auto-instrumentation is available for:
- Rails, Sinatra, Rack
- ActiveRecord, PG, MySQL2, Redis
- Faraday, Net::HTTP, RestClient
- Sidekiq, Resque, Delayed Job
- And more via OpenTelemetry Registry