module HireFire::Macro::Sidekiq

Public Instance Methods

job_queue_latency(*queues, **options) click to toggle source

Calculates the maximum job queue latency using Sidekiq. If no queues are specified, it measures latency across all available queues.

@param queues [Array<String, Symbol>] (optional) Names of the queues for latency

measurement. If not provided, latency is measured across all queues.

@param options [Hash] Options to control and filter the latency calculation. @option options [Boolean] :skip_retries (false) If true, skips the RetrySet in latency calculation. @option options [Boolean] :skip_scheduled (false) If true, skips the ScheduledSet in latency calculation. @return [Float] Maximum job queue latency in seconds. @example Calculate latency across all queues

HireFire::Macro::Sidekiq.job_queue_latency

@example Calculate latency for the “default” queue

HireFire::Macro::Sidekiq.job_queue_latency(:default)

@example Calculate maximum latency across “default” and “mailer” queues

HireFire::Macro::Sidekiq.job_queue_latency(:default, :mailer)

@example Calculate latency for the “default” queue, excluding scheduled jobs

HireFire::Macro::Sidekiq.job_queue_latency(:default, skip_scheduled: true)

@example Calculate latency for the “default” queue, excluding retries

HireFire::Macro::Sidekiq.job_queue_latency(:default, skip_retries: true)
# File lib/hirefire/macro/sidekiq.rb, line 31
def job_queue_latency(*queues, **options)
  JobQueueLatency.call(*queues, **options)
end
job_queue_size(*queues, **options) click to toggle source

Calculates the total job queue size using Sidekiq. If no queues are specified, it measures size across all available queues.

@param queues [Array<String, Symbol>] (optional) Names of the queues for size measurement.

If not provided, size is measured across all queues.

@param options [Hash] Options to control and filter the count. @option options [Boolean] :server (false) If true, counts jobs server-side using Lua scripting. @option options [Boolean] :skip_retries (false) If true, skips counting jobs in retry queues. @option options [Boolean] :skip_scheduled (false) If true, skips counting jobs in scheduled queues. @option options [Boolean] :skip_working (false) If true, skips counting running jobs. @option options [Integer, nil] :max_scheduled (nil) Max number of scheduled jobs to consider; nil for no limit. @return [Integer] Total job queue size. @example Calculate size across all queues

HireFire::Macro::Sidekiq.job_queue_size

@example Calculate size for the “default” queue

HireFire::Macro::Sidekiq.job_queue_size(:default)

@example Calculate size across “default” and “mailer” queues

HireFire::Macro::Sidekiq.job_queue_size(:default, :mailer)

@example Calculate size for the “default” queue, excluding scheduled jobs

HireFire::Macro::Sidekiq.job_queue_size(:default, skip_scheduled: true)

@example Calculate size for the “default” queue, excluding retries

HireFire::Macro::Sidekiq.job_queue_size(:default, skip_retries: true)

@example Calculate size for the “default” queue, excluding running jobs

HireFire::Macro::Sidekiq.job_queue_size(:default, skip_working: true)

@example Calculate size for the “default” queue using server-side aggregation

HireFire::Macro::Sidekiq.job_queue_size(:default, server: true)

@example Calculate size for the “default” queue, limiting counting of scheduled jobs to 100_000

HireFire::Macro::Sidekiq.job_queue_size(:default, max_scheduled: 100_000)
# File lib/hirefire/macro/sidekiq.rb, line 63
def job_queue_size(*queues, **options)
  JobQueueSize.call(*queues, **options)
end