Sha256: 6dea3ce15aed7544b95f233a6e10d0f358a9912027addd81cc296eeee8cca305

Contents?: true

Size: 967 Bytes

Versions: 2

Compression:

Stored size: 967 Bytes

Contents

# monkey patch the action controller to get reference to middleware caliper tracer
module ActionController
  module Instrumentation
    def process_action(action, *args)
      raw_payload = {
        :controller => self.class.name,
        :action     => self.action_name,
        :params     => request.filtered_parameters,
        :formats    => request.formats.map(&:to_sym),
        :method     => request.method,
        :path       => (request.fullpath rescue "unknown"),

        # Need payload to reference the request env tracer
        :caliper_tracer     => request.env['caliper.tracer']
      }

      ActiveSupport::Notifications.instrument("start_processing.action_controller", raw_payload.dup)

      ActiveSupport::Notifications.instrument("process_action.action_controller", raw_payload) do |payload|
        result = super
        payload[:status] = response.status
        append_info_to_payload(payload)
        result
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
caliper-0.0.2 lib/caliper/rails/instrumentation.rb
caliper-0.0.1 lib/caliper/rails/instrumentation.rb