A paused Sidekiq queue looks healthy in HTTP uptime
20 checks free.
Sidekiq's web UI is up. Redis is up. The cron job that bills customers has not run since someone paused the queue for a deploy. HTTP monitors will not see that. A heartbeat at the end of the worker will.
Inside the worker
After the work succeeds:
Net::HTTP.get(URI(ENV.fetch("PING_URL")))
Or curl via Open3 if you prefer to keep it out of the Ruby process. Fail the job if the work did not actually complete, so you do not ping.
Unique checks
One check per cron name. "Billing::DailyCharges" and "Billing::Dunning" should not share a ping. Shared pings hide which one died.
Deploys
If you pause Sidekiq during deploys that last longer than grace, either raise grace for that window or ping from a wrapper that still runs. Otherwise you will get a false late alert every release.
FAQ
Can I use Sidekiq's dead set as the alert?
The dead set is for jobs that ran and failed. It does not list jobs that never were enqueued.
What about Solid Queue or Delayed Job?
Same pattern: ping after success, one check per schedule, grace longer than a slow run.