class Metrux::Commands::PeriodicGauge::Registry

Attributes

logger[R]
mutex[R]

Public Class Methods

new(config) click to toggle source
# File lib/metrux/commands/periodic_gauge/registry.rb, line 7
def initialize(config)
  @mutex = Mutex.new
  @metrics = {}
  @logger = config.logger
end

Public Instance Methods

add(measurement, options = {}, &metric_block) click to toggle source
# File lib/metrux/commands/periodic_gauge/registry.rb, line 17
def add(measurement, options = {}, &metric_block)
  tags = options.fetch(:tags, {})
  key = "#{measurement}/#{tags.to_query}".freeze

  log("Registering #{key}")

  mutex.synchronize do
    @metrics[key] = {
      measurement: measurement, metric: metric_block,
      options: options
    }
  end

  true
end
metrics() click to toggle source
# File lib/metrux/commands/periodic_gauge/registry.rb, line 13
def metrics
  mutex.synchronize { @metrics.dup }
end