いくつかの戦略バックグラウンドプロセスを走らせて、損をした:


明らかにプロセスは動いていて、データも新しいのに、PM2は停止していると表示。
もしPM2に直接再起動を信じてやると、逆に動いているプロセスを中断してしまう。
後になって理解した:PM2 / launchd / pidファイルは、あくまで監視層が登録した状態を示すだけ —— それがプロセスに記録されているか、実際に動いているかは別の話。
本当に生きているかどうかは、プロセス自身が出力する健康ファイルを見る必要がある —— 最終更新が何分前か + プロセス数が一致しているか = 生存している。
巡回スクリプトを書いた。各プロセスは同時に4つの値を報告:
- プロセスが動いているか(psで確認)
- PM2 / launchdに登録されているか
- 健康ファイルの最終更新からの時間
- これら3つが一致しているか
健康ファイルが新しい場合は、死んだとみなさない。
エンジニアリングの教訓:システムの生死を判断するときは、構築した監視層の言うことを見ずに、システム自身が出力する情報が新しいかどうかを見ろ。
原文表示
このページには第三者のコンテンツが含まれている場合があり、情報提供のみを目的としております(表明・保証をするものではありません)。Gateによる見解の支持や、金融・専門的な助言とみなされるべきものではありません。詳細については免責事項をご覧ください。
  • 報酬
  • コメント
  • リポスト
  • 共有
コメント
コメントを追加
コメントを追加
コメントなし