Class: SolidEvents::Subscribers::SqlSubscriber

Inherits:
Object
  • Object
show all
Defined in:
lib/solid_events/subscribers/sql_subscriber.rb

Constant Summary collapse

IGNORED =
%w[SCHEMA TRANSACTION].freeze

Instance Method Summary collapse

Instance Method Details

#call(_name, started, finished, _unique_id, payload) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/solid_events/subscribers/sql_subscriber.rb', line 8

def call(_name, started, finished, _unique_id, payload)
  return if IGNORED.include?(payload[:name].to_s)
  sql = payload[:sql].to_s
  downcased_sql = sql.downcase
  return if ignored_sql_tables_in_statement(downcased_sql).any?
  return if SolidEvents.ignore_sql_fragments.any? { |fragment| downcased_sql.include?(fragment.to_s.downcase) }

  SolidEvents::Tracer.record_event!(
    event_type: "sql",
    name: payload[:name].to_s,
    payload: payload.slice(:sql, :cached),
    duration_ms: ((finished - started) * 1000.0).round(2)
  )
end