class ActionController::StatsSubscriber

Public Instance Methods

action_controller_process_action_count() click to toggle source
# File lib/gremlin/railtie.rb, line 45
def action_controller_process_action_count
  @process_action_count ||= Gremlin.registry.register Gremlin::Instruments::Counter.new("action_controller_process_action_count",
                                                                                        "Count of process_action.action_controller notifications handled by Gremlin.",
                                                                                        basic_labels)
end
action_controller_process_action_db_runtime_ms() click to toggle source
# File lib/gremlin/railtie.rb, line 57
def action_controller_process_action_db_runtime_ms
  @process_action_db_runtime ||= Gremlin.registry.register Gremlin::Instruments::Summary.new("action_controller_process_action_db_runtime_ms",
                                                                                             "ActionController process action db runtime in milliseconds.",
                                                                                             basic_labels)
end
action_controller_process_action_total_runtime_ms() click to toggle source
# File lib/gremlin/railtie.rb, line 63
def action_controller_process_action_total_runtime_ms
  @process_action_total_runtime ||= Gremlin.registry.register Gremlin::Instruments::Summary.new("action_controller_process_action_total_runtime_ms",
                                                                                                "ActionController process action total runtime in milliseconds.",
                                                                                                basic_labels)
end
action_controller_process_action_view_runtime_ms() click to toggle source
# File lib/gremlin/railtie.rb, line 51
def action_controller_process_action_view_runtime_ms
  @process_action_view_runtime ||= Gremlin.registry.register Gremlin::Instruments::Summary.new("action_controller_process_action_view_runtime_ms",
                                                                                               "ActionController process action view runtime in milliseconds.",
                                                                                               basic_labels)
end
action_controller_start_processing_count() click to toggle source
# File lib/gremlin/railtie.rb, line 39
def action_controller_start_processing_count
  @start_processing_count ||= Gremlin.registry.register Gremlin::Instruments::Counter.new("action_controller_start_processing_count",
                                                                                          "Count of start_processing.action_controller notifications handled by Gremlin.",
                                                                                          basic_labels)
end
basic_labels() click to toggle source
# File lib/gremlin/railtie.rb, line 25
def basic_labels
  environment      = ::Rails.env.to_s
  application_name = ::Rails.application.class.parent_name.downcase
  node             = `hostname`.strip

  { node: node, app: application_name, env: environment }
end
notification_count() click to toggle source
# File lib/gremlin/railtie.rb, line 33
def notification_count
  @notification_count ||= Gremlin.registry.register Gremlin::Instruments::Counter.new("notification_count",
                                                                                      "Count of notifications handled by Gremlin.",
                                                                                      basic_labels)
end
process_action(event) click to toggle source
# File lib/gremlin/railtie.rb, line 69
def process_action(event)
  return if Gremlin.disabled?
  notification_count.increment

  action_controller_process_action_count.increment({ controller: event.payload[:controller].to_s,
                                                     format: event.payload[:format].to_s,
                                                     action: event.payload[:action],
                                                     status: event.payload[:status] })

  begin
  action_controller_process_action_view_runtime_ms.observe({ controller: event.payload[:controller],
                                                             method: event.payload[:method],
                                                             status: event.payload[:status],
                                                             action: event.payload[:action] },
                                                           event.payload[:view_runtime]
                                                          )
  rescue; end

  begin
  action_controller_process_action_db_runtime_ms.observe({ controller: event.payload[:controller],
                                                             method: event.payload[:method],
                                                             status: event.payload[:status],
                                                             action: event.payload[:action] },
                                                          event.payload[:db_runtime]
                                                        )
  rescue; end

  begin
  action_controller_process_action_total_runtime_ms.observe({ controller: event.payload[:controller],
                                                             method: event.payload[:method],
                                                             status: event.payload[:status],
                                                             action: event.payload[:action] },
                                                            event.duration
                                                           )
  rescue; end
end
start_processing(event) click to toggle source
# File lib/gremlin/railtie.rb, line 106
def start_processing(event)
  return if Gremlin.disabled?
  notification_count.increment

  action_controller_start_processing_count.increment({ controller: event.payload[:controller].to_s,
                                                       format: event.payload[:format].to_s,
                                                       action: event.payload[:action] })
end