class PromMultiProc::ProxyCollector

Public Class Methods

new(proxy, collector) click to toggle source
# File lib/prom_multi_proc/proxy.rb, line 30
def initialize(proxy, collector)
  @proxy = proxy
  @collector = collector

  add_proxy_methods
end

Private Instance Methods

add_proxy_methods() click to toggle source
# File lib/prom_multi_proc/proxy.rb, line 39
def add_proxy_methods
  @collector.metric_methods.each do |meth|
    define_singleton_method(meth) do |*args|
      case args.length
      when 0
        value = 1.0
        labels = {}
      when 1
        if args[0].is_a?(Hash)
          value = 1.0
          labels = args[0]
        else
          value = args[0]
          labels = {}
        end
      when 2
        value = args[0]
        labels = args[1]
      else
        raise PromMultiProcError.new("Invalid number of arguments")
      end

      @proxy.add_multi(@collector, meth, value, labels)
    end
  end
end