Class: Anomonitor::Collectors::SolidQueue

Inherits:
Base
  • Object
show all
Defined in:
lib/anomonitor/collectors/solid_queue.rb

Instance Method Summary collapse

Instance Method Details

#collectObject



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/anomonitor/collectors/solid_queue.rb', line 6

def collect
  unless solid_queue_available?
    log_skip("Solid Queue tables not available")
    return []
  end

  points = []
  points << count_point("claimed", "solid_queue_claimed_executions")
  points << count_point("failed", "solid_queue_failed_executions")
  points << count_point("scheduled", "solid_queue_scheduled_executions")

  if table_exists?("solid_queue_ready_executions")
    points << point(
      source: "solid_queue",
      metric: "queue_depth",
      value: connection.select_value("SELECT COUNT(*) FROM solid_queue_ready_executions").to_i
    )
  end

  points.compact
rescue StandardError => e
  Anomonitor.logger.warn("[Anomonitor] Solid Queue collector error: #{e.message}")
  []
end