class Deimos::Metrics::Manager
Constants
- TYPES
Attributes
registry[R]
Public Class Methods
new(registry: Prometheus::Client.registry)
click to toggle source
# File lib/deimos/metrics/manager.rb, line 14 def initialize(registry: Prometheus::Client.registry) @registry = registry end
Public Instance Methods
collectors()
click to toggle source
# File lib/deimos/metrics/manager.rb, line 18 def collectors @collectors ||= {} end
subscribe(event_name, type:, label:, **kwargs) { |event, collector| ... }
click to toggle source
# File lib/deimos/metrics/manager.rb, line 22 def subscribe(event_name, type:, label:, **kwargs, &block) Deimos.logger.info "Metrics: Subscribed to #{event_name}..." ActiveSupport::Notifications.subscribe(event_name) do |*args| event = ActiveSupport::Notifications::Event.new(*args) collector = register_collector!(event_name, type, label, kwargs) if block_given? yield(event, collector) else Deimos.logger.info event end end end
Private Instance Methods
register_collector!(event_name, type, about, **kwargs)
click to toggle source
# File lib/deimos/metrics/manager.rb, line 37 def register_collector!(event_name, type, about, **kwargs) return collectors[event_name] if collectors[event_name] name = event_name.gsub(".", "_").to_sym collectors[event_name] = TYPES[type].new(name, about, kwargs).tap { |x| registry.register(x) } end