Запустив кілька бекенд-процесів стратегій, зазнав поразки:


Чітко видно, що процеси працюють, дані оновлені, але PM2 показує, що вони зупинені.
Якщо довіряти PM2 і просто перезапустити, то можна перервати процеси, які ще працюють.
Пізніше зрозумів: PM2 / launchd / pid файли — це лише реєстрація стану на рівні моніторингу — чи зареєстрований процес, а чи він реально працює — це дві різні речі.
Дійсно важливо дивитись на файли здоров’я, які самі процеси генерують — останнє оновлення було кілька хвилин тому + кількість процесів співпадає = процес живий.
Написав скрипт для перевірки, який одночасно звітує про 4 значення для кожного процесу:
- Чи працює процес (перевірка через ps)
- Чи зареєстрований у PM2 / launchd
- Коли востаннє оновлювався файл здоров’я
- Чи співпадають ці три показники
Якщо файл здоров’я оновлений недавно, його не вважаємо мертвим.
Важливий урок для проекту: визначаючи, чи "система жива", не дивіться на те, що каже моніторинг рівня — дивіться на те, що генерує сама система.
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • Прокоментувати
  • Репост
  • Поділіться
Прокоментувати
Додати коментар
Додати коментар
Немає коментарів
  • Закріпити