sentry-laravel icon indicating copy to clipboard operation
sentry-laravel copied to clipboard

Easy way to setup queue monitoring

Open stayallive opened this issue 2 years ago • 3 comments

We have the $schedule->command(...)->sentryMonitor() to "magically" setup cron monitoring for scheduled commands, how cool would it be if we could have someway to do this but for queues.

Note: This is pseude code and by no means a final draft or how it should or could work

$schedule->sentryWatchQueue('first_queue', 'second_queue')->everyFiveMinutes();

This would setup a scheduled command that fires a job on 2 queues every five minutes which would upsert crons for those queues allowing you to monitor if a queue is still running and processing jobs.

Note: Would probably need to prevent queuing the job multiple times to filling up a queue or should be a throttled queue job so it doesn't DDoS Sentry once it comes back online

h/t @sebastiaankloos

stayallive avatar Jun 23 '23 21:06 stayallive

Thanks for tagging @stayallive 👀

SebastiaanKloos avatar Jun 23 '23 21:06 SebastiaanKloos

:shipit:

cleptric avatar Jun 23 '23 21:06 cleptric

There is Horizon for monitoring Laravel's queues. But what it lacks is, it doesn't simulate/reproduce the state of other queues for concurrently running queues. Possible features could be as the following:

  • Showing the jobs [and payloads] running at the same time. I.e. There are two jobs querying the database concurrently, I want to have those jobs' names in a event-like format on Sentry.
  • Scenario: I'm expecting a job to run, what happened that the didn't run for any reason !
  • A Graph-like chart to see the jobs running on each queue with their timestamps.

Laravel's Horizon is a mature system, so this feature can be integrated with it.

arfar-x avatar Jul 08 '24 08:07 arfar-x