Sha256: c0503fd952e514bba59deb5529bbcbed2de677c76e34704155221e9d3a07df02

Contents?: true

Size: 1.18 KB

Versions: 20

Compression:

Stored size: 1.18 KB

Contents

require 'shoryuken'

module Bugsnag
  ##
  # Extracts and attaches Shoryuken queue information to an error report
  class Shoryuken

    FRAMEWORK_ATTRIBUTES = {
      :framework => "Shoryuken"
    }

    def initialize
      Bugsnag.configure do |config|
        config.detected_app_type = "shoryuken"
        config.default_delivery_method = :synchronous
        config.runtime_versions["shoryuken"] = ::Shoryuken::VERSION
      end
    end

    def call(_, queue, _, body)
      begin
        Bugsnag.before_notify_callbacks << lambda {|report|
          report.add_tab(:shoryuken, {
            queue: queue,
            body: body
          })
        }

        yield
      rescue Exception => ex
        Bugsnag.notify(ex, true) do |report|
          report.severity = "error"
          report.severity_reason = {
            :type => Bugsnag::Report::UNHANDLED_EXCEPTION_MIDDLEWARE,
            :attributes => Bugsnag::Shoryuken::FRAMEWORK_ATTRIBUTES
          }
        end
        raise
      ensure
        Bugsnag.configuration.clear_request_data
      end
    end
  end
end

::Shoryuken.configure_server do |config|
  config.server_middleware do |chain|
    chain.add ::Bugsnag::Shoryuken
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
bugsnag-6.27.1 lib/bugsnag/integrations/shoryuken.rb
bugsnag-6.26.4 lib/bugsnag/integrations/shoryuken.rb
bugsnag-6.26.3 lib/bugsnag/integrations/shoryuken.rb
bugsnag-6.26.2 lib/bugsnag/integrations/shoryuken.rb
bugsnag-6.26.1 lib/bugsnag/integrations/shoryuken.rb
bugsnag-6.26.0 lib/bugsnag/integrations/shoryuken.rb
bugsnag-6.25.2 lib/bugsnag/integrations/shoryuken.rb
bugsnag-6.25.1 lib/bugsnag/integrations/shoryuken.rb
bugsnag-6.25.0 lib/bugsnag/integrations/shoryuken.rb
bugsnag-6.24.2 lib/bugsnag/integrations/shoryuken.rb
bugsnag-6.24.1 lib/bugsnag/integrations/shoryuken.rb
bugsnag-6.24.0 lib/bugsnag/integrations/shoryuken.rb
bugsnag-6.23.0 lib/bugsnag/integrations/shoryuken.rb
bugsnag-6.22.1 lib/bugsnag/integrations/shoryuken.rb
bugsnag-6.21.0 lib/bugsnag/integrations/shoryuken.rb
bugsnag-6.20.0 lib/bugsnag/integrations/shoryuken.rb
bugsnag-6.19.0 lib/bugsnag/integrations/shoryuken.rb
bugsnag-6.18.0 lib/bugsnag/integrations/shoryuken.rb
bugsnag-6.17.0 lib/bugsnag/integrations/shoryuken.rb
bugsnag-6.16.0 lib/bugsnag/integrations/shoryuken.rb