diff --git a/app/Http/Controllers/Admin/AdminPageController.php b/app/Http/Controllers/Admin/AdminPageController.php index f848de79b..e615326c3 100644 --- a/app/Http/Controllers/Admin/AdminPageController.php +++ b/app/Http/Controllers/Admin/AdminPageController.php @@ -399,4 +399,54 @@ class AdminPageController extends BasePageController 'api_hits' => $apiHitsPerMinute, ]); } + + /** + * Get current system metrics (API endpoint) + */ + public function getCurrentMetrics() + { + $cpuUsage = $this->getCpuUsage(); + $ramUsage = $this->getRamUsage(); + $cpuInfo = $this->getCpuInfo(); + $loadAverage = $this->getLoadAverage(); + + return response()->json([ + 'success' => true, + 'cpu' => [ + 'current' => $cpuUsage, + 'cores' => $cpuInfo['cores'], + 'threads' => $cpuInfo['threads'], + 'model' => $cpuInfo['model'], + 'load_average' => $loadAverage, + ], + 'ram' => [ + 'used' => $ramUsage['used'], + 'total' => $ramUsage['total'], + 'percentage' => $ramUsage['percentage'], + ], + ]); + } + + /** + * Get historical system metrics (API endpoint) + */ + public function getHistoricalMetrics() + { + $timeRange = request('range', '24h'); // 24h or 30d + + if ($timeRange === '30d') { + $cpuHistory = $this->systemMetricsService->getDailyMetrics('cpu', 30); + $ramHistory = $this->systemMetricsService->getDailyMetrics('ram', 30); + } else { + $cpuHistory = $this->systemMetricsService->getHourlyMetrics('cpu', 24); + $ramHistory = $this->systemMetricsService->getHourlyMetrics('ram', 24); + } + + return response()->json([ + 'success' => true, + 'cpu_history' => $cpuHistory, + 'ram_history' => $ramHistory, + 'range' => $timeRange, + ]); + } } diff --git a/routes/web.php b/routes/web.php index 7dc26cfc6..0d877eabb 100644 --- a/routes/web.php +++ b/routes/web.php @@ -170,8 +170,8 @@ Route::middleware('role:Admin', '2fa')->prefix('admin')->group(function () { Route::get('index', [AdminPageController::class, 'index'])->name('admin.index'); // System Metrics API endpoints - Route::get('api/system-metrics/current', [SystemMetricsController::class, 'getCurrentMetrics'])->name('admin.api.metrics.current'); - Route::get('api/system-metrics/historical', [SystemMetricsController::class, 'getHistoricalMetrics'])->name('admin.api.metrics.historical'); + Route::get('api/system-metrics/current', [AdminPageController::class, 'getCurrentMetrics'])->name('admin.api.metrics.current'); + Route::get('api/system-metrics/historical', [AdminPageController::class, 'getHistoricalMetrics'])->name('admin.api.metrics.historical'); // User Activity API endpoints Route::get('api/user-activity/minutes', [AdminPageController::class, 'getUserActivityMinutes'])->name('admin.api.user-activity.minutes');