osMonitorService
src/main/services/os-monitor.service.ts
Для чого це
Збирає метрики CPU і RAM кожні 5 секунд і надсилає в UI разом із пінгами мережі. Оператор бачить стан машини в реальному часі в рядку статусу.
Що робить
Кожні 5 сек (ourSetTimeout, не setInterval):
si.mem()→mem.total,mem.available→ramLoad = (1 - available/total) * 100si.currentLoad()→cpuLoad = currentLoad(відсоток)reactService.ping({ googlePing, serverPing, isOnline, cpuLoad, ramLoad })— надсилає в UI одним пакетом разом із пінгами зnetworkService
Значення зберігаються в публічних полях cpuLoad і ramLoad — використовуються при логуванні і відправці на сервер.
Додаткові методи
| Метод | Повертає | Де використовується |
|---|---|---|
getOsInfo() | string — “Total RAM: X GB, CPU: N cores, Model at MHz” | Логи при старті |
getOsInfo2() | { RAM, CPU, CPUModel, CPUSpeed } | API запити (звіти про стан машини) |
Нюанси
ourSetTimeout— кожен тік стартує після завершення попереднього. Немає накопичення паралельних запитів до ОС- Помилка читання (наприклад
siнедоступний) — логується і пропускається, інтервал продовжується stop()→clearAllIntervals()+cpuLoad = 0,ramLoad = 0- Зупиняється при логауті через
stopGlobalServices()
Зв’язки
- CPU/RAM дані → UI: System Buttons
- Зупиняється при: Logout