Class: Tarantool::Rails::LogSubscriber
- Inherits:
-
ActiveSupport::LogSubscriber
- Object
- ActiveSupport::LogSubscriber
- Tarantool::Rails::LogSubscriber
- Defined in:
- tarantool-rails/lib/tarantool/rails/log_subscriber.rb
Overview
ActiveRecord-style lines for the client's events, and the time spent in requests per thread so the controller log can show a Tarantool share next to Views.
Class Method Summary collapse
Instance Method Summary collapse
- #disconnect(event) ⇒ Object
- #fork(event) ⇒ Object
- #reconnect(event) ⇒ Object
- #reconnect_failed(event) ⇒ Object
- #request(event) ⇒ Object
- #role_change(event) ⇒ Object
- #shutdown(event) ⇒ Object
Class Method Details
.reset_runtime ⇒ Object
25 26 27 |
# File 'tarantool-rails/lib/tarantool/rails/log_subscriber.rb', line 25 def reset_runtime runtime.tap { self.runtime = 0.0 } end |
.runtime ⇒ Object
17 18 19 |
# File 'tarantool-rails/lib/tarantool/rails/log_subscriber.rb', line 17 def runtime ActiveSupport::IsolatedExecutionState[RUNTIME] ||= 0.0 end |
.runtime=(value) ⇒ Object
21 22 23 |
# File 'tarantool-rails/lib/tarantool/rails/log_subscriber.rb', line 21 def runtime=(value) ActiveSupport::IsolatedExecutionState[RUNTIME] = value end |
Instance Method Details
#disconnect(event) ⇒ Object
40 41 42 |
# File 'tarantool-rails/lib/tarantool/rails/log_subscriber.rb', line 40 def disconnect(event) warn "Tarantool disconnected from #{event.payload[:address]}: #{event.payload[:reason]}" end |
#fork(event) ⇒ Object
52 53 54 |
# File 'tarantool-rails/lib/tarantool/rails/log_subscriber.rb', line 52 def fork(event) info "Tarantool reopened #{event.payload[:address]} after fork" end |
#reconnect(event) ⇒ Object
44 45 46 |
# File 'tarantool-rails/lib/tarantool/rails/log_subscriber.rb', line 44 def reconnect(event) info "Tarantool reconnected to #{event.payload[:address]} after #{attempts(event.payload[:attempts])}" end |
#reconnect_failed(event) ⇒ Object
48 49 50 |
# File 'tarantool-rails/lib/tarantool/rails/log_subscriber.rb', line 48 def reconnect_failed(event) error "Tarantool gave up reconnecting to #{event.payload[:address]}: #{event.payload[:exception].join(': ')}" end |
#request(event) ⇒ Object
30 31 32 33 34 35 36 37 38 |
# File 'tarantool-rails/lib/tarantool/rails/log_subscriber.rb', line 30 def request(event) self.class.runtime += event.duration return unless logger.debug? payload = event.payload name = color(request_name(payload), COLORS.fetch(payload[:request], WHITE), bold: true) debug [name, format('(%.2fms)', event.duration), *request_details(payload)].join(' ') end |
#role_change(event) ⇒ Object
56 57 58 |
# File 'tarantool-rails/lib/tarantool/rails/log_subscriber.rb', line 56 def role_change(event) info "Tarantool #{event.payload[:address]} is now #{event.payload[:read_only] ? 'read-only' : 'writable'}" end |
#shutdown(event) ⇒ Object
60 61 62 |
# File 'tarantool-rails/lib/tarantool/rails/log_subscriber.rb', line 60 def shutdown(event) info "Tarantool #{event.payload[:address]} is shutting down, #{event.payload[:pending]} requests in flight" end |