Gemfile 🔗
@@ -13,6 +13,7 @@ gem 'lazy_object'
gem 'log4r'
gem 'rack', '< 2'
gem 'redis'
+gem "sentry-ruby", "<= 4.3.1"
group :development do
gem 'rubocop', require: false
Stephen Paul Weber created
Gemfile | 1 +
sgx-bwmsgsv2.rb | 8 ++++++++
2 files changed, 9 insertions(+)
@@ -13,6 +13,7 @@ gem 'lazy_object'
gem 'log4r'
gem 'rack', '< 2'
gem 'redis'
+gem "sentry-ruby", "<= 4.3.1"
group :development do
gem 'rubocop', require: false
@@ -24,6 +24,7 @@ require 'em-hiredis'
require 'em-http-request'
require 'json'
require 'securerandom'
+require "sentry-ruby"
require 'time'
require 'uri'
require 'webrick'
@@ -36,7 +37,10 @@ require 'em_promise'
require_relative 'lib/registration_repo'
+Sentry.init
+
def panic(e)
+ Sentry.capture_exception(e)
puts "Shutting down gateway due to exception: #{e.message}"
puts e.backtrace
SGXbwmsgsv2.shutdown
@@ -44,6 +48,8 @@ def panic(e)
EM.stop
end
+EM.error_handler(&method(:panic))
+
def extract_shortcode(dest)
num, context = dest.split(';', 2)
num if context == 'phone-context=ca-us.phone-context.soprani.ca'
@@ -743,6 +749,7 @@ class ReceiptMessage < Blather::Stanza
end
class WebhookHandler < Goliath::API
+ use Sentry::Rack::CaptureExceptions
use Goliath::Rack::Params
def response(env)
@@ -986,6 +993,7 @@ class WebhookHandler < Goliath::API
[200, {}, "OK"]
rescue Exception => e
+ Sentry.capture_exception(e)
puts 'Shutting down gateway due to exception 013: ' + e.message
SGXbwmsgsv2.shutdown
puts 'Gateway has terminated.'