Class: Flexirest::Instrumentation
- Inherits:
-
ActiveSupport::LogSubscriber
- Object
- ActiveSupport::LogSubscriber
- Flexirest::Instrumentation
- Defined in:
- lib/flexirest/instrumentation.rb
Class Method Summary collapse
- .calls_made ⇒ Object
- .calls_made=(value) ⇒ Object
- .reset ⇒ Object
- .time_spent ⇒ Object
-
.time_spent=(value) ⇒ Object
These counters accumulate per request and are reported/reset per controller action.
Instance Method Summary collapse
Class Method Details
.calls_made ⇒ Object
25 26 27 |
# File 'lib/flexirest/instrumentation.rb', line 25 def self.calls_made Thread.current[:flexirest_calls_made] ||= 0 end |
.calls_made=(value) ⇒ Object
21 22 23 |
# File 'lib/flexirest/instrumentation.rb', line 21 def self.calls_made=(value) Thread.current[:flexirest_calls_made] = value end |
.reset ⇒ Object
29 30 31 32 |
# File 'lib/flexirest/instrumentation.rb', line 29 def self.reset Thread.current[:flexirest_time_spent] = 0 Thread.current[:flexirest_calls_made] = 0 end |
.time_spent ⇒ Object
17 18 19 |
# File 'lib/flexirest/instrumentation.rb', line 17 def self.time_spent Thread.current[:flexirest_time_spent] ||= 0 end |
.time_spent=(value) ⇒ Object
These counters accumulate per request and are reported/reset per controller action. Held per-thread so concurrent requests each track their own totals instead of sharing (and losing updates to) one class variable.
13 14 15 |
# File 'lib/flexirest/instrumentation.rb', line 13 def self.time_spent=(value) Thread.current[:flexirest_time_spent] = value end |
Instance Method Details
#logger ⇒ Object
34 35 36 |
# File 'lib/flexirest/instrumentation.rb', line 34 def logger Flexirest::Logger end |
#request_call(event) ⇒ Object
3 4 5 6 7 8 |
# File 'lib/flexirest/instrumentation.rb', line 3 def request_call(event) self.class.time_spent += event.duration self.class.calls_made += 1 name = '%s (%.1fms)' % [Flexirest.name, event.duration] Flexirest::Logger.debug " \033[1;4;32m#{name}\033[0m #{event.payload[:name]}" unless event.payload[:quiet] end |