Skip to content

Commit

Permalink
Merge pull request #68 from AirHelp/ECHO-1987
Browse files Browse the repository at this point in the history
[ECHO-1987] Add a Sentry error handler
  • Loading branch information
rapsad authored Feb 23, 2024
2 parents 52b99cf + cd9938b commit d8a5927
Show file tree
Hide file tree
Showing 5 changed files with 57 additions and 17 deletions.
32 changes: 16 additions & 16 deletions Gemfile.lock
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
PATH
remote: .
specs:
eventboss (1.8.0)
eventboss (1.8.1)
aws-sdk-sns (>= 1.1.0)
aws-sdk-sqs (>= 1.3.0)
dotenv (~> 2.1, >= 2.1.1)
Expand All @@ -10,26 +10,26 @@ PATH
GEM
remote: https://rubygems.org/
specs:
aws-eventstream (1.2.0)
aws-partitions (1.568.0)
aws-sdk-core (3.130.0)
aws-eventstream (~> 1, >= 1.0.2)
aws-partitions (~> 1, >= 1.525.0)
aws-sigv4 (~> 1.1)
jmespath (~> 1.0)
aws-sdk-sns (1.53.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-eventstream (1.3.0)
aws-partitions (1.894.0)
aws-sdk-core (3.191.3)
aws-eventstream (~> 1, >= 1.3.0)
aws-partitions (~> 1, >= 1.651.0)
aws-sigv4 (~> 1.8)
jmespath (~> 1, >= 1.6.1)
aws-sdk-sns (1.72.0)
aws-sdk-core (~> 3, >= 3.191.0)
aws-sigv4 (~> 1.1)
aws-sdk-sqs (1.51.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sdk-sqs (1.70.0)
aws-sdk-core (~> 3, >= 3.191.0)
aws-sigv4 (~> 1.1)
aws-sigv4 (1.4.0)
aws-sigv4 (1.8.0)
aws-eventstream (~> 1, >= 1.0.2)
diff-lcs (1.5.0)
dotenv (2.7.6)
jmespath (1.6.1)
dotenv (2.8.1)
jmespath (1.6.2)
rake (13.0.6)
rexml (3.2.5)
rexml (3.2.6)
rspec (3.11.0)
rspec-core (~> 3.11.0)
rspec-expectations (~> 3.11.0)
Expand Down
17 changes: 17 additions & 0 deletions lib/eventboss/error_handlers/sentry.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
module Eventboss
module ErrorHandlers
class Sentry
def call(exception, context = {})
eventboss_context = { component: 'eventboss' }
eventboss_context[:action] = context[:processor].class.to_s if context[:processor]

::Sentry.with_scope do |scope|
scope.set_tags(
context.merge(eventboss_context)
)
::Sentry.capture_exception(exception)
end
end
end
end
end
1 change: 1 addition & 0 deletions lib/eventboss/extensions.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
require 'eventboss/error_handlers/logger'
require 'eventboss/error_handlers/airbrake'
require 'eventboss/error_handlers/rollbar'
require 'eventboss/error_handlers/sentry'
require 'eventboss/error_handlers/db_connection_drop_handler'
require 'eventboss/error_handlers/db_connection_not_established_handler'
require 'eventboss/error_handlers/non_existent_queue_handler'
2 changes: 1 addition & 1 deletion lib/eventboss/version.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
module Eventboss
VERSION = "1.8.0"
VERSION = "1.8.1"
end
22 changes: 22 additions & 0 deletions spec/eventboss/error_handlers/sentry_handler_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
require 'spec_helper'

describe Eventboss::ErrorHandlers::Sentry do
module Sentry; end

subject { described_class.new }

let(:some_error) { double(class: StandardError) }
let(:sentry_with_scope_mock) { double(class: ::Sentry) }

context 'when receiving some exception' do

it 'calls Sentry.capture_exception' do
expect(::Sentry).to receive(:with_scope).and_yield(sentry_with_scope_mock)

expect(sentry_with_scope_mock).to receive(:set_tags).with(hash_including({ component: 'eventboss' }))
expect(::Sentry).to receive(:capture_exception).with(some_error)

subject.call(some_error)
end
end
end

0 comments on commit d8a5927

Please sign in to comment.