Laravel Pulse
Enhance your Filament dashboard with comprehensive monitoring widgets.
Author:
DotSwan
Documentation
#Introduction
Filament Laravel Pulse is a package designed to enhance your Filament dashboard with comprehensive monitoring widgets. It provides insights into various aspects of your Laravel application's performance, including cache usage, exceptions, queues, servers, and more. By integrating these widgets into your Filament dashboard, you gain visibility into critical metrics and streamline your monitoring process.
#Features
Filament Laravel Pulse offers the following features:
- Server Monitoring: Track server performance metrics.
- Cache Usage: Monitor cache utilization and performance.
- Exception Tracking: View and manage exceptions thrown by your application.
- Queue Management: Monitor job queues and processing times.
- Performance Analytics: Insights into slow outgoing requests, queries, and application usage patterns.
#Installation
To integrate the Filament Laravel Pulse package into your project, follow these steps:
#Version Compatibility
This package supports multiple Filament versions. Please install the appropriate version based on your Filament installation:
-
For Filament 3.x: Install version
1.1.7composer require dotswan/filament-laravel-pulse:^1.1.7 -
For Filament 4.x: Install version
2.xcomposer require dotswan/filament-laravel-pulse:^2.0
Install Pulse:
composer require laravel/pulse
php artisan vendor:publish --provider="Laravel\Pulse\PulseServiceProvider"
php artisan migrate --step
Install Filament Laravel Pulse:
# For Filament 3.x
composer require dotswan/filament-laravel-pulse:^1.1.7
# For Filament 4.x
composer require dotswan/filament-laravel-pulse:^2.0
Filament Laravel Pulse can be configured to suit your application's specific needs. After installing the package, publish the configuration file using Artisan:
php artisan vendor:publish --provider="Dotswan\FilamentLaravelPulse\FilamentLaravelPulseServiceProvider"
#Basic Usage
To start using Filament Laravel Pulse, follow these steps:
-
Create a Custom Filament Page: Extend the default Filament dashboard by creating a custom page. You can define your custom dashboard class and extend
app/Filament/Pages/Dashboard. -
Define Widgets: Inside your custom dashboard class, define which widgets to include. Use the provided Pulse widgets (PulseCache, PulseExceptions, etc.) to display relevant metrics.
<?php
namespace App\Filament\Pages;
use Dotswan\FilamentLaravelPulse\Widgets\PulseCache;
use Dotswan\FilamentLaravelPulse\Widgets\PulseExceptions;
use Dotswan\FilamentLaravelPulse\Widgets\PulseQueues;
use Dotswan\FilamentLaravelPulse\Widgets\PulseServers;
use Dotswan\FilamentLaravelPulse\Widgets\PulseSlowOutGoingRequests;
use Dotswan\FilamentLaravelPulse\Widgets\PulseSlowQueries;
use Dotswan\FilamentLaravelPulse\Widgets\PulseSlowRequests;
use Dotswan\FilamentLaravelPulse\Widgets\PulseUsage;
use Filament\Actions\Action;
use Filament\Actions\ActionGroup;
use Filament\Pages\Dashboard\Concerns\HasFiltersAction;
use Filament\Support\Enums\ActionSize;
class Dashboard extends \Filament\Pages\Dashboard
{
use HasFiltersAction;
public function getColumns(): int|string|array
{
return 12;
}
protected function getHeaderActions(): array
{
return [
ActionGroup::make([
Action::make('1h')
->action(fn() => $this->redirect(route('filament.manager.pages.dashboard'))),
Action::make('24h')
->action(fn() => $this->redirect(route('filament.manager.pages.dashboard', ['period' => '24_hours']))),
Action::make('7d')
->action(fn() => $this->redirect(route('filament.manager.pages.dashboard', ['period' => '7_days']))),
])
->label(__('Filter'))
->icon('heroicon-m-funnel')
->size(ActionSize::Small)
->color('gray')
->button()
];
}
public function getWidgets(): array
{
return [
PulseServers::class,
PulseCache::class,
PulseExceptions::class,
PulseUsage::class,
PulseQueues::class,
PulseSlowQueries::class,
PulseSlowRequests::class,
PulseSlowOutGoingRequests::class
];
}
}
Example Configuration
Here's an example of what you might find in the published filament-laravel-pulse.php configuration file:
<?php
return [
'components' => [
// Customize and configure your monitoring widgets here
'cache' => [
'columnSpan' => [
'md' => 5,
'xl' => 5,
],
'cols' => 'full',
'ignoreAfter' => '1 hour',
'isDiscovered' => true,
'isLazy' => true,
'sort' => null,
'canView' => true,
'columnStart' => [],
],
// Define more components as needed
],
];
Modify the array under 'components' to adjust settings for each monitoring widget provided by Filament Laravel Pulse.
#License
This package is distributed under the MIT License.
#Security
Security is a priority for us. If you encounter any security-related issues or vulnerabilities, please report them via our GitHub issue tracker. For direct communication, reach out to tech@dotswan.com.
#Contribution
Contributions are welcome and valued. Enhancements, suggestions, and bug reports help improve this package for everyone. Here's how you can contribute:
- Fork the Project
- Create a Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Thank you for considering contributing to the Filament Laravel Pulse!
The author
At Dotswan, we excel in transforming visionary ideas into reality, offering comprehensive services from IT solutions to DevOps, and specializing in creating highly responsive websites and scalable mobile apps. Our team of experts ensures top-tier user experience, security, and innovative designs.
From the same author
Map Picker
A field designed to simplify the process of choosing a location on a map and obtaining its geo-coordinates.
Author:
DotSwan
Grapes JS
Grapesjs field type for visual HTML editing. Drag-and-drop functionality to seamlessly design.
Author:
DotSwan
CodeMirror Editor
Supercharge Filament with CodeMirror! Effortlessly edit CSS, HTML, JS, JSON, PHP in Filament forms.
Author:
DotSwan
Featured Plugins
A selection of plugins curated by the Filament team
Custom Dashboards
Let your users build and share their own dashboards with a drag-and-drop interface. Define your data sources in PHP and let them do the rest.
Filament
Data Lens
Advanced Data Visualization for Laravel Filament - a premium reporting solution enabling custom column creation, sophisticated filtering, and enterprise-grade data insights within admin panels.
Padmission
Custom Fields
Eliminate custom field migrations forever. Let your users create and manage form fields directly in Filament admin panels with 20+ built-in field types, validation, and zero database changes.
Relaticle