Class: OneApm::Collector::SlowSql
- Inherits:
-
Object
- Object
- OneApm::Collector::SlowSql
- Defined in:
- lib/one_apm/collector/containers/sql_sampler.rb
Instance Attribute Summary collapse
-
#backtrace ⇒ Object
readonly
Returns the value of attribute backtrace.
-
#duration ⇒ Object
readonly
Returns the value of attribute duration.
-
#metric_name ⇒ Object
readonly
Returns the value of attribute metric_name.
-
#sql ⇒ Object
readonly
Returns the value of attribute sql.
Instance Method Summary collapse
- #explain ⇒ Object
-
#initialize(sql, metric_name, config, duration, backtrace = nil, &explainer) ⇒ SlowSql
constructor
A new instance of SlowSql.
- #normalize ⇒ Object
- #obfuscate ⇒ Object
-
#prepare_to_send ⇒ Object
We can’t serialize the explainer, so clear it before we transmit.
Constructor Details
#initialize(sql, metric_name, config, duration, backtrace = nil, &explainer) ⇒ SlowSql
Returns a new instance of SlowSql.
221 222 223 224 225 226 227 228 229 |
# 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 |
Instance Attribute Details
#backtrace ⇒ Object (readonly)
Returns the value of attribute backtrace.
219 220 221 |
# File 'lib/one_apm/collector/containers/sql_sampler.rb', line 219 def backtrace @backtrace end |
#duration ⇒ Object (readonly)
Returns the value of attribute duration.
218 219 220 |
# File 'lib/one_apm/collector/containers/sql_sampler.rb', line 218 def duration @duration end |
#metric_name ⇒ Object (readonly)
Returns the value of attribute metric_name.
217 218 219 |
# File 'lib/one_apm/collector/containers/sql_sampler.rb', line 217 def metric_name @metric_name end |
#sql ⇒ Object (readonly)
Returns the value of attribute sql.
216 217 218 |
# File 'lib/one_apm/collector/containers/sql_sampler.rb', line 216 def sql @sql end |
Instance Method Details
#explain ⇒ Object
240 241 242 243 244 |
# 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 ⇒ Object
235 236 237 238 |
# 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 ⇒ Object
231 232 233 |
# File 'lib/one_apm/collector/containers/sql_sampler.rb', line 231 def obfuscate OneApm::Agent::Database.obfuscate_sql(@sql) end |
#prepare_to_send ⇒ Object
We can’t serialize the explainer, so clear it before we transmit
247 248 249 |
# File 'lib/one_apm/collector/containers/sql_sampler.rb', line 247 def prepare_to_send @explainer = nil end |