Ruby SDK

Ruby SDK for JustAnalytics distributed tracing and error tracking.

Installation#

# Gemfile
gem 'justanalytics-ruby'
bundle install

Quick Start#

require 'justanalytics'

JustAnalytics.init(
  site_id: ENV['JUSTANALYTICS_SITE_ID'],
  api_key: ENV['JUSTANALYTICS_API_KEY'],
  service_name: 'rails-app',
  environment: Rails.env
)

Tracing#

result = JustAnalytics.start_span('process-order') do |span|
  span.set_attribute('order.id', order_id)
  span.set_attribute('order.total', total)

  user = JustAnalytics.start_span('fetch-user') do
    User.find(user_id)
  end

  { success: true, user: user }
end

Error Tracking#

begin
  risky_operation
rescue => e
  JustAnalytics.capture_exception(e, tags: { module: 'payments' })
  raise
end

Rails Integration#

# config/initializers/justanalytics.rb
JustAnalytics.init(
  site_id: ENV['JUSTANALYTICS_SITE_ID'],
  api_key: ENV['JUSTANALYTICS_API_KEY'],
  service_name: 'rails-app',
  environment: Rails.env
)

# Auto-instruments:
# - ActionController requests
# - ActiveRecord queries
# - ActionMailer deliveries
# - ActiveJob executions
# - Redis cache operations

Sinatra Integration#

require 'justanalytics/sinatra'

class MyApp < Sinatra::Base
  use JustAnalytics::Sinatra::Middleware
end

Logging#

JustAnalytics.logger.info('Request processed', path: '/api/orders', duration: 245)
JustAnalytics.logger.error('Payment failed', order_id: '123', reason: 'declined')

Custom Metrics#

JustAnalytics.record_metric('custom.queue_size', 42, queue: 'emails')

Requirements#

  • Ruby 3.0+
  • Rails 7.0+ (for Rails integration)