class ElasticAPM::Normalizers::ActiveRecord::SqlNormalizer
@api private
def initialize(*args)
def initialize(*args) super @type = format('db.%s.sql', lookup_adapter || 'unknown').freeze @summarizer = SqlSummarizer.new end
def lookup_adapter
def lookup_adapter ::ActiveRecord::Base.connection.adapter_name.downcase rescue StandardError nil end
def normalize(_transaction, _name, payload)
def normalize(_transaction, _name, payload) return :skip if %w[SCHEMA CACHE].include?(payload[:name]) name = summarize(payload[:sql]) || payload[:name] context = Span::Context.new(db: { statement: payload[:sql], type: 'sql' }) [name, @type, context] end
def summarize(sql)
def summarize(sql) @summarizer.summarize(sql) end