class ElasticAPM::Normalizers::ActiveRecord::SqlNormalizer
@api private
def cached_adapter_name(adapter_name)
def cached_adapter_name(adapter_name) return UNKNOWN if adapter_name.nil? || adapter_name.empty? @adapters[adapter_name] || (@adapters[adapter_name] = adapter_name.downcase) rescue StandardError nil end
def initialize(*args)
def initialize(*args) super @summarizer = SqlSummarizer.new @adapters = {} end
def normalize(_transaction, _name, payload)
def normalize(_transaction, _name, payload) return :skip if SKIP_NAMES.include?(payload[:name]) name = summarize(payload[:sql]) || payload[:name] context = Span::Context.new(db: { statement: payload[:sql], type: 'sql' }) [name, TYPE, subtype(payload), ACTION, context] end
def subtype(payload)
def subtype(payload) cached_adapter_name( payload[:connection] ? payload[:connection].adapter_name : ::ActiveRecord::Base.connection_config[:adapter] ) end
def summarize(sql)
def summarize(sql) @summarizer.summarize(sql) end