Module: Julewire::Ractor::Bridge::Stats
- Defined in:
- lib/julewire/ractor/bridge/stats.rb
Class Method Summary collapse
- .after_fork! ⇒ Object
- .bridge_started ⇒ Object
- .bridge_stopped(error = nil) ⇒ Object
- .health ⇒ Object
- .message_failed(error) ⇒ Object
- .message_received ⇒ Object
- .reset! ⇒ Object
Class Method Details
.after_fork! ⇒ Object
60 61 62 63 |
# File 'lib/julewire/ractor/bridge/stats.rb', line 60 def after_fork! @active_threads.value = 0 reset! end |
.bridge_started ⇒ Object
18 19 20 21 |
# File 'lib/julewire/ractor/bridge/stats.rb', line 18 def bridge_started @active_threads.increment @started_threads.increment end |
.bridge_stopped(error = nil) ⇒ Object
23 24 25 26 27 |
# File 'lib/julewire/ractor/bridge/stats.rb', line 23 def bridge_stopped(error = nil) @active_threads.decrement if @active_threads.value.positive? @stopped_threads.increment record_failure(error) if error end |
.health ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/julewire/ractor/bridge/stats.rb', line 37 def health { active_threads: @active_threads.value, experimental: true, failure_count: @failure_count.value, last_error_class: @last_error.get&.fetch(:class), messages: @message_count.value, started_threads: @started_threads.value, stopped_threads: @stopped_threads.value }.compact end |
.message_failed(error) ⇒ Object
33 34 35 |
# File 'lib/julewire/ractor/bridge/stats.rb', line 33 def (error) record_failure(error) end |
.message_received ⇒ Object
29 30 31 |
# File 'lib/julewire/ractor/bridge/stats.rb', line 29 def @message_count.increment end |
.reset! ⇒ Object
49 50 51 52 53 54 55 56 57 58 |
# File 'lib/julewire/ractor/bridge/stats.rb', line 49 def reset! # Active bridge threads are live state; reset history without # forcing a running bridge to later decrement a cleared counter. @failure_count.value = 0 @last_error.set(nil) @message_count.value = 0 @started_threads.value = 0 @stopped_threads.value = 0 nil end |