DEV Community

Welton Batista
Welton Batista

Posted on

Por que logs não são suficientes?

Imagine que você é acionado bem cedo com uma ligação informando que o sistema da empresa parou de funcionar. Está chegando o momento em que a operação será iniciada, mais precisamente nos próximos 60 minutos. A pressão bate na porta, e as coisas precisam voltar ao normal o mais rápido possível. Enquanto isso, a equipe te envia um conjunto de logs que já foram coletados pelo pessoal do NOC. Esses logs contêm informações de pelo menos 10 sistemas diferentes. Aposte suas fichas: você acredita que seria capaz de identificar o problema nesse tempo? Pois esse é o problema de confiar apenas em logs!
Antes de avançar, preciso deixar um aviso importante: logs são ferramentas essenciais para depuração e monitoramento de sistemas. Dito isso, apenas logs podem não ser suficientes!

Limitações dos logs tradicionais

Falta de contexto
Quando analisamos um log isoladamente, não temos uma visão geral do que aconteceu antes ou depois. Temos apenas um registro do ocorrido em um instante específico de um único sistema. Isso prejudica muito nossa percepção geral sobre o problema. Surgem questões como:

"Será que esse erro está relacionado com o problema que estou investigando?"

Problemas de volume e escalabilidade
Em cenários de grande escala, onde há uma enorme variedade de sistemas com níveis de detalhamento elevados, como logs configurados em INFO ou DEBUG, a análise manual pode se tornar inviável. Isso também aumenta os custos de armazenamento e processamento, além de tornar a busca por informações relevantes em meio a uma grande quantidade de dados quase uma missão impossível. Ou, como dizem, é como tentar achar uma agulha no palheiro.

Falta de estrutura e padronização
Um ponto crítico é a falta de padronização ao registrar logs não estruturados (apenas texto simples). Isso dificulta buscas e filtros. Essa falta de padronização está diretamente ligada à forma como cada desenvolvedor interpreta e julga o que é relevante registrar. Quanto mais equipes dentro da empresa, mais "silos" de informação são criados, o que acaba gerando distorções e inconsistências.

Problemas de desempenho
O registro excessivo de logs pode impactar negativamente o desempenho da aplicação, especialmente se o armazenamento for síncrono. Embora possamos filtrar o excesso de logs, a contrapartida pode ser a perda de informações cruciais.

Conclusão
Embora os logs sejam fundamentais para sistemas de software, confiar exclusivamente neles não é suficiente para entender e diagnosticar problemas, especialmente em sistemas distribuídos. A falta de contexto, correlação e granularidade impede a resolução rápida de problemas, principalmente em arquiteturas modernas.
Por isso, a combinação de logs com práticas como rastreamento distribuído e métricas é essencial para alcançar uma verdadeira observabilidade.
Na próxima vez, vou escrever sobre como resolver essas limitações com a tríade Logs, Métricas e Traces.

Top comments (0)