class Opbeat::Normalizers::ActiveRecord::SQL

Public Class Methods

new(*args) click to toggle source
Calls superclass method Opbeat::Normalizers::Normalizer::new
# File lib/opbeat/normalizers/active_record.rb, line 9
def initialize *args
  super(*args)
  adapter = ::ActiveRecord::Base.connection.adapter_name.downcase rescue nil
  @kind = "db.#{adapter || 'unknown'}.sql".freeze
  @sql_parser = SqlSummarizer.new config
end

Public Instance Methods

normalize(transaction, name, payload) click to toggle source
# File lib/opbeat/normalizers/active_record.rb, line 16
def normalize transaction, name, payload
  if %w{SCHEMA CACHE}.include? payload[:name]
    return :skip
  end

  signature =
    signature_for(payload[:sql]) || # SELECT FROM "users"
    payload[:name] ||               # Users load
    "SQL".freeze

  if signature == 'SELECT FROM "schema_migrations"'
    return :skip
  end

  [signature, @kind, { sql: payload[:sql] }]
end

Private Instance Methods

signature_for(sql) click to toggle source
# File lib/opbeat/normalizers/active_record.rb, line 35
def signature_for sql
  @sql_parser.signature_for(sql)
end