Method: Sequel::OneApmInstrumentation#log_yield

Defined in:
lib/sequel/extensions/oneapm_instrumentation.rb

#log_yield(sql, args = nil) ⇒ Object

Instrument all queries that go through #execute_query.



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/sequel/extensions/oneapm_instrumentation.rb', line 13

def log_yield(sql, args=nil)
  state = OneApm::TransactionState.tl_get
  return super unless state.is_execution_traced?

  t0 = Time.now
  rval = super
  t1 = Time.now

  begin
    duration = t1 - t0
    record_metrics(sql, args, duration)
    notice_sql(state, sql, args, t0, t1)
  rescue => err
    OneApm::Manager.logger.debug "while recording metrics for Sequel", err
  end

  return rval
end