Sha256: fdb1694b445bac8ea3f1466c95353d72452d4689a3372a6b7499076ba4fc6b2b
Contents?: true
Size: 1.02 KB
Versions: 7
Compression:
Stored size: 1.02 KB
Contents
require 'action_controller/metal/instrumentation' module ActionController module Instrumentation def process_action(*args) raw_payload = base_payload.merge(custom_payload) ActiveSupport::Notifications.instrument('start_processing.action_controller', raw_payload.dup) ActiveSupport::Notifications.instrument('process_action.action_controller', raw_payload) do |payload| begin result = super payload[:status] = response.status result ensure append_info_to_payload(payload) end end end private def base_payload { controller: self.class.name, action: self.action_name, params: request.filtered_parameters, format: request.format.try(:ref), method: request.request_method, path: (request.filtered_path rescue 'unknown'), } end def custom_payload { request_id: request.env['action_dispatch.request_id'], ip: request.ip, } end end end
Version data entries
7 entries across 7 versions & 1 rubygems