if Rails.env.production? && ENV["OPS_LOG_SUBSCRIBER"] == "true" ActiveSupport::Notifications.subscribe("process_action.action_controller") do |*args| event = ActiveSupport::Notifications::Event.new(*args) next unless event.payload[:status].to_i >= 500 Ops::IncidentRecorder.record( kind: "log_pattern", severity: "warning", title: "HTTP 500 in Rails", message: "#{event.payload[:method]} #{event.payload[:path]} → #{event.payload[:status]}", metadata: { "controller" => event.payload[:controller], "action" => event.payload[:action], "status" => event.payload[:status] }, fingerprint: "rails_500:#{event.payload[:controller]}##{event.payload[:action]}" ) rescue StandardError => e Rails.logger.warn("[Ops::LogSubscriber] #{e.message}") end end