Module: ScoutApm::Instruments::ActionControllerRails3Instruments

Defined in:
lib/scout_apm/instruments/action_controller_rails_3.rb

Instance Method Summary collapse

Instance Method Details

#process_action(*args) ⇒ Object

Instruments the action and tracks errors.



54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/scout_apm/instruments/action_controller_rails_3.rb', line 54

def process_action(*args)
  scout_controller_action = "Controller/#{controller_path}/#{action_name}"

  self.class.scout_apm_trace(scout_controller_action, :uri => request.fullpath, :ip => request.remote_ip) do
    Thread::current[:scout_apm_prof] = nil
    StackProf.start(:mode => :wall, :interval => ScoutApm::Agent.instance.config.value("stackprof_interval"))

    begin
      super
    rescue Exception
      ScoutApm::Agent.instance.store.track!("Errors/Request", 1, :scope => nil)
      raise
    ensure
      Thread::current[:scout_apm_scope_name] = nil
      StackProf.stop
      Thread::current[:scout_apm_prof] = StackProf.results
    end
  end
end