Se um problema tem solução não tem porque se preocupar com ele, se ele não tem solução então toda preocupação será em vão.
Já pensou se você tivesse o poder de prever o futuro e impedir que grandes tragédias acontecessem? Tudo bem, prever o futuro é complicado, para não dizer impossível.
Sendo mais realista, imagine se pudesse identificar pequenas frações de um problema antes que ele tome grandes proporções. Imaginou? E se você soubesse que isso já é uma realidade – desde 2008, com o Sentry?
O Sentry é uma aplicação open source escrita em Python para logar erros de aplicações e agregar informações a eles. Apesar de ser escrito em Python o Sentry pode ser usado em PHP, Ruby, Python, Go, Javascript, Elixir, etc.
// Como funciona?
O Sentry funciona como um middleware, ou seja, sempre que o usuário acessa sua aplicação, ele passa pelo Sentry. Caso a aplicação dê um erro não tratado, o Sentry captura o backtrace e envia para seu servidor, registrando o erro. Se o mesmo erro permanecer, o Sentry grava a amostra, identifica quantas vezes ele aconteceu e com quantos usuários diferentes – ele faz isso por meio da comparação do backtrace.
O relatório enviado por ele é bem detalhado, contém informações sobre o ambiente e o servidor em que aconteceu o erro. Além dos dados que o próprio Sentry coleta, você também pode adicionar mais informações ao log para enriquecer e facilitar a reprodução e a correção do bug. Ao receber um novo relatório, uma notificação é enviada para seu e-mail, para que você se mantenha informado quanto ao que está acontecendo em sua aplicação.
// Como usar?
Há duas maneiras de utilizar o Sentry. Uma delas é instalá-lo no servidor que você tem – essa tarefa seria um pouco mais complexa se não houvesse uma imagem oficial do Sentry no Docker Hub. O segundo modo é utilizar a integração com o próprio site do Sentry, criando apenas uma conta e fazendo a integração com sua aplicação. Assim que os erros aparecerem nela, o Sentry passará a logá-los.
// Por que usar?
Por menor que seja o seu sistema, por mais que você use TDD, BDD e todas as outras boas práticas que conhece, ele está sujeito a falhas. Mesmo no caso do exemplo, em que o banco de dados cai – uma falha que não é necessariamente da aplicação, mas sim, do servidor -, isso é importante justamente para que possa identificar bugs que não vê e que poderiam estar em sua aplicação ou em seu ambiente, afetando seu usuário sem que você saiba.
Se quiser monitorar sua aplicação e saber como anda a saúde dela, uma ótima maneira para monitorar a curto, médio e longo prazo, é utilizando o Sentry. Caso tenha alguma dúvida na interpretação dele, deixe um comentário neste artigo que o ajudaremos! 😉