Sha256: ed335ccfc6a90a4928b68f7a47c82e9f688218e58636194578f15b79f36ec1dc

Contents?: true

Size: 650 Bytes

Versions: 21

Compression:

Stored size: 650 Bytes

Contents

# frozen_string_literal: true

class MyCustomCollector < PrometheusExporter::Server::Collector
  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

21 entries across 21 versions & 1 rubygems

Version Path
prometheus_exporter-0.4.11 examples/custom_collector.rb