
É muito comum haver uma certa confusão em torno da definição dos termos monitoramento e observabilidade. É verdade que são parecidos, uma vez que ambos lidam com dados, mas a diferença fundamental entre um e outro é que, enquanto no monitoramento logs e métricas são definidos previamente, na observabilidade são explorados padrões de dados (chamados de sensor data) com base no funcionamento interno de um sistema. Em outras palavras, trata-se da habilidade de medir o estado interno de um sistema com base nas suas saídas (ou dados de saída). E quais seriam esses dados de saída?
Os 3 pilares da Observabilidade: logs, métricas e rastreamento distribuído
Logs, métricas e rastreamento distribuído oferecem recortes individuais quanto ao desempenho do sistema. Quando analisados em conjunto, esses dados fornecem um retrato completo da infraestrutura.
Por conta disso, são tidos como “os 3 pilares” da Observabilidade:
- Logs são arquivos que registram eventos, avisos e erros conforme eles ocorrem em um ambiente de software. A maioria dos logs inclui informações contextuais, como a hora em que um evento ocorreu e qual usuário ou endpoint está associado a ele.
- Métricas são medidas quantificáveis que refletem a integridade e o desempenho de aplicações e infraestrutura de sistemas. Por exemplo, as métricas podem estar programadas para rastrear quantas transações a aplicação processa por segundo, enquanto as métricas de infraestrutura podem medir quantos recursos de CPU ou memória são consumidos em um determinado servidor.
- Já o rastreamento distribuído diz respeito aos dados que são coletados após rastrear uma requisição da aplicação conforme ela penetrar em várias partes de uma aplicação. O rastreamento registra quanto tempo cada componente da aplicação leva para processar a solicitação e passar o resultado para o próximo componente. Os rastreamentos também podem detectar quais partes da aplicação acionam um determinado erro.
Mas, porque observar é mais eficiente que monitorar?
A resposta para essa pergunta é simples de entender: enquanto o monitoramento alerta as equipes de desenvolvimento sobre uma possível falha no sistema, a observabilidade ajuda a identificar e resolver a causa raiz do problema. Também é uma maneira de obter insights sobre toda a infraestrutura. Por conta disso, é essencial para a equipe de DevOps.
Na abordagem DevOps, a observabilidade refere-se às ferramentas e metodologias de software que ajudam as equipes de Dev e Ops a coletar logs, correlacionar e analisar grandes quantidades de dados de desempenho de uma aplicação distribuída e obter insights em tempo real.
Aos poucos, e por conta da sua eficiência, a observabilidade tende a se tornar o padrão em termos de monitoramento de sistemas. Os benefícios para as empresas são enormes: começa com priorização do tempo (time is money!), e com isso dando atenção ao que realmente importa, ou seja, a inovação nos negócios.
Como falamos muito sobre SRE por aqui também, vale mencionar que a observabilidade é um pilar crucial da Engenharia de Confiabilidade do Site (SRE) justamente por permitir detectar e diagnosticar problemas à medida que ocorrem e antes que causem interrupções no cliente ou degradação no desempenho da aplicação. Para conseguir isso, é preciso haver um profundo conhecimento do sistema e do ambiente operacional, algo proporcionado por uma abordagem baseada na observabilidade do sistema.
Conclusão
Interessante notar as diferenças e ganhos entre uma abordagem mais ampla (baseada em observabilidade), e outra mais circunstancial ao estado do sistema (monitoramento). Enquanto uma deixa claro que existe algum problema em curso, a outra oferece as pistas para se chegar ao X da questão. E não apenas resolver o problema, como também prever incidentes futuros. Existe inclusive todo um protocolo específico para gestão de incidentes, mas esse é assunto para outro post. Entre em contato conosco para saber mais como nossa stack de observabilidade pode impulsionar a inovação no seu ambiente de negócios.

