Class: Fluent::Plugin::Prometheus::Counter

Inherits:
Metric
  • Object
show all
Defined in:
lib/fluent/plugin/prometheus.rb

Instance Attribute Summary

Attributes inherited from Metric

#desc, #key, #name, #type

Instance Method Summary collapse

Methods inherited from Metric

get, #labels

Constructor Details

#initialize(element, registry, labels) ⇒ Counter

Returns a new instance of Counter.



146
147
148
149
150
151
152
153
# File 'lib/fluent/plugin/prometheus.rb', line 146

def initialize(element, registry, labels)
  super
  begin
    @counter = registry.counter(element['name'].to_sym, element['desc'])
  rescue ::Prometheus::Client::Registry::AlreadyRegisteredError
    @counter = Fluent::Plugin::Prometheus::Metric.get(registry, element['name'].to_sym, :counter, element['desc'])
  end
end

Instance Method Details

#instrument(record, expander, placeholders) ⇒ Object



155
156
157
158
159
160
161
162
163
# File 'lib/fluent/plugin/prometheus.rb', line 155

def instrument(record, expander, placeholders)
  # use record value of the key if key is specified, otherwise just increment
  value = @key ? record[@key] : 1

  # ignore if record value is nil
  return if value.nil?

  @counter.increment(labels(record, expander, placeholders), value)
end