Skip to content

Commit

Permalink
Merge pull request #332 from johankok/add-rollbar-as-error-handler
Browse files Browse the repository at this point in the history
Added error handler for Rollbar
  • Loading branch information
michaelklishin committed Jul 2, 2019
2 parents 9314b3b + 29f8a3b commit 79b2dc0
Show file tree
Hide file tree
Showing 4 changed files with 75 additions and 0 deletions.
1 change: 1 addition & 0 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ group :development, :test do
gem "coveralls", "~> 0.8.15", require: false
gem "newrelic_rpm"
gem "airbrake", "~> 9.0"
gem "rollbar"
end

group :development, :darwin do
Expand Down
1 change: 1 addition & 0 deletions lib/hutch/error_handlers.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,6 @@ module ErrorHandlers
autoload :Sentry, 'hutch/error_handlers/sentry'
autoload :Honeybadger, 'hutch/error_handlers/honeybadger'
autoload :Airbrake, 'hutch/error_handlers/airbrake'
autoload :Rollbar, 'hutch/error_handlers/rollbar'
end
end
28 changes: 28 additions & 0 deletions lib/hutch/error_handlers/rollbar.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
require 'hutch/logging'
require 'rollbar'
require 'hutch/error_handlers/base'

module Hutch
module ErrorHandlers
class Rollbar < Base
def handle(properties, payload, consumer, ex)
message_id = properties.message_id
prefix = "message(#{message_id || '-'}):"
logger.error "#{prefix} Logging event to Rollbar"
logger.error "#{prefix} #{ex.class} - #{ex.message}"

::Rollbar.error(ex,
payload: payload,
consumer: consumer
)
end

def handle_setup_exception(ex)
logger.error "Logging setup exception to Rollbar"
logger.error "#{ex.class} - #{ex.message}"

::Rollbar.error(ex)
end
end
end
end
45 changes: 45 additions & 0 deletions spec/hutch/error_handlers/rollbar_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
require 'spec_helper'

describe Hutch::ErrorHandlers::Rollbar do
let(:error_handler) { Hutch::ErrorHandlers::Rollbar.new }

describe '#handle' do
let(:error) do
begin
raise "Stuff went wrong"
rescue RuntimeError => err
err
end
end

it "logs the error to Rollbar" do
message_id = "1"
properties = OpenStruct.new(message_id: message_id)
payload = "{}"
consumer = double
ex = error
message = {
payload: payload,
consumer: consumer
}
expect(::Rollbar).to receive(:error).with(ex, message)
error_handler.handle(properties, payload, consumer, ex)
end
end

describe '#handle_setup_exception' do
let(:error) do
begin
raise "Stuff went wrong"
rescue RuntimeError => err
err
end
end

it "logs the error to Rollbar" do
ex = error
expect(::Rollbar).to receive(:error).with(ex)
error_handler.handle_setup_exception(ex)
end
end
end

0 comments on commit 79b2dc0

Please sign in to comment.