Class: Lepus::Consumers::StatsRegistry

Inherits:
Object
  • Object
show all
Defined in:
lib/lepus/consumers/stats_registry.rb

Overview

Per-worker registry of consumer stats. Uses Concurrent::Map for thread-safe lazy initialization.

Instance Method Summary collapse

Constructor Details

#initializeStatsRegistry

Returns a new instance of StatsRegistry.



10
11
12
# File 'lib/lepus/consumers/stats_registry.rb', line 10

def initialize
  @stats = Concurrent::Map.new
end

Instance Method Details

#allObject



20
21
22
# File 'lib/lepus/consumers/stats_registry.rb', line 20

def all
  @stats.values.map(&:to_h)
end

#connection_countObject



24
25
26
# File 'lib/lepus/consumers/stats_registry.rb', line 24

def connection_count
  @stats.size
end

#for(consumer_class) ⇒ Object



14
15
16
17
18
# File 'lib/lepus/consumers/stats_registry.rb', line 14

def for(consumer_class)
  @stats.compute_if_absent(consumer_class.name) do
    Stats.new(consumer_class)
  end
end