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, #retention, #retention_check_interval, #type

Instance Method Summary collapse

Methods inherited from Metric

get, #has_retention?, #instrument, #labels, #remove_expired_metrics

Constructor Details

#initialize(element, registry, labels) ⇒ Counter

Returns a new instance of Counter.



323
324
325
326
327
328
329
330
331
332
333
334
335
# File 'lib/fluent/plugin/prometheus.rb', line 323

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

Instance Method Details

#set_value(value, labels) ⇒ Object



351
352
353
# File 'lib/fluent/plugin/prometheus.rb', line 351

def set_value(value, labels)
  @counter.increment(by: value, labels: labels)
end

#set_value?(value) ⇒ Boolean

Returns:

  • (Boolean)


347
348
349
# File 'lib/fluent/plugin/prometheus.rb', line 347

def set_value?(value)
  !value.nil?
end

#value(record) ⇒ Object



337
338
339
340
341
342
343
344
345
# File 'lib/fluent/plugin/prometheus.rb', line 337

def value(record)
  if @key.nil?
    1
  elsif @key.is_a?(String)
    record[@key]
  else
    @key.call(record)
  end
end