class SidekiqMonitoring::Queue

Constants

DEFAULT_LATENCY_THRESHOLD
DEFAULT_THRESHOLD

Attributes

latency[RW]
latency_critical_threshold[RW]
latency_warning_threshold[RW]
name[R]
queue_size_critical_threshold[RW]
queue_size_warning_threshold[RW]
size[R]

Public Class Methods

new(name, size, latency, queue_size_thresholds = nil, latency_thresholds = nil) click to toggle source
# File lib/sidekiq-monitoring.rb, line 107
def initialize(name, size, latency, queue_size_thresholds = nil, latency_thresholds = nil)
  @name = name
  @size = size
  @latency = latency
  @queue_size_warning_threshold, @queue_size_critical_threshold = (queue_size_thresholds ? queue_size_thresholds : DEFAULT_THRESHOLD)
  @latency_warning_threshold, @latency_critical_threshold = (latency_thresholds ? latency_thresholds : DEFAULT_LATENCY_THRESHOLD)
  @status = monitoring_status
end

Public Instance Methods

as_json() click to toggle source
# File lib/sidekiq-monitoring.rb, line 116
def as_json
  {
    'name' => name,
    'status' => status,
    'size' => size,
    'queue_size_warning_threshold' => queue_size_warning_threshold,
    'queue_size_critical_threshold' => queue_size_critical_threshold,
    'latency' => latency,
    'latency_warning_threshold' => latency_warning_threshold,
    'latency_critical_threshold' => latency_critical_threshold
  }
end
monitoring_status() click to toggle source
# File lib/sidekiq-monitoring.rb, line 129
def monitoring_status
  return 'CRITICAL' if size >= queue_size_critical_threshold || latency >= latency_critical_threshold
  return 'WARNING' if size >= queue_size_warning_threshold || latency >= latency_warning_threshold
  'OK'
end