Sha256: 9983f08f7775050ff9eb503a3dd698266ab05b1e4044013254ccbff5406ce50f

Contents?: true

Size: 1.32 KB

Versions: 23

Compression:

Stored size: 1.32 KB

Contents

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

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

      def process_action(method_name, *args)
        kvs = {
            :Controller   => self.class.name,
            :Action       => self.action_name
        }
        request.env['appoptics_apm.controller'] = kvs[:Controller]
        request.env['appoptics_apm.action'] = kvs[:Action]

        return super(method_name, *args) unless AppOpticsAPM.tracing?
        begin
          kvs[:Backtrace] = AppOpticsAPM::API.backtrace if AppOpticsAPM::Config[:action_controller_api][:collect_backtraces]

          AppOpticsAPM::API.log_entry('rails-api', kvs)
          super(method_name, *args)

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

      #
      # render
      #
      # Our render wrapper that calls 'trace', which will log if we are tracing
      #
      def render(*args, &blk)
        trace('actionview') do
          super(*args, &blk)
        end
      end
    end
  end
end

Version data entries

23 entries across 23 versions & 3 rubygems

Version Path
appoptics_apm-zearn-4.13.1 lib/appoptics_apm/frameworks/rails/inst/action_controller_api.rb
appoptics_apm-4.13.0 lib/appoptics_apm/frameworks/rails/inst/action_controller_api.rb
appoptics_apm-4.12.2 lib/appoptics_apm/frameworks/rails/inst/action_controller_api.rb
appoptics_apm-4.12.1 lib/appoptics_apm/frameworks/rails/inst/action_controller_api.rb
appoptics_apm-4.12.0 lib/appoptics_apm/frameworks/rails/inst/action_controller_api.rb
appoptics_apm-4.11.2 lib/appoptics_apm/frameworks/rails/inst/action_controller_api.rb
appoptics_apm-4.11.1 lib/appoptics_apm/frameworks/rails/inst/action_controller_api.rb
appoptics_apm-4.11.0 lib/appoptics_apm/frameworks/rails/inst/action_controller_api.rb
appoptics_apm-4.10.1 lib/appoptics_apm/frameworks/rails/inst/action_controller_api.rb
appoptics_apm-4.10.0 lib/appoptics_apm/frameworks/rails/inst/action_controller_api.rb
appoptics_apm-4.9.0 lib/appoptics_apm/frameworks/rails/inst/action_controller_api.rb
appoptics_apm-4.8.4 lib/appoptics_apm/frameworks/rails/inst/action_controller_api.rb
appoptics_apm-4.8.3 lib/appoptics_apm/frameworks/rails/inst/action_controller_api.rb
appoptics_apm-4.8.2 lib/appoptics_apm/frameworks/rails/inst/action_controller_api.rb
appoptics_apm-4.8.1 lib/appoptics_apm/frameworks/rails/inst/action_controller_api.rb
appoptics_apm-4.8.0 lib/appoptics_apm/frameworks/rails/inst/action_controller_api.rb
appoptics_apm-4.7.0 lib/appoptics_apm/frameworks/rails/inst/action_controller_api.rb
appoptics_apm-4.6.0 lib/appoptics_apm/frameworks/rails/inst/action_controller_api.rb
appoptics_apm_mnfst-4.5.2 lib/appoptics_apm/frameworks/rails/inst/action_controller_api.rb
appoptics_apm-4.5.2 lib/appoptics_apm/frameworks/rails/inst/action_controller_api.rb