class OneApm::Collector::SlowSql

Attributes

backtrace[R]
duration[R]
metric_name[R]
sql[R]

Public Class Methods

new(sql, metric_name, config, duration, backtrace=nil, &explainer) click to toggle source
# File lib/one_apm/collector/containers/sql_sampler.rb, line 221
def initialize(sql, metric_name, config, duration, backtrace=nil,
               &explainer)
  @sql = sql
  @metric_name = metric_name
  @config = config
  @duration = duration
  @backtrace = backtrace
  @explainer = explainer
end

Public Instance Methods

explain() click to toggle source
# File lib/one_apm/collector/containers/sql_sampler.rb, line 240
def explain
  if @config && @explainer
    OneApm::Agent::Database.explain_sql(@sql, @config, &@explainer)
  end
end
normalize() click to toggle source
# File lib/one_apm/collector/containers/sql_sampler.rb, line 235
def normalize
  OneApm::Agent::Database::Obfuscator.instance \
    .default_sql_obfuscator(@sql).gsub(/\?\s*\,\s*/, '').gsub(/\s/, '')
end
obfuscate() click to toggle source
# File lib/one_apm/collector/containers/sql_sampler.rb, line 231
def obfuscate
  OneApm::Agent::Database.obfuscate_sql(@sql)
end
prepare_to_send() click to toggle source

We can't serialize the explainer, so clear it before we transmit

# File lib/one_apm/collector/containers/sql_sampler.rb, line 247
def prepare_to_send
  @explainer = nil
end