Module: GrapeRailsLogger::Timings

Defined in:
lib/grape_rails_logger/timings.rb

Overview

Thread-safe storage for DB timing metrics per request

Class Method Summary collapse

Class Method Details

.append_db_runtime(event) ⇒ Object



30
31
32
33
34
# File 'lib/grape_rails_logger/timings.rb', line 30

def self.append_db_runtime(event)
  state = execution_state
  state[:grape_db_runtime] = (state[:grape_db_runtime] || 0) + event.duration
  state[:grape_db_calls] = (state[:grape_db_calls] || 0) + 1
end

.db_callsObject



26
27
28
# File 'lib/grape_rails_logger/timings.rb', line 26

def self.db_calls
  execution_state[:grape_db_calls] ||= 0
end

.db_runtimeObject



22
23
24
# File 'lib/grape_rails_logger/timings.rb', line 22

def self.db_runtime
  execution_state[:grape_db_runtime] ||= 0
end

.execution_stateObject



7
8
9
# File 'lib/grape_rails_logger/timings.rb', line 7

def self.execution_state
  ActiveSupport::IsolatedExecutionState
end

.reset_db_runtimeObject



16
17
18
19
20
# File 'lib/grape_rails_logger/timings.rb', line 16

def self.reset_db_runtime
  state = execution_state
  state[:grape_db_runtime] = 0
  state[:grape_db_calls] = 0
end