class PrometheusExporter::Server::SidekiqQueueCollector
Constants
- MAX_SIDEKIQ_METRIC_AGE
- SIDEKIQ_QUEUE_GAUGES
Attributes
gauges[R]
sidekiq_metrics[R]
Public Class Methods
new()
click to toggle source
# File lib/prometheus_exporter/server/sidekiq_queue_collector.rb, line 13 def initialize @sidekiq_metrics = [] @gauges = {} end
Public Instance Methods
collect(object)
click to toggle source
# File lib/prometheus_exporter/server/sidekiq_queue_collector.rb, line 36 def collect(object) now = ::Process.clock_gettime(::Process::CLOCK_MONOTONIC) object['queues'].each do |queue| queue["created_at"] = now queue["labels"].merge!(object['custom_labels']) if object['custom_labels'] sidekiq_metrics.delete_if { |metric| metric['created_at'] + MAX_SIDEKIQ_METRIC_AGE < now } sidekiq_metrics << queue end end
metrics()
click to toggle source
# File lib/prometheus_exporter/server/sidekiq_queue_collector.rb, line 22 def metrics sidekiq_metrics.map do |metric| labels = metric.fetch("labels", {}) SIDEKIQ_QUEUE_GAUGES.map do |name, help| if (value = metric[name]) gauge = gauges[name] ||= PrometheusExporter::Metric::Gauge.new("sidekiq_queue_#{name}", help) gauge.observe(value, labels) end end end gauges.values end
type()
click to toggle source
# File lib/prometheus_exporter/server/sidekiq_queue_collector.rb, line 18 def type 'sidekiq_queue' end