Executei alguns processos de estratégia em segundo plano e levei uma rasteira:


Claramente o processo está em execução, os dados também estão atualizados, mas o PM2 mostra como parado.
Se confiar no restart direto do PM2, na verdade interrompe o processo que ainda está trabalhando.
Depois percebi: PM2 / launchd / arquivo pid são apenas registros do nível de monitoramento — se eles registraram o processo ou não, é uma coisa, se o processo realmente está em execução, é outra.
É preciso verificar o arquivo de saúde gerado pelo próprio processo — a última atualização foi há poucos minutos + o número de processos confere = está vivo.
Escrevi um script de inspeção que reporta 4 valores para cada processo ao mesmo tempo:
- O processo está ou não (usando ps para verificar)
- PM2 / launchd está ou não registrado
- Quando foi a última atualização do arquivo de saúde
- Se os três valores conferem
Desde que o arquivo de saúde seja recente, não trata como morto.
Lição de engenharia: para julgar se o "sistema está vivo ou não", não olhe apenas o que sua camada de monitoramento diz, olhe o que o sistema gera por si próprio e se está atualizado.
Ver original
Esta página pode conter conteúdo de terceiros, que é fornecido apenas para fins informativos (não para representações/garantias) e não deve ser considerada como um endosso de suas opiniões pela Gate nem como aconselhamento financeiro ou profissional. Consulte a Isenção de responsabilidade para obter detalhes.
  • Recompensa
  • Comentário
  • Repostar
  • Compartilhar
Comentário
Adicionar um comentário
Adicionar um comentário
Sem comentários