@@ -2293,7 +2293,7 @@ async def get_system_status(current_user: dict = Depends(get_current_user)):
22932293 "gpu" : resource_monitor .get_gpu_metrics (),
22942294 "disk" : resource_monitor .get_disk_metrics (),
22952295 "network" : resource_monitor .get_network_metrics (),
2296- "processes" : resource_monitor .get_top_processes ( )
2296+ "processes" : resource_monitor .get_process_metrics (). get ( 'top_cpu' , [] )
22972297 }
22982298
22992299 # Format for API compatibility
@@ -2398,29 +2398,27 @@ async def get_system_status(current_user: dict = Depends(get_current_user)):
23982398 boot_time = psutil .boot_time ()
23992399 uptime = int (time .time () - boot_time )
24002400
2401- # Get top processes - skip for performance
2401+ # Get top processes
24022402 processes = []
2403- # Skip process enumeration for now to improve performance
2404- # This was causing significant delays in the API response
2405- # try:
2406- # for proc in psutil.process_iter(['pid', 'name', 'cpu_percent', 'memory_info', 'status']):
2407- # try:
2408- # pinfo = proc.info
2409- # processes.append({
2410- # 'pid': pinfo['pid'],
2411- # 'name': pinfo['name'],
2412- # 'cpu_percent': pinfo['cpu_percent'] or 0,
2413- # 'memory_mb': pinfo['memory_info'].rss / (1024 * 1024) if pinfo['memory_info'] else 0,
2414- # 'status': pinfo['status']
2415- # })
2416- # except (psutil.NoSuchProcess, psutil.AccessDenied):
2417- # pass
2418- #
2419- # # Sort by CPU usage and take top 10
2420- # processes.sort(key=lambda x: x['cpu_percent'], reverse=True)
2421- # processes = processes[:10]
2422- # except Exception as e:
2423- # print(f"Error getting processes: {e}")
2403+ try :
2404+ for proc in psutil .process_iter (['pid' , 'name' , 'cpu_percent' , 'memory_info' , 'status' ]):
2405+ try :
2406+ pinfo = proc .info
2407+ processes .append ({
2408+ 'pid' : pinfo ['pid' ],
2409+ 'name' : pinfo ['name' ],
2410+ 'cpu_percent' : pinfo ['cpu_percent' ] or 0 ,
2411+ 'memory_mb' : pinfo ['memory_info' ].rss / (1024 * 1024 ) if pinfo ['memory_info' ] else 0 ,
2412+ 'status' : pinfo ['status' ]
2413+ })
2414+ except (psutil .NoSuchProcess , psutil .AccessDenied ):
2415+ pass
2416+
2417+ # Sort by CPU usage and take top 20
2418+ processes .sort (key = lambda x : x ['cpu_percent' ], reverse = True )
2419+ processes = processes [:20 ]
2420+ except Exception as e :
2421+ print (f"Error getting processes: { e } " )
24242422
24252423 return {
24262424 "cpu" : {
0 commit comments