Class: BuilderApm::Models::Instrumenter

Inherits:
Object
  • Object
show all
Defined in:
lib/builder_apm/models/instrumenter.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.startObject



4
5
6
# File 'lib/builder_apm/models/instrumenter.rb', line 4

def self.start
  new.subscribe_to_notifications
end

Instance Method Details

#subscribe_to_notificationsObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/builder_apm/models/instrumenter.rb', line 8

def subscribe_to_notifications
  ActiveSupport::Notifications.subscribe('sql.active_record') do |*args| 
    starttime = Time.now.to_f * 1000
    handle_sql_active_record(*args) 
    duration = (Time.now.to_f * 1000) - starttime
    
    Thread.current[:db_tracing] = (Thread.current[:db_tracing] ||= 0) + duration
  end
  ActiveSupport::Notifications.subscribe('instantiation.active_record') do |*args| 
    starttime = Time.now.to_f * 1000
    handle_instantiation_active_record(*args) 
    duration = (Time.now.to_f * 1000) - starttime
    
    Thread.current[:db_tracing] = (Thread.current[:db_tracing] ||= 0) + duration
  end
end