class NetuitiveRailsAgent::ActionControllerSub

Attributes

interaction[R]

Public Class Methods

new(interaction) click to toggle source
# File lib/netuitive_rails_agent/action_controller.rb, line 13
def initialize(interaction)
  @interaction = interaction
end

Public Instance Methods

expire_fragment() click to toggle source
# File lib/netuitive_rails_agent/action_controller.rb, line 78
def expire_fragment
  interaction.aggregate_metric('action_controller.expire_fragment', 1)
end
expire_page() click to toggle source
# File lib/netuitive_rails_agent/action_controller.rb, line 86
def expire_page
  interaction.aggregate_metric('action_controller.expire_page', 1)
end
halted_callback() click to toggle source
# File lib/netuitive_rails_agent/action_controller.rb, line 98
def halted_callback
  interaction.aggregate_metric('action_controller.halted_callback', 1)
end
process_action(*args) click to toggle source
# File lib/netuitive_rails_agent/action_controller.rb, line 47
def process_action(*args)
  NetuitiveRailsAgent::ErrorLogger.guard('error during process_action') do
    event = ActiveSupport::Notifications::Event.new(*args)
    controller = event.payload[:controller].to_s
    action = event.payload[:action].to_s
    ac_whitelist_string = NetuitiveRailsAgent::ConfigManager.action_controller_whitelist
    if controller =~ /#{ac_whitelist_string}/
      interaction.add_sample("action_controller.#{controller}.#{action}.request.total_duration", event.duration)
      interaction.add_sample("action_controller.#{controller}.#{action}.request.query_time", event.payload[:db_runtime])
      interaction.add_sample("action_controller.#{controller}.#{action}.request.view_time", event.payload[:view_runtime])
      interaction.add_sample("action_controller.#{controller}.request.total_duration", event.duration)
      interaction.add_sample("action_controller.#{controller}.request.query_time", event.payload[:db_runtime])
      interaction.add_sample("action_controller.#{controller}.request.view_time", event.payload[:view_runtime])
      interaction.aggregate_metric("action_controller.#{controller}.#{action}.total_requests", 1)
      interaction.aggregate_metric("action_controller.#{controller}.total_requests", 1)
    end
    interaction.add_sample('action_controller.request.total_duration', event.duration)
    interaction.add_sample('action_controller.request.query_time', event.payload[:db_runtime])
    interaction.add_sample('action_controller.request.view_time', event.payload[:view_runtime])
    interaction.aggregate_metric('action_controller.total_requests', 1)
  end
end
read_fragment() click to toggle source
# File lib/netuitive_rails_agent/action_controller.rb, line 74
def read_fragment
  interaction.aggregate_metric('action_controller.read_fragment', 1)
end
redirect_to() click to toggle source
# File lib/netuitive_rails_agent/action_controller.rb, line 94
def redirect_to
  interaction.aggregate_metric('action_controller.redirect', 1)
end
send_file() click to toggle source
# File lib/netuitive_rails_agent/action_controller.rb, line 90
def send_file
  interaction.aggregate_metric('action_controller.sent_file', 1)
end
subscribe() click to toggle source
# File lib/netuitive_rails_agent/action_controller.rb, line 17
def subscribe
  ActiveSupport::Notifications.subscribe(/process_action.action_controller/) do |*args|
    process_action(*args)
  end
  ActiveSupport::Notifications.subscribe(/write_fragment.action_controller/) do |*_args|
    write_fragment
  end
  ActiveSupport::Notifications.subscribe(/read_fragment.action_controller/) do |*_args|
    read_fragment
  end
  ActiveSupport::Notifications.subscribe(/expire_fragment.action_controller/) do |*_args|
    expire_fragment
  end
  ActiveSupport::Notifications.subscribe(/write_page.action_controller/) do |*_args|
    write_page
  end
  ActiveSupport::Notifications.subscribe(/expire_page.action_controller/) do |*_args|
    expire_page
  end
  ActiveSupport::Notifications.subscribe(/send_file.action_controller/) do |*_args|
    send_file
  end
  ActiveSupport::Notifications.subscribe(/redirect_to.action_controller/) do |*_args|
    redirect_to
  end
  ActiveSupport::Notifications.subscribe(/halted_callback.action_controller/) do |*_args|
    halted_callback
  end
end
write_fragment() click to toggle source
# File lib/netuitive_rails_agent/action_controller.rb, line 70
def write_fragment
  interaction.aggregate_metric('action_controller.write_fragment', 1)
end
write_page() click to toggle source
# File lib/netuitive_rails_agent/action_controller.rb, line 82
def write_page
  interaction.aggregate_metric('action_controller.write_page', 1)
end