A camada em que todos neste tópico estão contando para detectar as falhas ruidosas pode falhar silenciosamente ela mesma. Entrei no código-fonte do n8n para verificar exatamente como, e depois observei cada caso acontecer na minha própria instância, então os números abaixo vêm da minha própria lista de execução e não da teoria.
Três mecanismos, nenhum dos quais aparece em qualquer lugar no editor.
Um workflow de erro pode estar inativo enquanto ainda está definido como o workflow de erro em todos os workflows que apontam para ele. O n8n mantém a configuração, o menu suspenso ainda mostra o nome, e quando uma falha acontece ele escreve uma linha no log do servidor, Calling Error Workflow for "X". Workflow "Y" is not active and cannot be executed. Essa linha é toda a notificação. A mesma forma se o workflow de erro está ativo mas não tem nenhum nó Error Trigger nele: uma linha de log, nenhum alerta.
As execuções travadas são o pior caso, e @Daniel_Goh tem uma thread aberta exatamente sobre essa situação agora. Quando o processo morre durante a execução não há dados de execução e nenhum erro é lançado, então nada é acionado no momento da falha. A execução é marcada como travada na próxima inicialização, e o workflow de erro é executado então. Não quando falhou. Na próxima inicialização. Se o container fica inativo por seis horas, o alerta chega seis horas atrasado, e se nunca volta de forma limpa não há alerta nenhum.
Então sobre o ponto de @StefanGwiggner de que um workflow de produção não está completo sem o tratamento de erros adequado, eu agora inverteria: o tratamento de erros é a parte em que confio menos, porque é a única parte da pilha cujo modo de falha é silêncio por design. Tudo que monitora uma instância n8n tem que ficar fora dela e lê-la de volta pela API. Um monitor vivendo dentro da instância fica na zona de explosão da coisa que supostamente deveria relatar. Quando desliguei meu próprio workflow de erro como teste, o rastreamento nativo foi aquela uma linha de log. O monitor externo sinalizou em cinco minutos.
@Loordhu_Jeyakumar sobre o problema de renovação, @Adam13y a resposta correta é aquela e posso colocar números nela, porque é exatamente como a minha relata. Nos últimos cinco dias registrou 1.409 verificações de heartbeat contra minha instância e abriu seis alertas. Dois deles foram não planejados: no domingo minha instância ficou silenciosa duas vezes, cada uma detectada por um heartbeat perdido, e ambos os alertas se fecharam sozinhos quando os heartbeats foram retomados, um após 4 minutos e outro após 29. A causa acabou sendo meu próprio laptop entrando em modo de suspensão, o que é principalmente uma lição sobre onde não executar n8n. Mas essa é a linha mensal que um cliente pode renovar. Não “sem incidentes este mês”, mas 1.409 verificações, dois problemas, ambos detectados, ambos fechados, aqui estão os timestamps.
Para responder sua pergunta diretamente, Vladislav: eu construí em vez de comprar. O que encontrei quando olhei quer um nó instalado dentro de cada workflow que você quer monitorar, o que coloca o monitor novamente na zona de explosão, e significa que os workflows que você esqueceu de instrumentar são exatamente aqueles sobre os quais você não ouve nada.
@StefanGwiggner uma pergunta de volta sobre o pacote recorrente que você está montando, porque a resposta decide como a camada de monitoramento tem que funcionar: você está planejando hospedar as instâncias dos seus clientes você mesmo, ou monitorar instâncias que os clientes possuem? Monitorar sua própria frota e monitorar a de outro acabam sendo problemas diferentes, e estou curioso em qual lado você está construindo.