---
title: 'Horizon - Beautiful queue monitoring'
source: 'https://youtube.com/watch?v=Lb6V4yQ2B4s'
video_id: 'Lb6V4yQ2B4s'
date: 2026-06-14
duration_sec: 304
---

# Horizon - Beautiful queue monitoring

> Source: [Horizon - Beautiful queue monitoring](https://youtube.com/watch?v=Lb6V4yQ2B4s)

## Summary

Laravel Horizon provides a beautiful dashboard and code-driven configuration for managing Redis queues. It allows monitoring key metrics like job throughput, runtime, and failures, and enables easy scaling and configuration of workers.

### Key Points

- **Introduction to Horizon** [0:00] — Horizon is a powerful tool for managing Redis queues with a dashboard and code-driven configuration.
- **Monitoring Metrics** [0:16] — Horizon monitors job throughput, runtime, job failures, and other key metrics.
- **Central Hub** [0:28] — Horizon acts as a central hub for all queue monitoring needs, with a single configuration file for workers.
- **Dashboard Access** [0:41] — Access the dashboard via /horizon; it shows active status, supervisors, and job data.
- **Starting Horizon** [1:00] — Run 'php artisan horizon' to start Horizon and push jobs to the queue.
- **Tweaking Config** [1:58] — Increase max processes in the config file to speed up job processing.
- **Auto-balancing** [2:29] — Horizon auto-balances processes across queues, allocating more to queues with more jobs.
- **Finding Right Settings** [3:14] — Adjust processes, retries, and timeouts based on your specific needs.
- **Summary** [4:39] — Horizon is essential for effective queue management, providing insights and enhancing background job processing.

### Conclusion

Laravel Horizon is essential for managing queues effectively, offering a dashboard and auto-balancing to optimize job processing. Check the official docs for advanced use.

## Transcript

Are you ready to take your Q management
to the next level? Let's explore Level
Horizon, a powerful tool that provides a
beautiful dashboard and code-driven
configuration for managing your Rady's
cues. With Horizon, you can easily
monitor key metrics of your Q system,
such as job throughput, runtime, job
failures, and so on. This means you can
keep your application running smoothly
and efficiently while gaining valuable
insights into your background jobs.
Horizon acts as a central hub for all
your Q monitoring [music] needs. It
allows you to configure your workers in
a single manageable configuration file,
making it easy to scale and modify your
co-workers as needed. Let's take a look
together. Once you have Horizon
installed, you can access the dashboard
by going to / Horizon application. And
this is what it looks by looks like by
default. We don't have any data yet. And
we can see that it's currently inactive.
So let's change this. Now let's start
Horizon and push some jobs to the queue.
And we can do this by running PHP
artisan horizon. Here we go. And you can
also see I have my Q worker for the
default queue already running. So when
we go back to the dashboard, we can now
see it's active. We also see some more
information here about the queue about
supervisors. And we're going to talk
about this just in a bit. But let's push
some chops here so that we actually see
something. And in our application which
is called user lift, we're going to
import some users. And then we're going
to take a look again. And you can see
suddenly something is happening here. We
have 100 and one chops. Here we see jobs
per minute. We see currently it's just
running one process. And we can see here
on the left the pending jobs. It seems
like everything was already running. And
here are our completed jobs which we
used in order to import all the users to
our import users table. This already
went pretty well, but we can speed
things up a little bit while tweaking
our Horizon config file. Now, let's
increase the number of max processes
here for our local supervisor here,
which we're using. Then, we're going to
need to rerun Horizon and rerun our
Qwork. And then back here now, we're
going to import, let's say, 1,000 users
here. And if we go to the dashboard,
let's see what's happening now here.
Okay, we can already see that there are
one around 1,000 chops here being added
to our default queue. And we can see
it's already using all the three
processes. And you can also see that
chops per minute is now way faster than
it was before. So this means more
processes of course means that you can
handle more chops at the same time. And
I think we're already done here. Let's
see. Now we still have some pending jobs
here. The completed ones. You could also
see failed ones, but we don't have any
of them here. But it looks like it's
still running here. But it's going
pretty fast here as you can see. And I
think we should be already done in a
couple of seconds. 80 more jobs here.
Here we go. Pending jobs. No, we're done
now. And yeah, this was of course now
very fast now while running while using
three processes. And you can see it has
has gone down again to one process again
because that's the only thing we
currently need because there are no
chops on our default queue.
It is important to mention that you have
to find the right settings, amount of
processing, retries or timeouts for your
own situation. There is a lot you can
tweak to your exact needs. But I want to
show you here one more thing. Okay, back
here in the config file for our local
supervisor, we have defined the default
queue, a male ske, and the backups Q.
And we have given them 10 processes to
share. And now again, let's import let's
say 1,000 users again. Let's start this
and let's go back here. We can already
see we have 1,000 chops here, but we
also see the other cues here, backups on
meals. We have no chops here at all. And
you can see it's already using a little
more processes than before, now it's
using um five processes. And our
supervisor is currently using already
eight. So this means from those 10
processes which we have allocated for
the supervisor one now most of them are
being used by default Q because they
already see that there are no shops
being processed on backups and mails and
this is called autobalancing. So that it
use all the possible processes for the
[snorts] queue which has the most chops
and you can see it's already done by
processing around 1,000 chops per
minute. And now the processes went back
to just one because yeah, Horizon sees
there that there are zero jobs for all
the other cues. So only three processes
are currently being used for our
supervisor.
In summary, Laval Horizon is essential
tool for any Laval developer looking to
manage their cues effectively. It
enhances your application background job
processing capabilities and provides
valuable insights into your job
performance. For more details and
advanced uses, be sure to check out the
official docs. As always, happy coding
and enjoy managing your cues with
Larable Horizon.
