Sha256: 748347d98bf5555d9823b84f03636674225ed478c1fbe9ded327e485e05b9513

Contents?: true

Size: 654 Bytes

Versions: 7

Compression:

Stored size: 654 Bytes

Contents

# frozen_string_literal: true

class MyCustomCollector < PrometheusExporter::Server::BaseCollector
  def initialize
    @gauge1 = PrometheusExporter::Metric::Gauge.new("thing1", "I am thing 1")
    @gauge2 = PrometheusExporter::Metric::Gauge.new("thing2", "I am thing 2")
    @mutex = Mutex.new
  end

  def process(obj)
    @mutex.synchronize do
      if thing1 = obj["thing1"]
        @gauge1.observe(thing1)
      end

      if thing2 = obj["thing2"]
        @gauge2.observe(thing2)
      end
    end
  end

  def prometheus_metrics_text
    @mutex.synchronize do
      "#{@gauge1.to_prometheus_text}\n#{@gauge2.to_prometheus_text}"
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
prometheus_exporter-2.1.1 examples/custom_collector.rb
prometheus_exporter-2.1.0 examples/custom_collector.rb
prometheus_exporter-2.0.8 examples/custom_collector.rb
prometheus_exporter-2.0.7 examples/custom_collector.rb
prometheus_exporter-2.0.6 examples/custom_collector.rb
prometheus_exporter-2.0.5 examples/custom_collector.rb
prometheus_exporter-2.0.4 examples/custom_collector.rb