Bom dia amigos, alguém poderia me dar uma ajuda para que eu possa identificar o que está ocorrendo com meu serviço em NodeJS?
O serviço
Seguinte, implementei um serviço em nodejs para poder exibir em tempo real o log de uma determinada API aqui da empresa. O serviço, resumidamente, é simples: ouvir um log e notificar, aos clientes conectados, algumas informações (cálculos, gráficos e etc...).
Eu não sou main desenvolvedor Node mas pela simplicidade dessa demanda, consegui fazer o serviço roda lendo documentação e consultando a comunidade.
O serviço faz uso do Express (apesar de não se fazer uso do webserver), Tail, SocketIO e Forever.
O Problema
O problema é que por algum motivo, após algum tempo rodando certo, o serviço pára de notificar aos clientes, mesmo ao se abrir uma nova conexão/instancia ao socketIO (http://<DOMINIO>:<PORTA>/
socket.io/?EIO=3&transport=polling...).
Eu pude verificar através do log gerado pelo forever, que o tail nem sempre retorna o output do servidor se comparado ao comando tail no terminal. Às vezes ele vem incompleto (pega a metade da linha do log), fazendo com que muitas instruções caiam no catch por não conseguir executar o split() nem o replace(), por exemplo.
Dúvida
Minha dúvida é se há uma forma melhor de ser monitorar um log, e como identificar o que ocorre com o socketio, pois após "para de notificar" ele continua a logar cada novo cliente (sei disso pois no logo do forever tá lá "nova coneexão estabelecida..."), mas não emite o processamento.
Seria mais aconselhável exibir o output do log em sua totalidade, por completo e executar as operações de limpeza e tratamento (split, replace e formatação) no próprio cliente ao invés de se tratar no serviço?
Segue o serviço levantado:
Obrigado,
Fabrício