Sha256: 4b938e17b6a0c6c818c9f19aed828cc03c9a813ba92f23689dc234572ba58f44

Contents?: true

Size: 1.28 KB

Versions: 8

Compression:

Stored size: 1.28 KB

Contents

# Rails 3
module ScoutRails::Instruments
  module ActionControllerInstruments
    # Instruments the action and tracks errors.
    def process_action(*args)
      scout_controller_action = "Controller/#{controller_path}/#{action_name}"
      #ScoutRails::Agent.instance.logger.debug "Processing #{scout_controller_action}"
      self.class.trace(scout_controller_action, :uri => request.fullpath) do
        begin
          super
        rescue Exception => e
          ScoutRails::Agent.instance.store.track!("Errors/Request",1, :scope => nil)
          raise
        ensure
          Thread::current[:scout_scope_name] = nil
        end
      end
    end
  end
end

if defined?(ActionController) && defined?(ActionController::Base)
  ScoutRails::Agent.instance.logger.debug "Instrumenting ActionController::Base"
  ActionController::Base.class_eval do
    include ScoutRails::Tracer
    include ::ScoutRails::Instruments::ActionControllerInstruments
  end
end

if defined?(ActionView) && defined?(ActionView::PartialRenderer)
  ScoutRails::Agent.instance.logger.debug "Instrumenting ActionView::PartialRenderer"
  ActionView::PartialRenderer.class_eval do
    include ScoutRails::Tracer
    instrument_method :render_partial, :metric_name => 'View/#{@template.virtual_path}/Rendering', :scope => true
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
scout_rails-1.0.2.pre lib/scout_rails/instruments/rails3/action_controller_instruments.rb
scout_rails-1.0.1 lib/scout_rails/instruments/rails3/action_controller_instruments.rb
scout_rails-1.0.1.pre3 lib/scout_rails/instruments/rails3/action_controller_instruments.rb
scout_rails-1.0.1.pre2 lib/scout_rails/instruments/rails3/action_controller_instruments.rb
scout_rails-1.0.1.pre lib/scout_rails/instruments/rails3/action_controller_instruments.rb
scout_rails-1.0.0 lib/scout_rails/instruments/rails3/action_controller_instruments.rb
scout_rails-0.0.5 lib/scout_rails/instruments/rails3/action_controller_instruments.rb
scout_rails-0.0.5.pre lib/scout_rails/instruments/rails3/action_controller_instruments.rb