amendozaaguiar/filament-route-statistics
Installation:
composer require amendozaaguiar/filament-route-statistics
php artisan vendor:publish --tag="filament-route-statistics-translations"
Register the Plugin:
Add to app/Providers/Filament/AdminPanelProvider.php:
public function panel(Panel $panel): Panel {
return $panel->plugins([
FilamentRouteStatisticsPlugin::make(),
]);
}
Ensure Dependencies:
Verify bilfeldt/laravel-route-statistics is installed (this package depends on it).
Monitoring API Performance:
GET /api/v1/orders with 500ms+ response times).Debugging Issues:
5xx errors with specific routes during deployments.POST /admin/legacy-webhook) for cleanup.Integration with Filament:
public function getWidgets(): array {
return [
FilamentRouteStatisticsPlugin::widget(),
];
}
route:metrics):
use Amendozaaguiar\FilamentRouteStatistics\Queries\Filters\RouteFilter;
FilamentRouteStatisticsPlugin::make()
->query(
fn (Builder $query) => $query->where('uri', 'like', '%/api%')
)
laravel-route-statistics’s middleware to exclude admin routes from tracking:
Route::middleware(['web', 'stats:ignore'])->group(...);
laravel-route-statistics to purge old data (e.g., php artisan route:stats:prune --days=30).Missing Dependencies:
bilfeldt/laravel-route-statistics will break the plugin. Verify with:
composer show bilfeldt/laravel-route-statistics
Database Schema Mismatch:
laravel-route-statistics tables (route_stats, route_statistics) are missing, run:
php artisan route:stats:install
Caching Issues:
php artisan filament:cache:clear
route_stats queries:
DB_LOG_QUERIES=true
RouteStatisticsMiddleware is registered after other middleware (e.g., auth) to avoid false positives.Custom Metrics:
Override the plugin’s table columns to add custom fields (e.g., user_agent):
FilamentRouteStatisticsPlugin::make()
->tableColumns([
Tables\Columns\TextColumn::make('user_agent')->badge(),
]);
Export Data: Use Filament’s actions to export stats to CSV:
FilamentRouteStatisticsPlugin::make()
->actions([
Tables\Actions\ExportAction::make(),
]);
Real-Time Alerts:
Hook into route.statistics.saved event to trigger alerts (e.g., Slack) for critical routes:
RouteStatistics::saved(fn (RouteStatistics $statistics) => {
if ($statistics->status_code >= 500) {
// Notify team
}
});
How can I help you explore Laravel packages today?