class Fluent::Plugin::PrometheusOutputMetric
Public Class Methods
new()
click to toggle source
Calls superclass method
# File lib/fluent/plugin/out_prometheus_metric.rb, line 9 def initialize super @registry = ::Prometheus::Client.registry end
Public Instance Methods
multi_workers_ready?()
click to toggle source
# File lib/fluent/plugin/out_prometheus_metric.rb, line 14 def multi_workers_ready? true end
process(tag, es)
click to toggle source
# File lib/fluent/plugin/out_prometheus_metric.rb, line 20 def process(tag, es) # Write out values in event stream to Registry es.each do |time, record| # Create metric if not exists begin desc = "fluentd message stream with tag: ${tag}" gauge = @registry.gauge(tag.to_sym, desc.sub!("${tag}", tag)) rescue ::Prometheus::Client::Registry::AlreadyRegisteredError gauge = @registry.get(tag.to_sym) end value = record[@key] if value record.tap do |hs| hs.delete(@key) hs.delete('timestamp') end # set labels as all elements in message besides the key gauge.set(record.transform_keys(&:to_sym), value) end end end