1

根据https://github.com/mperham/sidekiq/wiki/Monitoring上的 sidekiq 监控文档,如果我们需要监控队列积压,我们将以下内容添加到config/routes.rb

require 'sidekiq/api'
match "queue-status" => proc { [200, {"Content-Type" => "text/plain"}, [Sidekiq::Queue.new.size < 100 ? "OK" : "UHOH" ]] }, via: :get

监控延迟

match "queue-latency" => proc { [200, {"Content-Type" => "text/plain"}, [Sidekiq::Queue.new.latency < 30 ? "OK" : "UHOH" ]] }, via: :get

Q1。我的应用程序中有多个队列,称为 order_submission、mailers、critical 和 default。如果我想监控特定队列的积压或延迟,请说“order_submission”,我该怎么做?

Q2。该文件还说,We have a Pingdom check every minute which fires off an email if the response == 'UHOH'对于以下

match "queue-status" => proc { [200, {"Content-Type" => "text/plain"}, [Sidekiq::Queue.new.size < 100 ? "OK" : "UHOH" ]] }, via: :get

我知道 Pingdom 服务用于点击 url 以测试性能和可用性,但我不清楚这意味着什么意味着已经存在每分钟运行并发送电子邮件的 pingdom 检查。想对此进行澄清。

谢谢

4

2 回答 2

2

如果你想监控 sidekiq 中的单个队列,你可以在sidekiq_queue_metrics gem 的帮助下做到这一点。它提供以下功能:

  • 查看所有队列的统计信息
  • 查看单个队列的摘要
  • 查看单个队列的故障以及回溯。

每个队列的失败次数也是可配置的。

这是您如何使用此宝石的方法。

require 'sidekiq_queue_metrics'

Sidekiq.configure_server do |config|
  Sidekiq::QueueMetrics.init(config)
end

我还写了一篇关于这个 ruby​​gem 的博客。前往那里了解更多详情。

在此处输入图像描述

于 2018-10-15T16:18:57.533 回答
2

A1可以传递队列名称

Sidekiq::Queue.new('my_queue').size

A2我没有与 Pingdom 合作,所以我可以建议:

  1. 检查他们的文档,他们是否可以解析响应。
  2. 当队列状态不正常时更改响应状态,从列表中选择一个。
于 2018-04-12T13:53:18.890 回答