class Protor::Registry
Constants
- DEFAULT_BUCKET
Attributes
families[R]
Public Class Methods
new()
click to toggle source
# File lib/protor/registry.rb, line 10 def initialize @families = {} end
Public Instance Methods
counter(metric_name, value, labels = {})
click to toggle source
# File lib/protor/registry.rb, line 14 def counter(metric_name, value, labels = {}) labels = stringify(labels) fam = family(metric_name, :counter) if (entry = fam[labels]) entry.value += value else fam[labels] = Entry.new(metric_name, :c, value, labels) end end
each() { |e| ... }
click to toggle source
# File lib/protor/registry.rb, line 48 def each families.each_value do |family| if family.type == :histogram family.each{ |arr| arr.each{ |e| yield(e) }} else family.each{ |e| yield(e) } end end end
empty?()
click to toggle source
# File lib/protor/registry.rb, line 62 def empty? families.empty? end
gauge(metric_name, value, labels = {})
click to toggle source
# File lib/protor/registry.rb, line 25 def gauge(metric_name, value, labels = {}) labels = stringify(labels) fam = family(metric_name, :gauge) if (entry = fam[labels]) entry.value = value else fam[labels] = Entry.new(metric_name, :g, value, labels) end end
histogram(metric_name, value, labels = {}, buckets = DEFAULT_BUCKET)
click to toggle source
# File lib/protor/registry.rb, line 36 def histogram(metric_name, value, labels = {}, buckets = DEFAULT_BUCKET) labels = stringify(labels) fam = family(metric_name, :histogram) entry = Entry.new(metric_name, :h, value, labels, buckets) if (array = fam[labels]) array << entry else fam[labels] = [ entry ] end end
reset()
click to toggle source
# File lib/protor/registry.rb, line 58 def reset @families = {} end
Private Instance Methods
family(name, type)
click to toggle source
# File lib/protor/registry.rb, line 77 def family(name, type) families[name] ||= EntryFamily.new(name, type) family = families[name] raise IncompatibleTypeError.new(name, family.type, type) if family.type != type return family end
stringify(labels)
click to toggle source
# File lib/protor/registry.rb, line 68 def stringify(labels) {}.tap do |h| labels.each do |k, v| val = v.to_s h[k.to_s] = val unless val.empty? end end end