在 rails 应用程序中监控特定的 sidekiq 队列

Monitoring a particular sidekiq queue in a rails application

根据 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 的队列、邮件程序、关键队列和默认队列。 如果我想监控特定队列的积压或延迟,请说 '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 检查。想澄清一下。

谢谢

A1may pass queue name:

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

A2 我没有使用 Pingdom,所以我只能建议:

  1. 检查他们的文档,他们是否可以解析响应。
  2. 当queque状态为not时更改响应状态 OK,选择一个from the list

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

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

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

这里是你如何使用这个 gem。

require 'sidekiq_queue_metrics'

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

Also I have written a blog on this rubygem. 前往那里了解更多详情。