dotswan/filament-laravel-pulse

v1.1.1 2024-08-12 11:15 UTC

This package is auto-updated.

Last update: 2024-09-12 11:40:38 UTC


README

Latest Version on Packagist Total Downloads Software License

filament-laravel-pulse-v3

简介

Filament Laravel Pulse 是一个旨在增强 Filament 控制面板的综合监控小部件包。它提供了对 Laravel 应用程序性能各个方面的洞察,包括缓存使用、异常、队列、服务器等。通过将这些小部件集成到您的 Filament 控制面板中,您可以获得关键指标的可视化,并简化监控过程。

特性

Filament Laravel Pulse 提供以下特性

  • 服务器监控:跟踪服务器性能指标。
  • 缓存使用:监控缓存利用率和性能。
  • 异常跟踪:查看和管理应用程序抛出的异常。
  • 队列管理:监控作业队列和处理时间。
  • 性能分析:对慢速出站请求、查询和应用使用模式的洞察。

安装

要将 Filament Laravel Pulse 包集成到您的项目中,请按照以下步骤操作

安装 Pulse

composer require laravel/pulse
php artisan vendor:publish --provider="Laravel\Pulse\PulseServiceProvider"
php artisan migrate --step

安装 Filament Laravel Pulse

composer require dotswan/filament-laravel-pulse

Filament Laravel Pulse 可配置以适应您应用程序的具体需求。安装包后,使用 Artisan 发布配置文件

php artisan vendor:publish --provider="Dotswan\FilamentLaravelPulse\FilamentLaravelPulseServiceProvider"

基本用法

要开始使用 Filament Laravel Pulse,请按照以下步骤操作

  1. 创建自定义 Filament 页面:通过创建自定义页面扩展默认的 Filament 控制面板。您可以为自定义仪表板类定义自定义仪表板类,并扩展 app/Filament/Pages/Dashboard

  2. 定义小部件:在您的自定义仪表板类中,定义要包含的小部件。使用提供的 Pulse 小部件(如 PulseCache、PulseExceptions 等)来显示相关指标。

<?php

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
        ];
    }
}

示例配置

以下是您可能发现在发布的 filament-laravel-pulse.php 配置文件中的示例

<?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
    ],
];

修改 'components' 下的数组,以调整 Filament Laravel Pulse 提供的每个监控小部件的设置。

许可证

此包在 MIT 许可证 下分发。

安全

安全对我们来说是一个重点。如果您遇到任何与安全相关的问题或漏洞,请通过我们的 GitHub 问题跟踪器 报告。对于直接沟通,请联系 tech@dotswan.com

贡献

欢迎并重视贡献。增强功能、建议和错误报告有助于提高本包对每个人的质量。以下是如何贡献的说明

  1. 叉项目
  2. 创建功能分支(git checkout -b feature/AmazingFeature
  3. 提交您的更改(git commit -m 'Add some AmazingFeature'
  4. 推送到分支(git push origin feature/AmazingFeature
  5. 打开拉取请求

感谢您考虑为 Filament Laravel Pulse 做出贡献!