Sha256: 014a3a3ba8c02b1952e7bf0fe9d67b4e5dbcd5e112b129b62af736ac4b4cb419

Contents?: true

Size: 1.56 KB

Versions: 4

Compression:

Stored size: 1.56 KB

Contents

module Librato
  module Rails
    module Subscribers

      # Controllers

      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]
        http_method = event.payload[:method]
        exception = event.payload[:exception]
        # page_key = "request.#{controller}.#{action}_#{format}."

        collector.group "rails.request" do |r|

          r.increment 'total'
          r.timing    'time', event.duration

          if exception
            r.increment 'exceptions'
          else
            r.timing 'time.db', event.payload[:db_runtime] || 0
            r.timing 'time.view', event.payload[:view_runtime] || 0
          end

          if http_method
            verb = http_method.to_s.downcase
            r.group 'method' do |m|
              m.increment verb
              m.timing "#{verb}.time", event.duration
            end
          end

          unless status.blank?
            r.group 'status' do |s|
              s.increment status
              s.increment "#{status.to_s[0]}xx"
              s.timing "#{status}.time", event.duration
              s.timing "#{status.to_s[0]}xx.time", event.duration
            end
          end

          r.increment 'slow' if event.duration > 200.0
        end # end group

      end # end subscribe

    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
librato-rails-0.10.3 lib/librato/rails/subscribers/controller.rb
librato-rails-0.10.2 lib/librato/rails/subscribers/controller.rb
librato-rails-0.10.1 lib/librato/rails/subscribers/controller.rb
librato-rails-0.10.0 lib/librato/rails/subscribers/controller.rb