如何查看Sidekiq的工人统计数据?

时间:2013-01-21 09:36:35

标签: ruby-on-rails sidekiq

我们可以通过its API获取有关sidekiq状态的一些信息。工人没有API方法。

我想知道某个班级正在运行的工人数量。例如,我有一个名为FooStreamer.rb的类,它使用perform_async方法执行。我想知道它目前运行的工人数量。

有什么想法吗?

3 个答案:

答案 0 :(得分:4)

由Mike(sidekiq的创建者)通过以下提交解决:

https://github.com/mperham/sidekiq/commit/c606dd4fde8cdc795d2c750d211a74bf1b380217

答案 1 :(得分:1)

Sidekiq附带了Sinatra网络界面,您可以通过mydomain.com/sidekiq访问该界面。您只需按照这些说明进行安装(根据您使用的是乘客还是独角兽而有所不同)

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

答案 2 :(得分:0)

您可以使用https://github.com/phstc/sidekiq-statsd并使用Graphite检查统计数据。