Files
jabali-panel/app/Filament/Admin/Widgets/MemoryWidget.php
2026-01-24 19:36:46 +02:00

52 lines
1.4 KiB
PHP

<?php
declare(strict_types=1);
namespace App\Filament\Admin\Widgets;
use App\Services\Agent\AgentClient;
use Filament\Widgets\StatsOverviewWidget as BaseWidget;
use Filament\Widgets\StatsOverviewWidget\Stat;
class MemoryWidget extends BaseWidget
{
protected function getColumns(): int
{
return 4;
}
protected function getStats(): array
{
try {
$agent = new AgentClient();
$overview = $agent->metricsOverview();
$memory = $overview['memory'] ?? [];
} catch (\Exception $e) {
return [];
}
$total = ($memory['total'] ?? 0) / 1024;
$used = ($memory['used'] ?? 0) / 1024;
$cached = ($memory['cached'] ?? 0) / 1024;
$available = ($memory['available'] ?? 0) / 1024;
return [
Stat::make(__('Total'), number_format($total, 1) . ' GB')
->description(__('Total memory'))
->color('gray'),
Stat::make(__('Used'), number_format($used, 1) . ' GB')
->description(__('In use'))
->color('success'),
Stat::make(__('Cached'), number_format($cached, 1) . ' GB')
->description(__('Cached data'))
->color('primary'),
Stat::make(__('Available'), number_format($available, 1) . ' GB')
->description(__('Free to use'))
->color('warning'),
];
}
}