Sha256: e93681be89d85a2aaad14eacd4e04b36eabc5fff1f2aa8fd583414220c0ce765

Contents?: true

Size: 1.85 KB

Versions: 16

Compression:

Stored size: 1.85 KB

Contents

# Copyright (c) 2016 SolarWinds, LLC.
# All rights reserved.

module AppOpticsAPM
  module Inst
    #
    # ActionController
    #
    # This modules contains the instrumentation code specific
    # to Rails v2
    #
    module ActionController
      include ::AppOpticsAPM::Inst::RailsBase

      def self.included(klass)
        ::AppOpticsAPM::Util.method_alias(klass, :perform_action)
        ::AppOpticsAPM::Util.method_alias(klass, :rescue_action)
        ::AppOpticsAPM::Util.method_alias(klass, :process)
        ::AppOpticsAPM::Util.method_alias(klass, :render)
      end

      def process_with_appoptics(*args)
        AppOpticsAPM::API.log_entry('rails')
        process_without_appoptics(*args)

      rescue Exception => e
        AppOpticsAPM::API.log_exception(nil, e) if log_rails_error?(e)
        raise
      ensure
        AppOpticsAPM::API.log_exit('rails')
      end

      def perform_action_with_appoptics(*arguments)
        kvs = {
          :Controller  => @_request.path_parameters['controller'],
          :Action      => @_request.path_parameters['action']
        }
        kvs[:Backtrace] = AppOpticsAPM::API.backtrace if AppOpticsAPM::Config[:action_controller][:collect_backtraces]

        AppOpticsAPM::API.log(nil, 'info', kvs)
        perform_action_without_appoptics(*arguments)
      end

      def rescue_action_with_appoptics(exn)
        AppOpticsAPM::API.log_exception(nil, exn) if log_rails_error?(exn)
        rescue_action_without_appoptics(exn)
      end

      def render_with_appoptics(options = nil, extra_options = {}, &block)
        AppOpticsAPM::API.log_entry('actionview')
        render_without_appoptics(options, extra_options, &block)

      rescue Exception => e
        AppOpticsAPM::API.log_exception(nil, e) if log_rails_error?(e)
        raise
      ensure
        AppOpticsAPM::API.log_exit('actionview')
      end
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
appoptics_apm-4.2.3 lib/appoptics_apm/frameworks/rails/inst/action_controller2.rb
appoptics_apm-4.2.2 lib/appoptics_apm/frameworks/rails/inst/action_controller2.rb
appoptics_apm-4.2.1 lib/appoptics_apm/frameworks/rails/inst/action_controller2.rb
appoptics_apm-4.2.0 lib/appoptics_apm/frameworks/rails/inst/action_controller2.rb
appoptics_apm-4.1.2 lib/appoptics_apm/frameworks/rails/inst/action_controller2.rb
appoptics_apm-4.0.9 lib/appoptics_apm/frameworks/rails/inst/action_controller2.rb
appoptics_apm-4.1.1 lib/appoptics_apm/frameworks/rails/inst/action_controller2.rb
appoptics_apm-4.0.8 lib/appoptics_apm/frameworks/rails/inst/action_controller2.rb
appoptics_apm-4.1.0 lib/appoptics_apm/frameworks/rails/inst/action_controller2.rb
appoptics_apm-4.0.7 lib/appoptics_apm/frameworks/rails/inst/action_controller2.rb
appoptics_apm-4.0.6 lib/appoptics_apm/frameworks/rails/inst/action_controller2.rb
appoptics_apm-4.0.5 lib/appoptics_apm/frameworks/rails/inst/action_controller2.rb
appoptics_apm-4.0.4 lib/appoptics_apm/frameworks/rails/inst/action_controller2.rb
appoptics_apm-4.0.3 lib/appoptics_apm/frameworks/rails/inst/action_controller2.rb
appoptics_apm-4.0.2 lib/appoptics_apm/frameworks/rails/inst/action_controller2.rb
appoptics_apm-4.0.1-x86_64-linux lib/appoptics_apm/frameworks/rails/inst/action_controller2.rb