Sha256: 8ce5de0576e9d42387be3a0aae0b8ef5c969e20c8b7e630ec3579180c7ea1789

Contents?: true

Size: 1.11 KB

Versions: 2

Compression:

Stored size: 1.11 KB

Contents

module Librato
  module Rails
    module Subscribers

      # ActionController

      ActiveSupport::Notifications.subscribe "process_action.action_controller" do |*args|

        event = ActiveSupport::Notifications::Event.new(*args)
        exception = event.payload[:exception]
        format = event.payload[:format].to_s || "all"
        format = "all" if format == "*/*"
        tags = {
          controller: event.payload[:controller],
          action: event.payload[:action],
          format: format,
        }

        collector.group "rails.request" do |r|
          r.increment "total", tags: tags, inherit_tags: true
          r.timing    "time", event.duration, tags: tags, inherit_tags: true, percentile: 95
          r.timing "time.db", event.payload[:db_runtime] || 0, tags: tags, inherit_tags: true, percentile: 95
          r.timing "time.view", event.payload[:view_runtime] || 0, tags: tags, inherit_tags: true, percentile: 95

          if event.duration > 200.0
            r.increment "slow", tags: tags, inherit_tags: true
          end
        end # end group

      end # end subscribe

    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
librato-rails-2.1.0 lib/librato/rails/subscribers/controller.rb
librato-rails-2.0.0 lib/librato/rails/subscribers/controller.rb