Class: JSONAPI::Support::QueryTrackingSubscriber
- Inherits:
-
Object
- Object
- JSONAPI::Support::QueryTrackingSubscriber
- Defined in:
- lib/json_api/support/query_tracking_subscriber.rb
Constant Summary collapse
- SKIP_PATTERNS =
[ /\A\s*(BEGIN|COMMIT|ROLLBACK|SAVEPOINT|RELEASE\s+SAVEPOINT)\b/i, /\A\s*(CREATE|ALTER|DROP)\s+(TABLE|INDEX|DATABASE)/i, /\APRAGMA\b/i, /sqlite_master|sqlite_temp_master/i, /\bFROM\s+pg_/i, /\A\s*(SET|SHOW)\s/i, ].freeze
Instance Method Summary collapse
Instance Method Details
#call(name, start, finish, id, payload) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/json_api/support/query_tracking_subscriber.rb', line 15 def call(name, start, finish, id, payload) tracking = Thread.current[:jpie_query_tracking] return if tracking.nil? sql = payload[:sql] return unless count_query?(sql) tracking[:count] += 1 tracking[:queries] << sql maybe_emit_slow_query(tracking, sql, name, start, finish, id, payload) end |