Module: NSA::Collectors::ActionController

Extended by:
Statsd::Publisher
Defined in:
lib/nsa/collectors/action_controller.rb

Class Method Summary collapse

Methods included from Statsd::Publisher

__statsd_publish, statsd_count, statsd_decrement, statsd_gauge, statsd_increment, statsd_set, statsd_time, statsd_timing

Class Method Details

.collect(key_prefix) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/nsa/collectors/action_controller.rb', line 9

def self.collect(key_prefix)
  ::ActiveSupport::Notifications.subscribe(/process_action.action_controller/) do |*args|
    event = ::ActiveSupport::Notifications::Event.new(*args)
    controller = event.payload[:controller]
    action = event.payload[:action]
    format = event.payload[:format] || "all"
    format = "all" if format == "*/*"
    status = event.payload[:status]
    key = "#{key_prefix}.#{controller}.#{action}.#{format}"

    statsd_timing("#{key}.total_duration", event.duration)
    statsd_timing("#{key}.db_time", event.payload[:db_runtime])
    statsd_timing("#{key}.view_time", event.payload[:view_runtime])
    statsd_increment("#{key}.status.#{status}")
  end
end