Sha256: d98a47b50c8fcce16f0e3c7be10668ef14558c48143c64dc4ab51d9be80166a3

Contents?: true

Size: 1.05 KB

Versions: 50

Compression:

Stored size: 1.05 KB

Contents

# frozen_string_literal: true

module Appsignal
  module Integrations
    # @api private
    module WebmachineIntegration
      def run
        has_parent_transaction = Appsignal::Transaction.current?
        transaction =
          if has_parent_transaction
            Appsignal::Transaction.current
          else
            Appsignal::Transaction.create(Appsignal::Transaction::HTTP_REQUEST)
          end
        transaction.add_params_if_nil { request.query }
        transaction.add_headers_if_nil { request.headers if request.respond_to?(:headers) }

        Appsignal.instrument("process_action.webmachine") do
          super
        end
      ensure
        transaction.set_action_if_nil("#{resource.class.name}##{request.method}")

        Appsignal::Transaction.complete_current! unless has_parent_transaction
      end

      private

      def handle_exceptions
        super do
          yield
        rescue Exception => e # rubocop:disable Lint/RescueException
          Appsignal.set_error(e)
          raise e
        end
      end
    end
  end
end

Version data entries

50 entries across 50 versions & 1 rubygems

Version Path
appsignal-4.4.0-java lib/appsignal/integrations/webmachine.rb
appsignal-4.4.0 lib/appsignal/integrations/webmachine.rb
appsignal-4.3.3-java lib/appsignal/integrations/webmachine.rb
appsignal-4.3.3 lib/appsignal/integrations/webmachine.rb
appsignal-4.3.2-java lib/appsignal/integrations/webmachine.rb
appsignal-4.3.2 lib/appsignal/integrations/webmachine.rb
appsignal-4.3.1-java lib/appsignal/integrations/webmachine.rb
appsignal-4.3.1 lib/appsignal/integrations/webmachine.rb
appsignal-4.3.0-java lib/appsignal/integrations/webmachine.rb
appsignal-4.3.0 lib/appsignal/integrations/webmachine.rb
appsignal-4.2.3-java lib/appsignal/integrations/webmachine.rb
appsignal-4.2.3 lib/appsignal/integrations/webmachine.rb
appsignal-4.2.2-java lib/appsignal/integrations/webmachine.rb
appsignal-4.2.2 lib/appsignal/integrations/webmachine.rb
appsignal-4.2.1-java lib/appsignal/integrations/webmachine.rb
appsignal-4.2.1 lib/appsignal/integrations/webmachine.rb
appsignal-4.2.0-java lib/appsignal/integrations/webmachine.rb
appsignal-4.2.0 lib/appsignal/integrations/webmachine.rb
appsignal-4.1.3-java lib/appsignal/integrations/webmachine.rb
appsignal-4.1.3 lib/appsignal/integrations/webmachine.rb