Sha256: 76f5e2f9d3ab083362d19f03a0c6629ea433de3fcffeccf74ee498ce363395ce

Contents?: true

Size: 1.08 KB

Versions: 32

Compression:

Stored size: 1.08 KB

Contents

--
-- Adapted from https://github.com/mperham/sidekiq/blob/2f9258e4fe77991c526f7a65c92bcf792eef8338/lib/sidekiq/api.rb#L231
--
local queue_name      = KEYS[1]
local initial_size    = redis.call('llen', queue_name)
local deleted_size    = 0
local page            = 0
local page_size       = 2000
local temp_job_stats  = {}
local final_job_stats = {}

while true do
  local range_start = page * page_size - deleted_size
  local range_end   = range_start + page_size - 1
  local entries     = redis.call('lrange', queue_name, range_start, range_end)

  if #entries == 0 then
    break
  end

  page = page + 1

  for index, entry in next, entries do
    local class = cjson.decode(entry)['class']
    if class ~= nil then
      if temp_job_stats[class] ~= nil then
        temp_job_stats[class] = temp_job_stats[class] + 1
      else
        temp_job_stats[class] = 1
      end
    end
  end

  deleted_size = initial_size - redis.call('llen', queue_name)
end

for class, count in next, temp_job_stats do
  local stat_entry = {class, count}
  table.insert(final_job_stats, stat_entry)
end

return final_job_stats

Version data entries

32 entries across 32 versions & 2 rubygems

Version Path
gitlab-exporter-10.5.0 lib/gitlab_exporter/sidekiq_queue_job_stats.lua
gitlab-exporter-10.4.0 lib/gitlab_exporter/sidekiq_queue_job_stats.lua
gitlab-exporter-10.3.0 lib/gitlab_exporter/sidekiq_queue_job_stats.lua
gitlab-exporter-10.2.0 lib/gitlab_exporter/sidekiq_queue_job_stats.lua
gitlab-exporter-10.1.0 lib/gitlab_exporter/sidekiq_queue_job_stats.lua
gitlab-exporter-10.0.0 lib/gitlab_exporter/sidekiq_queue_job_stats.lua
gitlab-exporter-9.1.0 lib/gitlab_exporter/sidekiq_queue_job_stats.lua
gitlab-exporter-9.0.0 lib/gitlab_exporter/sidekiq_queue_job_stats.lua
gitlab-exporter-8.0.0 lib/gitlab_exporter/sidekiq_queue_job_stats.lua
gitlab-exporter-7.2.0 lib/gitlab_exporter/sidekiq_queue_job_stats.lua
gitlab-exporter-7.1.2 lib/gitlab_exporter/sidekiq_queue_job_stats.lua
gitlab-exporter-7.1.1 lib/gitlab_exporter/sidekiq_queue_job_stats.lua
gitlab-exporter-7.1.0 lib/gitlab_exporter/sidekiq_queue_job_stats.lua
gitlab-exporter-7.0.6 lib/gitlab_exporter/sidekiq_queue_job_stats.lua
gitlab-exporter-7.0.5 lib/gitlab_exporter/sidekiq_queue_job_stats.lua
gitlab-exporter-7.0.4 lib/gitlab_exporter/sidekiq_queue_job_stats.lua
gitlab-exporter-7.0.3 lib/gitlab_exporter/sidekiq_queue_job_stats.lua
gitlab-exporter-7.0.2 lib/gitlab_exporter/sidekiq_queue_job_stats.lua
gitlab-exporter-7.0.1 lib/gitlab_exporter/sidekiq_queue_job_stats.lua
gitlab-exporter-7.0.0 lib/gitlab_exporter/sidekiq_queue_job_stats.lua