Module: GrapeRailsLogger::Timings
- Defined in:
- lib/grape_rails_logger/timings.rb,
sig/grape_rails_logger.rbs
Overview
Thread-safe storage for DB timing metrics per request
Class Method Summary collapse
- .append_db_runtime(event) ⇒ void
- .db_calls ⇒ Integer
- .db_runtime ⇒ Float
- .execution_state ⇒ Object
- .grape_request_active? ⇒ Boolean
- .reset_db_runtime ⇒ void
- .track_grape_request {|arg0| ... } ⇒ Object
Class Method Details
.append_db_runtime(event) ⇒ void
This method returns an undefined value.
44 45 46 47 48 49 50 |
# File 'lib/grape_rails_logger/timings.rb', line 44 def self.append_db_runtime(event) state = execution_state return unless state[:grape_db_tracking] state[:grape_db_runtime] = (state[:grape_db_runtime] || 0) + event.duration state[:grape_db_calls] = (state[:grape_db_calls] || 0) + 1 end |
.db_calls ⇒ Integer
40 41 42 |
# File 'lib/grape_rails_logger/timings.rb', line 40 def self.db_calls execution_state[:grape_db_calls] ||= 0 end |
.db_runtime ⇒ Float
36 37 38 |
# File 'lib/grape_rails_logger/timings.rb', line 36 def self.db_runtime execution_state[:grape_db_runtime] ||= 0 end |
.execution_state ⇒ Object
7 8 9 |
# File 'lib/grape_rails_logger/timings.rb', line 7 def self.execution_state ActiveSupport::IsolatedExecutionState end |
.grape_request_active? ⇒ Boolean
32 33 34 |
# File 'lib/grape_rails_logger/timings.rb', line 32 def self.grape_request_active? !!execution_state[:grape_db_tracking] end |
.reset_db_runtime ⇒ void
This method returns an undefined value.
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 |
.track_grape_request {|arg0| ... } ⇒ Object
22 23 24 25 26 27 28 29 30 |
# File 'lib/grape_rails_logger/timings.rb', line 22 def self.track_grape_request state = execution_state previous_tracking = state[:grape_db_tracking] state[:grape_db_tracking] = true reset_db_runtime yield ensure state[:grape_db_tracking] = previous_tracking end |