Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Messenger Monitor Bundle

Messenger Monitor Bundle Laravel Package

zenstruck/messenger-monitor-bundle

Symfony bundle to monitor Symfony Messenger: track dispatched messages, handlers, retries and failures with a built-in dashboard and persistence. Helps debug async workflows and gain insight into queue activity in dev or production.

View on GitHub
Deep Wiki
Context7

Batteries included UI to monitor your Messenger workers, transports, schedules, and messages.

Frequently asked questions about Messenger Monitor Bundle
Can I use this package with Laravel’s built-in queue system (Queue::*) instead of Symfony Messenger?
No, this package requires Symfony Messenger. If you're using Laravel’s legacy queue system, you’ll need to migrate to Messenger first (e.g., `composer require symfony/messenger` and configure transports). The bundle hooks directly into Messenger’s events, so it won’t work with the older Queue facade.
Does this bundle work with Laravel 8 or older versions?
This bundle is designed for Laravel 9+ (Symfony 6+). Older Laravel versions may require additional setup or a Symfony Messenger bridge, but compatibility isn’t guaranteed. Check the [Symfony Messenger documentation](https://symfony.com/doc/current/messenger.html) for Laravel 8 support first.
How do I set up authentication for the dashboard in a Laravel app?
The dashboard uses Symfony’s security layer, so you’ll need to integrate Laravel’s auth system. Options include using Symfony’s `UserProvider` or configuring middleware to redirect unauthenticated users. The bundle doesn’t enforce auth by default, so you’ll need to handle this manually in your Laravel routes or middleware.
What database drivers does this bundle support for storing message history?
Only Doctrine ORM is supported for storing message history. If you’re already using Eloquent, you’ll need to create a custom `ProcessedMessage` entity extending the bundle’s base class and configure it in `config/packages/zenstruck_messenger_monitor.yaml`. No other database drivers (e.g., MySQL, PostgreSQL) are directly supported.
Will this bundle slow down my queue workers or add significant overhead?
The bundle is optimized for read-heavy operations and shouldn’t significantly impact worker performance. However, storing message history in the database may add minor latency. Monitor query performance if you’re processing high volumes of messages, especially in production.
Can I customize the dashboard UI or build my own monitoring interface?
Yes! The bundle provides tools to build your own UI. You can access raw data via the `messenger:monitor` command or Symfony Messenger events. The README includes an [Advanced Usage](#advanced-usage) section with details on extending or replacing the default UI.
Does this bundle support monitoring for Amazon SQS, Redis, or other transports?
Yes, the bundle works with all Symfony Messenger transports, including Amazon SQS, Redis, and database queues. It tracks messages across transports and provides visibility into retries, failures, and schedules. However, legacy Laravel queue drivers (e.g., `sync`, `database`) may require explicit configuration.
How do I handle message history retention or cleanup for production?
The bundle doesn’t include built-in cleanup, but you can configure Doctrine’s lifecycle callbacks or use Laravel’s scheduled tasks (e.g., `Artisan::schedule`) to purge old records. Alternatively, add a `TTL` column to the `processed_messages` table and use database-level cleanup.
Is there a way to monitor scheduled messages or delayed dispatches?
Yes, the bundle tracks scheduled and delayed messages out of the box. The dashboard shows dispatch times, delays, and whether messages were processed successfully. You can also filter by time periods using the `--period` option in the `messenger:monitor` command.
What alternatives exist if I don’t want to use this bundle for monitoring?
If you’re using Laravel Horizon, it provides built-in monitoring for queues but lacks per-message granularity. For Symfony Messenger, alternatives include custom logging (e.g., Monolog) or third-party tools like Datadog or Sentry. However, this bundle offers a dedicated UI with historical tracking, which those alternatives may not provide natively.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
phalcon/cli-options-parser
capell-app/block-library
axium/identity
cetria/laravel-dummy-models
cetria/reflection-helper
agropredict/sso-auth-bundle
evolvestudio/spam-protection
directorytree/privacy-filter-classifier
datacore/hub-sdk
develia/commons
cuci/prototurk-sdk
cuci/prototurk-sdk-symfony
develia/geo-bundle
dreamzy/livewire-charts
touchestate-sdk/php-sdk
22h/doctrine-garbage-collection-bundle
agtp/agtp-php
agtp/mod-php
splash/sonata-admin
splash/metadata