system

osMonitorService

osMonitorService

src/main/services/os-monitor.service.ts


Для чого це

Збирає метрики CPU і RAM кожні 5 секунд і надсилає в UI разом із пінгами мережі. Оператор бачить стан машини в реальному часі в рядку статусу.


Що робить

Кожні 5 сек (ourSetTimeout, не setInterval):

  1. si.mem()mem.total, mem.availableramLoad = (1 - available/total) * 100
  2. si.currentLoad()cpuLoad = currentLoad (відсоток)
  3. 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()

Зв’язки