1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
# encoding: UTF-8
require 'prometheus/client/metric'
module Prometheus
module Client
# Counter is a metric that exposes merely a sum or tally of things.
class Counter < Metric
def type
:counter
end
def increment(labels = {}, by = 1)
raise ArgumentError, 'increment must be a non-negative number' if by < 0
label_set = label_set_for(labels)
synchronize { @values[label_set].increment(by) }
end
private
def default(labels)
value_object(type, @name, @name, labels)
end
end
end
end
|