Class: Fluent::Plugin::Prometheus::Counter
- Defined in:
- lib/fluent/plugin/prometheus.rb
Instance Attribute Summary
Attributes inherited from Metric
Instance Method Summary collapse
-
#initialize(element, registry, labels) ⇒ Counter
constructor
A new instance of Counter.
- #instrument(record, expander) ⇒ Object
Methods inherited from Metric
Constructor Details
#initialize(element, registry, labels) ⇒ Counter
Returns a new instance of Counter.
309 310 311 312 313 314 315 316 317 318 319 320 |
# File 'lib/fluent/plugin/prometheus.rb', line 309 def initialize(element, registry, labels) super begin @counter = registry.counter(element['name'].to_sym, docstring: element['desc'], labels: @base_labels.keys) rescue ::Prometheus::Client::Registry::AlreadyRegisteredError @counter = Fluent::Plugin::Prometheus::Metric.get(registry, element['name'].to_sym, :counter, element['desc']) end if @initialized Fluent::Plugin::Prometheus::Metric.init_label_set(@counter, @base_initlabels, @base_labels) end end |
Instance Method Details
#instrument(record, expander) ⇒ Object
322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 |
# File 'lib/fluent/plugin/prometheus.rb', line 322 def instrument(record, ) # use record value of the key if key is specified, otherwise just increment if @key.nil? value = 1 elsif @key.is_a?(String) value = record[@key] else value = @key.call(record) end # ignore if record value is nil return if value.nil? @counter.increment(by: value, labels: labels(record, )) end |