class JSONAPI::Support::N1LogSubscriber
def build_message(payload)
def build_message(payload) msg = "N+1 detected #{payload[:method]} #{payload[:path]}" if payload[:resource_type].present? rt = payload[:resource_type] rid = payload[:resource_id] resource = rid.present? ? "#{rt}/#{rid}" : rt msg += " resource=#{resource}" end msg += " include=#{payload[:include]}" if payload[:include].present? msg += " query=#{payload[:n1_query]}" if payload[:n1_query].present? msg end
def emit(event)
def emit(event) ev = event.is_a?(Hash) ? event : event.to_h return unless ev[:name] == "jpie.n1_detected" payload = ev[:payload] || {} log_warn(build_message(payload), payload[:correlation_id]) end
def log_warn(msg, cid)
def log_warn(msg, cid) if cid.present? Rails.logger.tagged("JPie", "CID(#{cid})") { Rails.logger.warn(msg) } else Rails.logger.warn("[JPie] #{msg}") end end