Ruby

Ruby Integration

Auto-instrument Ruby and Rails applications

Installation

# Gemfile
gem 'opentelemetry-sdk'
gem 'opentelemetry-exporter-otlp'
gem 'opentelemetry-instrumentation-all'

# Install
bundle install

Configuration

# config/initializers/opentelemetry.rb
require 'opentelemetry/sdk'
require 'opentelemetry/exporter/otlp'
require 'opentelemetry/instrumentation/all'

OpenTelemetry::SDK.configure do |c|
  c.service_name = 'my-ruby-service'
  c.use_all()
end

Rails Configuration

# config/application.rb
config.opentelemetry = {
  service_name: 'my-rails-app',
  exporter: {
    endpoint: 'https://api.qorrelate.io/v1/otlp',
    headers: {
      'X-API-Key' => ENV['QORRELATE_API_KEY']
    }
  }
}

Sinatra Example

require 'sinatra'
require 'opentelemetry/sdk'
require 'opentelemetry/instrumentation/sinatra'

OpenTelemetry::SDK.configure do |c|
  c.service_name = 'my-sinatra-app'
  c.use 'OpenTelemetry::Instrumentation::Sinatra'
end

get '/' do
  'Hello World!'
end