input('product'); if (!$productId) { return response()->json(['success' => false, 'message' => 'Thiếu product id.'], 422); } $vm = $this->resolveVmById($productId, $request, requireActiveService: false); if ($vm instanceof JsonResponse) { return $vm; } try { $inventory = VirtualMachines::where('vm_id', $vm->vmware_id)->first(['ram_mb', 'cpu']); $metrics = $metricsService->get((string) $vm->vmware_id, $inventory?->ram_mb, $inventory?->cpu); } catch (RuntimeException $exception) { $status = $exception->getCode() === 404 ? 404 : 502; return response()->json([ 'success' => false, 'message' => $status === 404 ? 'Chưa có dữ liệu giám sát cho VM.' : 'Không thể tải dữ liệu giám sát VM.', ], $status); } return response()->json(['success' => true, 'data' => $metrics]); } }