- How do I install Laravel Pulse in a Laravel 10+ project?
- Run `composer require laravel/pulse` and then execute `php artisan pulse:install`. This publishes the Pulse assets, config, and migrations. Ensure your app uses Laravel 10–13, PHP 8.1+, and Redis for real-time updates. No additional steps are needed unless you customize the dashboard.
- Does Laravel Pulse work with Laravel 9.x or older versions?
- Pulse officially supports Laravel 10–13. While it may work with Laravel 9.x, compatibility isn’t guaranteed. Check the [Laravel Pulse documentation](https://laravel.com/docs/pulse) for version-specific notes or consider upgrading to a supported Laravel version for full feature access.
- What metrics does Pulse track by default, and can I add custom ones?
- Pulse tracks HTTP requests, queue jobs, logs, and failed exceptions by default. You can add custom metrics using `Pulse::record()` or create custom cards via `Pulse::card()`. For example, track third-party API calls or database query performance by extending the `PulseCard` class.
- How does Pulse handle high-traffic Laravel applications (e.g., 10K+ requests/day)?
- Pulse processes metrics in batches via the `pulse:work` command, configurable with `pulse.data_flush_every`. For high traffic, reduce this value (e.g., 30s) and ensure your Redis and database can handle the load. Monitor queue backlogs using Horizon to avoid performance bottlenecks.
- Can I integrate Laravel Pulse with existing monitoring tools like Datadog or New Relic?
- Pulse is a dashboard-first tool and doesn’t natively export metrics to third-party systems. However, you can manually query the `pulse_metrics` table or use Laravel’s queue observers to forward data to tools like Datadog. The Pulse API is undocumented, so custom integration may require reverse-engineering.
- What’s the storage impact of Pulse, and how do I manage data retention?
- Pulse stores metrics in your Laravel database, which can grow over time. Use `pulse.data_trim_duration` (default: 30 days) to control retention. For large-scale apps, consider archiving old data to a separate table or using Laravel’s queue to offload processing.
- How do I secure the Pulse dashboard in production?
- Pulse requires authentication middleware (e.g., `auth:sanctum`). Protect the `/pulse` route by adding it to your `VerifyCsrfToken` or `auth` middleware arrays. Avoid logging sensitive data (e.g., passwords) in custom metrics or logs to prevent exposure.
- Does Pulse support distributed Laravel applications or microservices?
- Pulse is designed for single Laravel applications and isn’t optimized for distributed setups. If you need multi-instance monitoring, aggregate metrics manually (e.g., via a central database) or use a dedicated tool like Prometheus for microservices.
- How can I customize the Pulse dashboard UI or add new cards?
- Pulse uses Tailwind CSS for styling, so you can override styles in your app’s CSS. To add custom cards, extend the `PulseCard` class and register them via `Pulse::card()`. For example, create a card to monitor third-party API latency or custom business metrics.
- What are the alternatives to Laravel Pulse for monitoring Laravel apps?
- Alternatives include Laravel Telescope (for debugging), Laravel Debugbar (for request insights), and third-party tools like Sentry (error tracking), Blackfire (profiling), or commercial APM tools like New Relic. Pulse focuses on real-time operational metrics, while Telescope is better for debugging individual requests.