Files
data-collection-terminal/management-panel/app/Filament/Widgets/PrometheusMetrics.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,
];
}
}