Sidekiqのダッシュボードと同じ数値をRubyからチェックして異常値の場合、Slackに通知みたいなことをしたかった。
とりあえず、こんな感じで通知させとく。
# 例)死亡が1以上、または待機状態が101以上でアラート
sidekiq_enqueued = sidekiq_stats(:enqueued)
sidekiq_dead = sidekiq_stats(:dead_size)
if sidekiq_enqueued > 100 || sidekiq_dead > 0
# Slackへアラート
end
def sidekiq_stats(type)
stats = Sidekiq::Stats.new
case type
when :enqueued # 待機状態
return stats.enqueued
when :retry_size # 再試行
return stats.retry_size
when :scheduled_size # 予定
return stats.scheduled_size
when :dead_size # 死亡
return stats.dead_size
end
end