Class: Capsium::Reactor::Metrics
- Inherits:
-
Object
- Object
- Capsium::Reactor::Metrics
- Defined in:
- lib/capsium/reactor/metrics.rb,
sig/capsium/reactor/metrics.rbs
Overview
Minimal in-memory request counters for the /introspect/metrics endpoint, thread-safe via Mutex.
Instance Method Summary collapse
-
#initialize ⇒ Metrics
constructor
A new instance of Metrics.
- #record(status) ⇒ Metrics
- #snapshot ⇒ Hash[Symbol, untyped]
Constructor Details
#initialize ⇒ Metrics
Returns a new instance of Metrics.
9 10 11 12 13 |
# File 'lib/capsium/reactor/metrics.rb', line 9 def initialize @mutex = Mutex.new @total = 0 @by_status = Hash.new(0) end |
Instance Method Details
#record(status) ⇒ Metrics
15 16 17 18 19 20 21 |
# File 'lib/capsium/reactor/metrics.rb', line 15 def record(status) @mutex.synchronize do @total += 1 @by_status[status.to_i] += 1 end self end |
#snapshot ⇒ Hash[Symbol, untyped]
23 24 25 26 27 |
# File 'lib/capsium/reactor/metrics.rb', line 23 def snapshot @mutex.synchronize do { requestsTotal: @total, requestsByStatus: @by_status.dup } end end |