|
14 | 14 | import shutil |
15 | 15 | import time |
16 | 16 |
|
| 17 | +import psutil |
| 18 | +import threading |
| 19 | + |
| 20 | + |
17 | 21 |
|
18 | 22 | # Disable WebdriverManager SSL verification. |
19 | 23 | os.environ['WDM_SSL_VERIFY'] = '0' |
|
119 | 123 | from Framework.deploy_handler import long_poll_handler |
120 | 124 | from Framework.deploy_handler import adapter |
121 | 125 |
|
| 126 | +def get_system_info(): |
| 127 | + while True: |
| 128 | + # Current timestamp |
| 129 | + current_time = dt.now().strftime('%Y-%m-%d %H:%M:%S') |
| 130 | + |
| 131 | + # Current CPU usage |
| 132 | + cpu_usage = psutil.cpu_percent(interval=1) |
| 133 | + |
| 134 | + # Current RAM usage |
| 135 | + ram_usage = psutil.virtual_memory().percent |
| 136 | + |
| 137 | + # Top 10 processes with highest CPU usage |
| 138 | + top_cpu_processes = [p.info for p in psutil.process_iter(attrs=['pid', 'name', 'cpu_percent'])] |
| 139 | + top_cpu_processes = sorted(top_cpu_processes, key=lambda x: x['cpu_percent'], reverse=True)[:10] |
| 140 | + |
| 141 | + # Top 10 processes with highest RAM usage |
| 142 | + top_ram_processes = [p.info for p in psutil.process_iter(attrs=['pid', 'name', 'memory_percent'])] |
| 143 | + top_ram_processes = sorted(top_ram_processes, key=lambda x: x['memory_percent'], reverse=True)[:10] |
| 144 | + |
| 145 | + data = { |
| 146 | + "Timestamp": current_time, |
| 147 | + "CPU_Usage": cpu_usage, |
| 148 | + "RAM_Usage": ram_usage, |
| 149 | + "Top_CPU_Processes": top_cpu_processes, |
| 150 | + "Top_RAM_Processes": top_ram_processes |
| 151 | + } |
| 152 | + |
| 153 | + # Append data to the JSON file |
| 154 | + with open('system_info.json', 'a') as file: |
| 155 | + file.write(json.dumps(data, indent=4) + "\n") |
| 156 | + |
| 157 | + time.sleep(5) # Adjust the interval (in seconds) as needed |
| 158 | + |
122 | 159 | def signal_handler(sig, frame): |
123 | 160 | CommonUtil.run_cancelled = True |
124 | 161 | print("Disconnecting from server...") |
@@ -1203,10 +1240,17 @@ def Bypass(): |
1203 | 1240 | print("Exiting...") |
1204 | 1241 | sys.exit(1) |
1205 | 1242 |
|
| 1243 | + thread = threading.Thread(target=get_system_info) |
| 1244 | + thread.daemon = True |
| 1245 | + thread.start() |
| 1246 | + |
1206 | 1247 | if local_run: |
1207 | 1248 | Local_run(log_dir=log_dir) |
1208 | 1249 | else: |
1209 | 1250 | # Bypass() |
1210 | 1251 | Login(cli=True, run_once=RUN_ONCE, log_dir=log_dir) |
| 1252 | + |
| 1253 | + |
| 1254 | + |
1211 | 1255 | CommonUtil.run_cancelled = True |
1212 | 1256 | CommonUtil.ShutdownExecutor() |
0 commit comments