ruby-on-rails 如何查看Sidekiq中工人的统计数据?

erhoui1w  于 2023-02-01  发布在  Ruby
关注(0)|答案(3)|浏览(91)

我们可以通过its API获得一些关于sidekiq状态的信息,没有用于工作者的API方法。
我想知道某个类正在运行多少个工人。例如,我有一个名为FooStreamer.rb的类,它是用perform_async方法执行的。我想知道当前它正在运行多少个工人。
有什么想法吗?

siotufzp

siotufzp2#

Sidekiq附带了一个Sinatra Web界面,您可以通过www.example.com访问mydomain.com/sidekiq。您只需要按照这些说明安装它(它根据您使用的是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
cngwdvgl

cngwdvgl3#

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

相关问题