module ActionController::Instrumentation

def process_action(*)

def process_action(*)
  ActiveSupport::ExecutionContext[:controller] = self
  raw_payload = {
    controller: self.class.name,
    action: action_name,
    request: request,
    params: request.filtered_parameters,
    headers: request.headers,
    format: request.format.ref,
    method: request.request_method,
    path: request.fullpath
  }
  ActiveSupport::Notifications.instrument("start_processing.action_controller", raw_payload)
  ActiveSupport::Notifications.instrument("process_action.action_controller", raw_payload) do |payload|
    result = super
    payload[:response] = response
    payload[:status]   = response.status
    result
  rescue => error
    payload[:status] = ActionDispatch::ExceptionWrapper.status_code_for_exception(error.class.name)
    raise
  ensure
    append_info_to_payload(payload)
  end
end