APIを介してsidekiqのステータスに関する情報を取得できます。ワーカー用のAPIメソッドはありません。
特定のクラスが実行しているワーカーの数を知りたい。たとえば、という名前のクラスがFooStreamer.rb
あり、それはメソッドで実行されperform_async
ます。現時点で何人のワーカーが実行されているか知りたいです。
何か案は?
APIを介してsidekiqのステータスに関する情報を取得できます。ワーカー用のAPIメソッドはありません。
特定のクラスが実行しているワーカーの数を知りたい。たとえば、という名前のクラスがFooStreamer.rb
あり、それはメソッドで実行されperform_async
ます。現時点で何人のワーカーが実行されているか知りたいです。
何か案は?
マイク(sidekiqの作成者)が次のコミットで解決しました:
https://github.com/mperham/sidekiq/commit/c606dd4fde8cdc795d2c750d211a74bf1b380217
Sidekiqには、mydomain.com/sidekiqからアクセスできるSinatraWebインターフェイスが付属しています。これらの指示に従ってマウントする必要があります(PassengerとUnicornのどちらを使用するかによって異なります)
https://github.com/mperham/sidekiq/wiki/Monitoring
私が知っているAPIはありませんが、Sidekiq情報を格納するRedisキーを簡単に繰り返し処理して、特定のキューで作業しているワーカーの数を数えることができます。
workers = redis.smembers("workers")
workers.each do |worker|
tokens = worker.split(":")
machine = tokens[0]
pid = tokens[1].split("-")[0]
key = "worker:" + pid
obj = redis.get(key)
#obj will contain information on what queue this worker is processing
end
https://github.com/phstc/sidekiq-statsdを使用し、Graphiteを使用して統計を確認できます。