Skip to content

ifad/sentry-legacy-ruby

Folders and files

NameName
Last commit message
Last commit date

Latest commit

72c0b2f · Oct 25, 2023

History

22 Commits
Oct 18, 2023
Oct 17, 2023
Oct 17, 2023
Oct 17, 2023
Oct 25, 2023
Oct 17, 2023
Oct 17, 2023
Oct 17, 2023
Oct 17, 2023
Oct 17, 2023
Oct 18, 2023
Oct 17, 2023
Oct 17, 2023
Oct 18, 2023
Oct 17, 2023
Oct 17, 2023
Oct 19, 2023

Repository files navigation

Sentry

Sentry

CI

This is IFAD mirror of sentry-ruby gem with added support of legacy rubies (currently versions 2.3, 2.2 and 2.1).

Considerations

Ruby 2.2 with Ubuntu-latest is not working due to sefmentaiton fault [ruby/setup-ruby#496]

Initializer

Create a config/initializers/sentry.rb with

require 'sentry-ruby'
require 'yaml'
Sentry.init do |config|
  config.dsn = YAML.load_file('config/sentry.yml')[Rails.env.to_s]['dsn']
  config.breadcrumbs_logger = [:sentry_logger, :http_logger]

  # To activate performance monitoring, set one of these options.
  # We recommend adjusting the value in production:
  config.traces_sample_rate = 1.0
  # or
  config.traces_sampler = lambda do |context|
    0.5
  end
end

class SentryMiddleware
  def initialize(app)
    @app = app
  end

  def call(env)
    return @app.call(env)
  rescue Exception => e # rubocop:disable Lint/RescueException
    Sentry.capture_exception(e)
    raise e
  end
end

Rails.configuration.middleware.use SentryMiddleware

Capistrano task

namespace :sentry do
  desc '[internal] Creates the sentry.yml configuration file in shared path.'
  task :setup do
    run "mkdir -p #{shared_path}/config"
    put compile('sentry.yml.erb'), "#{shared_path}/config/sentry.yml"
  end
  after "deploy:setup", "deploy:sentry:setup"

  desc "[internal] Updates the local.rb settings symlink."
  task :symlink do
    source = "#{shared_path}/config/sentry.yml"
    run "test -f #{source} && ln -nfs #{source} #{release_path}/config/sentry.yml || true"
  end
  after "deploy:update_code", "deploy:sentry:symlink"
end

Custom notifier

def notify_sentry(level, exception, options = {})
  Sentry.notify_exception(exception, options)
end

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages