rollbar 2.10.0 → 2.11.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +7 -2
- data/CHANGELOG.md +20 -0
- data/README.md +73 -16
- data/docs/configuration.md +10 -0
- data/gemfiles/rails30.gemfile +2 -0
- data/gemfiles/rails31.gemfile +2 -0
- data/gemfiles/rails32.gemfile +2 -0
- data/gemfiles/rails40.gemfile +2 -0
- data/gemfiles/rails41.gemfile +2 -0
- data/gemfiles/rails42.gemfile +2 -0
- data/gemfiles/rails50.gemfile +2 -0
- data/gemfiles/ruby_1_8_and_1_9_2.gemfile +43 -0
- data/lib/rollbar.rb +139 -353
- data/lib/rollbar/configuration.rb +4 -0
- data/lib/rollbar/item.rb +225 -0
- data/lib/rollbar/item/backtrace.rb +97 -0
- data/lib/rollbar/js.rb +0 -28
- data/lib/rollbar/language_support.rb +10 -0
- data/lib/rollbar/{js/middleware.rb → middleware/js.rb} +3 -4
- data/lib/rollbar/plugin.rb +63 -0
- data/lib/rollbar/plugins.rb +41 -0
- data/lib/rollbar/{active_job.rb → plugins/active_job.rb} +0 -0
- data/lib/rollbar/plugins/basic_socket.rb +16 -0
- data/lib/rollbar/plugins/delayed_job.rb +12 -0
- data/lib/rollbar/plugins/delayed_job/job_data.rb +16 -0
- data/lib/rollbar/{delayed_job.rb → plugins/delayed_job/plugin.rb} +1 -17
- data/lib/rollbar/plugins/goalie.rb +46 -0
- data/lib/rollbar/plugins/rack.rb +16 -0
- data/lib/rollbar/plugins/rails.rb +77 -0
- data/lib/rollbar/{rails → plugins/rails}/controller_methods.rb +0 -0
- data/lib/rollbar/plugins/rails/railtie30.rb +17 -0
- data/lib/rollbar/plugins/rails/railtie32.rb +18 -0
- data/lib/rollbar/plugins/rails/railtie_mixin.rb +33 -0
- data/lib/rollbar/plugins/rake.rb +45 -0
- data/lib/rollbar/plugins/sidekiq.rb +35 -0
- data/lib/rollbar/{sidekiq.rb → plugins/sidekiq/plugin.rb} +0 -18
- data/lib/rollbar/plugins/thread.rb +13 -0
- data/lib/rollbar/plugins/validations.rb +33 -0
- data/lib/rollbar/request_data_extractor.rb +30 -18
- data/lib/rollbar/scrubbers/params.rb +4 -2
- data/lib/rollbar/scrubbers/url.rb +30 -28
- data/lib/rollbar/util.rb +10 -0
- data/lib/rollbar/version.rb +1 -1
- data/spec/controllers/home_controller_spec.rb +4 -3
- data/spec/dummyapp/app/models/post.rb +9 -0
- data/spec/dummyapp/app/models/user.rb +2 -0
- data/spec/dummyapp/config/initializers/rollbar.rb +1 -0
- data/spec/fixtures/plugins/dummy1.rb +5 -0
- data/spec/fixtures/plugins/dummy2.rb +5 -0
- data/spec/rollbar/item_spec.rb +635 -0
- data/spec/rollbar/logger_proxy_spec.rb +4 -0
- data/spec/rollbar/{js/middleware_spec.rb → middleware/js_spec.rb} +32 -3
- data/spec/rollbar/plugin_spec.rb +147 -0
- data/spec/rollbar/{active_job_spec.rb → plugins/active_job_spec.rb} +0 -1
- data/spec/rollbar/{delayed_job → plugins/delayed_job}/job_data.rb +0 -0
- data/spec/rollbar/{delayed_job_spec.rb → plugins/delayed_job_spec.rb} +3 -6
- data/spec/rollbar/{middleware/rack/builder_spec.rb → plugins/rack_spec.rb} +2 -1
- data/spec/rollbar/{js/frameworks/rails_spec.rb → plugins/rails_js_spec.rb} +1 -1
- data/spec/rollbar/{rake_spec.rb → plugins/rake_spec.rb} +2 -1
- data/spec/rollbar/{sidekiq_spec.rb → plugins/sidekiq_spec.rb} +2 -1
- data/spec/rollbar/plugins/validations_spec.rb +43 -0
- data/spec/rollbar/plugins_spec.rb +68 -0
- data/spec/rollbar/request_data_extractor_spec.rb +56 -10
- data/spec/rollbar/scrubbers/params_spec.rb +13 -10
- data/spec/rollbar/scrubbers/url_spec.rb +17 -12
- data/spec/rollbar/sidekig/clear_scope_spec.rb +2 -1
- data/spec/rollbar/util_spec.rb +61 -0
- data/spec/rollbar_bc_spec.rb +10 -10
- data/spec/rollbar_spec.rb +57 -706
- data/spec/spec_helper.rb +8 -0
- data/spec/support/notifier_helpers.rb +1 -0
- data/spec/support/rollbar_api.rb +57 -0
- metadata +57 -33
- data/lib/rollbar/active_record_extension.rb +0 -14
- data/lib/rollbar/core_ext/basic_socket.rb +0 -7
- data/lib/rollbar/core_ext/thread.rb +0 -9
- data/lib/rollbar/goalie.rb +0 -33
- data/lib/rollbar/js/frameworks.rb +0 -6
- data/lib/rollbar/js/frameworks/rails.rb +0 -49
- data/lib/rollbar/js/version.rb +0 -5
- data/lib/rollbar/rack.rb +0 -9
- data/lib/rollbar/railtie.rb +0 -46
- data/lib/rollbar/rake.rb +0 -40
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'rollbar/plugin'
|
2
|
+
|
3
|
+
module Rollbar
|
4
|
+
# Stores the available plugin definitions and loads them
|
5
|
+
class Plugins
|
6
|
+
attr_reader :collection
|
7
|
+
|
8
|
+
def initialize
|
9
|
+
@collection = []
|
10
|
+
end
|
11
|
+
|
12
|
+
def require_all
|
13
|
+
Dir.glob(plugin_files).each do |file|
|
14
|
+
require file.to_s
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def plugin_files
|
19
|
+
File.expand_path('../plugins/*.rb', __FILE__)
|
20
|
+
end
|
21
|
+
|
22
|
+
def define(name, &block)
|
23
|
+
return if loaded?(name)
|
24
|
+
|
25
|
+
plugin = Rollbar::Plugin.new(name)
|
26
|
+
collection << plugin
|
27
|
+
|
28
|
+
plugin.instance_eval(&block)
|
29
|
+
end
|
30
|
+
|
31
|
+
def load!
|
32
|
+
collection.each(&:load!)
|
33
|
+
end
|
34
|
+
|
35
|
+
private
|
36
|
+
|
37
|
+
def loaded?(name)
|
38
|
+
collection.any? { |plugin| plugin.name == name }
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
File without changes
|
@@ -0,0 +1,16 @@
|
|
1
|
+
Rollbar.plugins.define('basic_socket') do
|
2
|
+
dependency { !configuration.disable_core_monkey_patch }
|
3
|
+
|
4
|
+
# Needed to avoid active_support (< 4.1.0) bug serializing JSONs
|
5
|
+
dependency { defined?(ActiveSupport::VERSION::STRING) }
|
6
|
+
|
7
|
+
execute do
|
8
|
+
require 'socket'
|
9
|
+
|
10
|
+
class BasicSocket
|
11
|
+
def as_json(*)
|
12
|
+
to_s
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
Rollbar.plugins.define('delayed_job') do
|
2
|
+
dependency { !configuration.disable_monkey_patch }
|
3
|
+
dependency do
|
4
|
+
defined?(Delayed) && defined?(Delayed::Worker) && configuration.delayed_job_enabled
|
5
|
+
end
|
6
|
+
|
7
|
+
execute do
|
8
|
+
require 'rollbar/plugins/delayed_job/plugin'
|
9
|
+
|
10
|
+
Rollbar::Delayed.wrap_worker
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
class JobData
|
2
|
+
attr_reader :job
|
3
|
+
|
4
|
+
def initialize(job)
|
5
|
+
@job = job
|
6
|
+
end
|
7
|
+
|
8
|
+
def to_hash
|
9
|
+
job_data = job.as_json
|
10
|
+
# Here job_data['handler'] is a YAML object comming
|
11
|
+
# from the storage backend
|
12
|
+
job_data['handler'] = job.payload_object.as_json
|
13
|
+
|
14
|
+
job_data
|
15
|
+
end
|
16
|
+
end
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'delayed_job'
|
2
|
+
require 'rollbar/plugins/delayed_job/job_data'
|
2
3
|
|
3
4
|
module Rollbar
|
4
5
|
module Delayed
|
@@ -6,23 +7,6 @@ module Rollbar
|
|
6
7
|
attr_accessor :wrapped
|
7
8
|
end
|
8
9
|
|
9
|
-
class JobData
|
10
|
-
attr_reader :job
|
11
|
-
|
12
|
-
def initialize(job)
|
13
|
-
@job = job
|
14
|
-
end
|
15
|
-
|
16
|
-
def to_hash
|
17
|
-
job_data = job.as_json
|
18
|
-
# Here job_data['handler'] is a YAML object comming
|
19
|
-
# from the storage backend
|
20
|
-
job_data['handler'] = job.payload_object.as_json
|
21
|
-
|
22
|
-
job_data
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
10
|
class RollbarPlugin < ::Delayed::Plugin
|
27
11
|
callbacks do |lifecycle|
|
28
12
|
lifecycle.around(:invoke_job, &Delayed::invoke_job_callback)
|
@@ -0,0 +1,46 @@
|
|
1
|
+
Rollbar.plugins.define('goalie') do
|
2
|
+
dependency { !configuration.disable_monkey_patch }
|
3
|
+
dependency { defined?(Goalie) }
|
4
|
+
|
5
|
+
execute do
|
6
|
+
module Rollbar
|
7
|
+
module Goalie
|
8
|
+
def render_exception_with_rollbar(env, exception)
|
9
|
+
exception_data = nil
|
10
|
+
|
11
|
+
begin
|
12
|
+
controller = env['action_controller.instance']
|
13
|
+
request_data = controller.rollbar_request_data rescue nil
|
14
|
+
person_data = controller.rollbar_person_data rescue nil
|
15
|
+
exception_data = Rollbar.scope(:request => request_data, :person => person_data).error(exception, :use_exception_level_filters => true)
|
16
|
+
rescue => e
|
17
|
+
Rollbar.log_warning "[Rollbar] Exception while reporting exception to Rollbar: #{e}"
|
18
|
+
end
|
19
|
+
|
20
|
+
# if an exception was reported, save uuid in the env
|
21
|
+
# so it can be displayed to the user on the error page
|
22
|
+
if exception_data.is_a?(Hash)
|
23
|
+
env['rollbar.exception_uuid'] = exception_data[:uuid]
|
24
|
+
Rollbar.log_info "[Rollbar] Exception uuid saved in env: #{exception_data[:uuid]}"
|
25
|
+
elsif exception_data == 'disabled'
|
26
|
+
Rollbar.log_info "[Rollbar] Exception not reported because Rollbar is disabled"
|
27
|
+
elsif exception_data == 'ignored'
|
28
|
+
Rollbar.log_info "[Rollbar] Exception not reported because it was ignored"
|
29
|
+
end
|
30
|
+
|
31
|
+
# now continue as normal
|
32
|
+
render_exception_without_rollbar(env, exception)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
execute do
|
39
|
+
Goalie::CustomErrorPages.class_eval do
|
40
|
+
include Rollbar::Goalie
|
41
|
+
|
42
|
+
alias_method :render_exception_without_rollbar, :render_exception
|
43
|
+
alias_method :render_exception, :render_exception_with_rollbar
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
Rollbar.plugins.define('rack') do
|
2
|
+
dependency { !configuration.disable_monkey_patch }
|
3
|
+
dependency { !configuration.disable_rack_monkey_patch }
|
4
|
+
|
5
|
+
execute do
|
6
|
+
if defined?(Rack::Builder)
|
7
|
+
require 'rollbar/middleware/rack/builder'
|
8
|
+
Rack::Builder.send(:include, Rollbar::Middleware::Rack::Builder)
|
9
|
+
end
|
10
|
+
|
11
|
+
if defined?(Rack::Test::Session)
|
12
|
+
require 'rollbar/middleware/rack/test_session'
|
13
|
+
Rack::Test::Session.send(:include, Rollbar::Middleware::Rack::TestSession)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,77 @@
|
|
1
|
+
Rollbar.plugins.define('rails32-errors') do
|
2
|
+
dependency { defined?(Rails::VERSION) && Rails::VERSION::MAJOR >= 3 }
|
3
|
+
dependency { Gem::Version.new(Rails::VERSION::STRING) >= Gem::Version.new('3.2') }
|
4
|
+
|
5
|
+
execute! do
|
6
|
+
require 'rollbar/plugins/rails/railtie32'
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
Rollbar.plugins.define('rails30-errors') do
|
11
|
+
dependency { defined?(Rails::VERSION) && Rails::VERSION::MAJOR >= 3 }
|
12
|
+
dependency { Gem::Version.new(Rails::VERSION::STRING) < Gem::Version.new('3.2') }
|
13
|
+
|
14
|
+
execute! do
|
15
|
+
require 'rollbar/plugins/rails/railtie30'
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
Rollbar.plugins.define('rails-rollbar.js') do
|
20
|
+
dependency { defined?(Rails::VERSION) && Rails::VERSION::MAJOR >= 3 }
|
21
|
+
|
22
|
+
execute! do
|
23
|
+
module Rollbar
|
24
|
+
module Js
|
25
|
+
module Frameworks
|
26
|
+
# Adds Rollbar::Middleware::Js to the Rails middleware stack
|
27
|
+
# We need to delay the final insert to the last moment since
|
28
|
+
# this feature may be disable.
|
29
|
+
# But we need to prepare the middleware insert now because
|
30
|
+
# we need to use our Rails railtie initializer in case the
|
31
|
+
# customer is using SecureHeaders > 3.0
|
32
|
+
class Rails
|
33
|
+
def load(plugin)
|
34
|
+
plugin_execute = plugin_execute_proc(plugin)
|
35
|
+
|
36
|
+
return after_secure_headers(&plugin_execute) if secure_headers_middleware?
|
37
|
+
|
38
|
+
plugin_execute.call
|
39
|
+
end
|
40
|
+
|
41
|
+
def after_secure_headers(&block)
|
42
|
+
Rollbar::Railtie.initializer('rollbar.js.frameworks.rails', :after => 'secure_headers.middleware', &block)
|
43
|
+
end
|
44
|
+
|
45
|
+
def plugin_execute_proc(plugin)
|
46
|
+
proc do
|
47
|
+
plugin.execute do
|
48
|
+
return unless Rollbar.configuration.js_enabled
|
49
|
+
require 'rollbar/middleware/js'
|
50
|
+
|
51
|
+
config = {
|
52
|
+
:options => Rollbar.configuration.js_options,
|
53
|
+
:enabled => Rollbar.configuration.js_enabled
|
54
|
+
}
|
55
|
+
::Rails.configuration.middleware.use(::Rollbar::Middleware::Js, config)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
def secure_headers_middleware?
|
61
|
+
begin
|
62
|
+
require 'secure_headers'
|
63
|
+
rescue LoadError
|
64
|
+
end
|
65
|
+
|
66
|
+
defined?(::SecureHeaders::Middleware)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
execute! do
|
75
|
+
Rollbar::Js::Frameworks::Rails.new.load(self)
|
76
|
+
end
|
77
|
+
end
|
File without changes
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'rails/railtie'
|
2
|
+
require 'rollbar/plugins/rails/railtie_mixin'
|
3
|
+
|
4
|
+
module Rollbar
|
5
|
+
class Railtie < ::Rails::Railtie
|
6
|
+
include Rollbar::RailtieMixin
|
7
|
+
|
8
|
+
initializer 'rollbar.middleware.rails' do |app|
|
9
|
+
require 'rollbar/middleware/rails/rollbar'
|
10
|
+
require 'rollbar/middleware/rails/show_exceptions'
|
11
|
+
|
12
|
+
app.config.middleware.insert_after ActionDispatch::ShowExceptions,
|
13
|
+
Rollbar::Middleware::Rails::RollbarMiddleware
|
14
|
+
ActionDispatch::ShowExceptions.send(:include, Rollbar::Middleware::Rails::ShowExceptions)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'rails/railtie'
|
2
|
+
require 'rollbar/plugins/rails/railtie_mixin'
|
3
|
+
|
4
|
+
module Rollbar
|
5
|
+
class Railtie < ::Rails::Railtie
|
6
|
+
include Rollbar::RailtieMixin
|
7
|
+
|
8
|
+
initializer 'rollbar.middleware.rails' do |app|
|
9
|
+
require 'rollbar/middleware/rails/rollbar'
|
10
|
+
require 'rollbar/middleware/rails/show_exceptions'
|
11
|
+
|
12
|
+
app.config.middleware.insert_after ActionDispatch::DebugExceptions,
|
13
|
+
Rollbar::Middleware::Rails::RollbarMiddleware
|
14
|
+
ActionDispatch::DebugExceptions.send(:include, Rollbar::Middleware::Rails::ShowExceptions)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'rollbar'
|
2
|
+
|
3
|
+
module Rollbar
|
4
|
+
module RailtieMixin
|
5
|
+
extend ActiveSupport::Concern
|
6
|
+
|
7
|
+
included do
|
8
|
+
rake_tasks do
|
9
|
+
require 'rollbar/rake_tasks'
|
10
|
+
end
|
11
|
+
|
12
|
+
initializer 'rollbar.configuration' do
|
13
|
+
config.after_initialize do
|
14
|
+
Rollbar.preconfigure do |config|
|
15
|
+
config.default_logger = proc { ::Rails.logger }
|
16
|
+
config.environment ||= ::Rails.env
|
17
|
+
config.root ||= ::Rails.root
|
18
|
+
config.framework = "Rails: #{::Rails::VERSION::STRING}"
|
19
|
+
config.filepath ||= ::Rails.application.class.parent_name + '.rollbar'
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
initializer 'rollbar.controller_methods' do
|
25
|
+
ActiveSupport.on_load(:action_controller) do
|
26
|
+
# lazily load action_controller methods
|
27
|
+
require 'rollbar/plugins/rails/controller_methods'
|
28
|
+
include Rollbar::Rails::ControllerMethods
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
Rollbar.plugins.define('rake') do
|
2
|
+
dependency { !configuration.disable_monkey_patch }
|
3
|
+
dependency { defined?(Rake) }
|
4
|
+
|
5
|
+
module Rollbar
|
6
|
+
module Rake
|
7
|
+
def self.patch!
|
8
|
+
skip_patch && return unless patch?
|
9
|
+
|
10
|
+
::Rake::Application.class_eval do
|
11
|
+
alias_method :orig_display_error_message, :display_error_message
|
12
|
+
|
13
|
+
def display_error_message(ex)
|
14
|
+
Rollbar.error(ex, :use_exception_level_filters => true)
|
15
|
+
orig_display_error_message(ex)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.skip_patch
|
21
|
+
warn('[Rollbar] Rollbar is disabled for Rake tasks since your Rake version is under 0.9.x. Please upgrade to 0.9.x or higher.')
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.patch?
|
25
|
+
return false unless rake_version
|
26
|
+
|
27
|
+
major, minor, = rake_version.split('.').map(&:to_i)
|
28
|
+
|
29
|
+
major > 0 || major == 0 && minor > 8
|
30
|
+
end
|
31
|
+
|
32
|
+
def self.rake_version
|
33
|
+
if Object.const_defined?('RAKEVERSION')
|
34
|
+
return RAKEVERSION
|
35
|
+
elsif ::Rake.const_defined?('VERSION')
|
36
|
+
return ::Rake::VERSION
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
execute do
|
43
|
+
Rollbar::Rake.patch!
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
Rollbar.plugins.define('sidekiq >= 3') do
|
2
|
+
dependency { !configuration.disable_monkey_patch }
|
3
|
+
dependency { defined?(Sidekiq) }
|
4
|
+
dependency { Sidekiq::VERSION.split('.')[0].to_i >= 3 }
|
5
|
+
|
6
|
+
execute do
|
7
|
+
require 'rollbar/plugins/sidekiq/plugin'
|
8
|
+
|
9
|
+
Sidekiq.configure_server do |config|
|
10
|
+
config.server_middleware do |chain|
|
11
|
+
chain.add Rollbar::Sidekiq::ClearScope
|
12
|
+
end
|
13
|
+
|
14
|
+
config.error_handlers << proc do |e, context|
|
15
|
+
Rollbar::Sidekiq.handle_exception(context, e)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
Rollbar.plugins.define('sidekiq < 3') do
|
22
|
+
dependency { !configuration.disable_monkey_patch }
|
23
|
+
dependency { defined?(Sidekiq) }
|
24
|
+
dependency { Sidekiq::VERSION.split('.')[0].to_i < 3 }
|
25
|
+
|
26
|
+
execute do
|
27
|
+
require 'rollbar/plugins/sidekiq/plugin'
|
28
|
+
|
29
|
+
Sidekiq.configure_server do |config|
|
30
|
+
config.server_middleware do |chain|
|
31
|
+
chain.add Rollbar::Sidekiq
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -1,5 +1,3 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
1
|
module Rollbar
|
4
2
|
class Sidekiq
|
5
3
|
PARAM_BLACKLIST = %w[backtrace error_backtrace error_message error_class]
|
@@ -43,19 +41,3 @@ module Rollbar
|
|
43
41
|
end
|
44
42
|
end
|
45
43
|
end
|
46
|
-
|
47
|
-
Sidekiq.configure_server do |config|
|
48
|
-
if Sidekiq::VERSION.split('.')[0].to_i < 3
|
49
|
-
config.server_middleware do |chain|
|
50
|
-
chain.add Rollbar::Sidekiq
|
51
|
-
end
|
52
|
-
else
|
53
|
-
config.server_middleware do |chain|
|
54
|
-
chain.add Rollbar::Sidekiq::ClearScope
|
55
|
-
end
|
56
|
-
|
57
|
-
config.error_handlers << proc do |e, context|
|
58
|
-
Rollbar::Sidekiq.handle_exception(context, e)
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|