Class: Capsium::Reactor::Metrics

Inherits:
Object
  • Object
show all
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

Constructor Details

#initializeMetrics

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

Parameters:

Returns:



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

#snapshotHash[Symbol, untyped]

Returns:



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