Как сбросить счетчики sidekiq?

В приборной панели моего sidekiq я вижу слева коробку со счетчиками

Processed 168
Failed 111
Busy 0
Scheduled 0
Retries 0
Enqueued 0

Как сбросить их все на 0?


person AgostinoX    schedule 05.04.2013    source источник


Ответы (7)


Чтобы сбросить обработанные задания:

Sidekiq.redis {|c| c.del('stat:processed') }

и для сброса неудачных заданий:

Sidekiq.redis {|c| c.del('stat:failed') }
person Roberto Barros    schedule 29.04.2013

Чтобы сбросить статистику:

Sidekiq::Stats.new.reset

ref: Добавить сброс статистики в окно сводки веб-интерфейса и метод в API

Кроме того, теперь вы можете очистить определенную статистику:

  • одиночная статистика от Sidekiq::Stats.new.reset('failed')
  • или несколько статистических данных от Sidekiq::Stats.new.reset('failed', 'processed')

(Спасибо https://stackoverflow.com/users/2475008/tmr08c за обновление)

person Paul Keen    schedule 13.12.2013
comment
API был обновлен, чтобы теперь принимать статистику, которую вы хотите сбросить источник. Теперь вы можете очистить определенную статистику Sidekiq::Stats.new.reset('failed') или несколько статистик Sidekiq::Stats.new.reset('failed', 'processed'). - person tmr08c; 30.12.2015
comment
Это кажется более предпочтительным решением, и ИМО должен быть выбранным ответом. - person Ben; 01.02.2018

Кроме того, чтобы сбросить определенные дни в панели истории, вы можете сделать:

Sidekiq.redis {|c| c.del('stat:processed:2015-07-02') }
Sidekiq.redis {|c| c.del('stat:failed:2015-07-02') }

И повторяйте для каждого дня, который вы хотите очистить.

Это полезно, если у вас возникало и терпело неудачу дикое задание во много раз чаще, чем обычно, и вы получаете график истории с огромным всплеском, который превращает все ваши обычные значения истории в плоскую линию.

person Mikel Lindsaar    schedule 02.07.2015

1. Очистить набор повторных попыток

Sidekiq::RetrySet.new.clear

2. Очистить запланированные задания

Sidekiq::ScheduledSet.new.clear

3. Очистите задания «Обработано» и «Не удалось»

Sidekiq::Stats.new.reset

3. Очистить статистику «мертвых» вакансий

Sidekiq::DeadSet.new.clear

Шрифт: https://gist.github.com/wbotelhos/fb865fba2b4f3518c8e533c7487d5354

person Victor Hugo    schedule 26.06.2019

Просто чтобы дополнить все хорошие ответы, сбросьте счетчики, используя интерактивный режим ruby, выполнив это в консоли:

irb
irb(main):001:0> require 'sidekiq/api'
=> true
irb(main):002:0> Sidekiq.redis {|c| c.del('stat:processed') }
=> 1
irb(main):003:0> Sidekiq.redis {|c| c.del('stat:failed') }
=> 1
person Paulo Victor    schedule 25.10.2017

Если вы хотите удалить все это вместе с панелью истории для определенных дат, вот полезный фрагмент:

from_date = Date.new(2016, 1, 1)
to_date = Date.today

Sidekiq.redis do |redis|
  redis.del("stat:processed")
  redis.del("stat:failed")

  (from_date..to_date).each do |date|
    redis.del("stat:processed:#{date}")
    redis.del("stat:failed:#{date}")
  end
end
person Milovan Zogovic    schedule 05.01.2017

Это также сбросит историю и полностью удалит все из очереди Redis.

Sidekiq.redis {|c| c.flushdb }
person user1320651    schedule 27.09.2017
comment
Это ядерный вариант, и он удалит все в этой базе данных Redis, а не только статистику Sidekiq. Это означает, что вы потеряете любые новые задания Sidekiq, любые сеансы и любые другие данные, для которых вы используете Redis. - person Parker Selbert; 27.09.2017
comment
Спасибо, Паркер, я был чем-то занят и не закончил пост, но да, вы правы на 100%. - person user1320651; 27.09.2017
comment
Ядерный вариант может быть очень полезен, когда вы работаете на промежуточном/разрабатываемом сервере. Спасибо тебе за это. - person Jesse Farmer; 04.04.2019