Class: RailsApiProfiler::Subscribers::ActiveRecord
- Inherits:
-
Object
- Object
- RailsApiProfiler::Subscribers::ActiveRecord
- Defined in:
- lib/rails_api_profiler/subscribers/active_record.rb
Class Method Summary collapse
Class Method Details
.reset! ⇒ Object
21 22 23 24 |
# File 'lib/rails_api_profiler/subscribers/active_record.rb', line 21 def self.reset! Thread.current[:rails_api_profiler_db_queries] = 0 Thread.current[:rails_api_profiler_db_time] = 0.0 end |
.stats ⇒ Object
26 27 28 29 30 31 |
# File 'lib/rails_api_profiler/subscribers/active_record.rb', line 26 def self.stats { queries: Thread.current[:rails_api_profiler_db_queries] || 0, time_ms: (Thread.current[:rails_api_profiler_db_time] || 0.0).round(2) } end |
.subscribe! ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/rails_api_profiler/subscribers/active_record.rb', line 4 def self.subscribe! return unless defined?(::ActiveRecord) ::ActiveSupport::Notifications.subscribe("sql.active_record") do |*args| event = ::ActiveSupport::Notifications::Event.new(*args) Thread.current[:rails_api_profiler_db_queries] ||= 0 Thread.current[:rails_api_profiler_db_time] ||= 0.0 # Skip schema & cached queries next if event.payload[:name] == "SCHEMA" Thread.current[:rails_api_profiler_db_queries] += 1 Thread.current[:rails_api_profiler_db_time] += event.duration end end |