class Bigcommerce::Prometheus::TypeCollectors::Resque

Collect resque data from collectors and parse them into metrics

Public Instance Methods

build_metrics() click to toggle source

Initialize the collector

@return [Hash]

# File lib/bigcommerce/prometheus/type_collectors/resque.rb, line 30
def build_metrics
  {
    workers_total: PrometheusExporter::Metric::Gauge.new('resque_workers_total', 'Number of active workers'),
    jobs_failed_total: PrometheusExporter::Metric::Gauge.new('jobs_failed_total', 'Number of failed jobs'),
    jobs_pending_total: PrometheusExporter::Metric::Gauge.new('jobs_pending_total', 'Number of pending jobs'),
    jobs_processed_total: PrometheusExporter::Metric::Gauge.new('jobs_processed_total', 'Number of processed jobs'),
    queues_total: PrometheusExporter::Metric::Gauge.new('queues_total', 'Number of total queues'),
    queue_sizes: PrometheusExporter::Metric::Gauge.new('queue_sizes', 'Size of each queue')
  }
end
collect_metrics(data:, labels: {}) click to toggle source

Collect resque metrics from input data

# File lib/bigcommerce/prometheus/type_collectors/resque.rb, line 44
def collect_metrics(data:, labels: {})
  metric(:workers_total).observe(data['workers_total'], labels)
  metric(:jobs_failed_total).observe(data['jobs_failed_total'], labels)
  metric(:jobs_pending_total).observe(data['jobs_pending_total'], labels)
  metric(:jobs_processed_total).observe(data['jobs_processed_total'], labels)
  metric(:queues_total).observe(data['queues_total'], labels)

  data['queues'].each do |name, size|
    metric(:queue_sizes).observe(size, labels.merge(queue: name))
  end
end