30 lines
872 B
PHP
30 lines
872 B
PHP
<?php
|
|
|
|
namespace App\Filament\Widgets;
|
|
|
|
use App\Services\PrometheusService;
|
|
use Filament\Widgets\Widget;
|
|
|
|
class PrometheusMetrics extends Widget
|
|
{
|
|
protected static string $view = 'filament.widgets.prometheus-metrics';
|
|
|
|
protected function getViewData(): array
|
|
{
|
|
$prometheus = new PrometheusService();
|
|
|
|
$currentMemoryUsage = $prometheus->query('(1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes)) * 100');
|
|
$memoryUsageRange = $prometheus->queryRange(
|
|
'(1 - (avg_over_time(node_memory_MemAvailable_bytes[1h]) / avg_over_time(node_memory_MemTotal_bytes[1h]))) * 100',
|
|
now()->subHour()->timestamp,
|
|
now()->timestamp,
|
|
60
|
|
);
|
|
|
|
return [
|
|
'currentMemoryUsage' => $currentMemoryUsage,
|
|
'memoryUsageRange' => $memoryUsageRange,
|
|
];
|
|
}
|
|
}
|