Executando verificação de segurança...
2

Qual a melhor forma de usar Logs em produção?

Estou trabalhando com diversas aplisações em produção e tenho dúvidas sobre as melhores práticas para logging. Qual a abordagem mais eficiente e como vocês fazem?

Contexto

Nosso principal desafio hoje é prover algum meio de observabilidade para o que está acontecendo em alguns determinados fluxos. Por exemplo, cadastro de usuários para um determinado segmento ou cobranças automáticas que notificam via webhook em nossa aplicação.

Muitas das vezes, quando problemas desse tipo ocorrem, não ficamos sabendo, a menos que nos avisem que algo inesperado aconteceu.

Com o intuito de se ter uma "rastreabilidade", configuramos o Winston para logar fluxos críticos e poder pesquisar por eles.

Porém, isso seria apenas um processo investigativo depois do problema ter acontecido.

No entanto, querendo ter um acompanhamento em "tempo real", pensamos em popular esses logs diretamente em um Grafana, usando o Grafana Loki e poder ter dashboards e notificações.

Uma outra alternativa que estamos cogitando é termos um MongoDB para armazenar esses logs e fazer uma conexão com o Grafana para ter o mesmo resultado, porém mudando o destino de armazenamento.

Quais estratégias vocês adotam?

Carregando publicação patrocinada...
2

Qual a abordagem mais eficiente e como vocês fazem?

Quando um erro acontece, que informações você precisa para identificar o erro?

São essas informações que precisam ser logadas!

Uma outra alternativa que estamos cogitando é termos um MongoDB para armazenar esses logs

Aqui fica a pergunta: Pra que?

Grafana foi feito pra isso, integra muito bem logs e métricas, não precisa manter um DB que Não foi feito pra isso

1
1

a chance disso escalar é alto

É?

como você faz querys com o DB?

DB é extremamente ineficiente para trabalhar com isso, ainda mais mongo.

2
1
1

Um artigo que eu li mês passado, tem até site próprio, Logging Sucks (ING) fala sobre isso.

Basicamente, em vez de fazer um log de cada parte durante a operação, você faz um evento que é incrementado durante a operação, dentro do contexto da requisição, só pra no final fazer log da requisição como um todo.

Vale a pena dar uma lida.

1
0