module Promenade::Prometheus

Constants

METRICS_MUTEX
REGISTRY_MUTEX

Public Class Methods

define_metric(type, name, &block) click to toggle source
# File lib/promenade/prometheus.rb, line 19
def self.define_metric(type, name, &block)
  METRICS_MUTEX.synchronize do
    return if registry.get(name)

    options = Options.new
    options.evaluate(&block)
    registry.method(type).call(name, *options.args(type))
  end
end
metric(name) click to toggle source
# File lib/promenade/prometheus.rb, line 12
def self.metric(name)
  METRICS_MUTEX.synchronize do
    registry.get(name) ||
      fail("No metric defined for: #{name}, you must define a metric before using it")
  end
end
registry() click to toggle source
# File lib/promenade/prometheus.rb, line 29
def self.registry
  REGISTRY_MUTEX.synchronize do
    @_registry ||= ::Prometheus::Client.registry
  end
end