Monitoramento x Observabilidade
Olá amiguinhos, como vocês estão?
Já se passaram três semanas desde que comecei um novo desafio profissional na JYSK, uma empresa Dinamarquesa especializada em artigos para o lar.
Essa nova posição difere um pouco das minhas outras experiências profissionais, pois dessa vez trabalharei diretamente com as aplicações Java que permitem a JYSK vender seus móvies e colchões ao redor do mundo. O fato de eu nunca ter trabalhado com programação (bash e PowerShell não contam) poderia ter sido um argumento eliminatório durante o meu processo seletivo, mas felizmente os meus pares no time entenderam que essas habilidades poderiam ser facilmente aprendidas e que minha experiência pregressa seria uma mais-valida interessante.
Essa aposta se deve ao fato de que internamente a JYSK possui uma série de times dedicados a várias competências relacionadas a infraestrutura. Por exemplo, eles possuem um time dedicado a contêineres e orquestração, um time dedicado a automações, e por aí vai. Atualmente, eu trabalho em um time cujo foco é a observabilidade dessas tais aplicações Java ☕
Quando contei as novidades para os meus amigos e expliquei quais seriam as minhas atribuições como funcionário dentro desse time, uma coisa me chamou a atenção: muitos deles não sabiam a diferença entre observabilidade e monitoramento. Eles sabiam que existia uma diferença entre os dois conceitos, mas acabavam por usá-los quase como sinônimos.
O que nos leva a essa postagem que voismecê está lendo nesse momento 🎩
Conceitos básicos
A AWS possui um documento muito interessante que versa sobre as diferenças entre esses dois conceitos:
“O monitoramento é o processo de coletar dados e gerar relatórios sobre diferentes métricas que definem a integridade do sistema. A observabilidade é uma abordagem mais investigativa. Ele analisa atentamente as interações de componentes distribuídos do sistema e os dados coletados pelo monitoramento para encontrar a causa raiz dos problemas.”
Eu gosto de pensar a diferença entre esses dois conceitos de uma maneira mais lúdica: a velha piada da casca de banana 🍌
Para quem não conhece essa clássica anedota que fariam Costinha e Ary Toledo morrerem de vergonha ao contá-la em um show, aqui vai:
Uma pessoa normal, sem nenhum esteriótipo cultural explícito estava andando na rua e pisa numa casca de banana.
Plófft! Leva o maior tombo.
Todo mundo corre para ajudá-lo a se levantar.
Ele continua andando e de repente, Plófft, outra casca de banana, outro tombo.
- O senhor precisa olhar onde pisa - adverte-lhe uma senhora.
Ele levanta-se e continua a sua caminhada, dessa vez sem tirar os olhos do chão.
De repente avista outra casca de banana.
- Ó raios! Lá vou eu cair de novo!
Eu sei, é de perder o fôlego de tanto rir 😒
Para entendermos essa analogia, precisamos inicialmente declarar algumas premissas:
A pessoa andando na calçada é o sistema.
A casca de banana à frente é um problema potencial (um bug, uma falha, uma degradação no desempenho).
-
O monitoramento é como ter um sensor no seu sapato que, ao pisar na casca, emite um alerta imediato:
ALERTA: Escorregão detectado. Queda iminente!
Ele coleta e reporta o dado claro e óbvio (a métrica do deslize). Ele te diz que algo está errado, mas não necessariamente porque a casca estava ali ou como evitar totalmente a queda.
-
A observabilidade é o seu cérebro e sentidos trabalhando juntos antes, durante e depois do evento. Ela usa os dados do sensor (monitoramento) mais a visão periférica, a memória de que essa calçada é mal cuidada, a percepção do clima (chão molhado?), e a análise rápida do tipo de casca. Ela permite que você responda a perguntas investigativas como:
De onde veio essa casca?
Há mais cascas adiante?
Foi um descuido pontual ou há um vendedor de frutas com problema no lixo na próxima esquina?
A observabilidade ajuda a encontrar a causa raiz, não só o sintoma.
Quais são as semelhanças?
Mais uma vez, a AWS vem ao nosso encontro para nos ajudar 🌤️
Tanto a observabilidade quanto o monitoramento derivam originalmente do campo da teoria do controle, um campo matemático e de engenharia de sistemas. Ambos são usados extensivamente em ambientes físicos de computação e de computação combinada para manutenção da integridade e da performance do sistema. No DevOps, os termos geralmente são usados de forma intercambiável porque ambos estão relacionados a dados de telemetria, como métricas, eventos, logs e rastreamentos.
Métricas
As métricas são medidas de dados do sistema. Por exemplo, uma métrica pode ser o throughput da rede ou o número de erros de aplicações em uma semana. Os relatórios de monitoramento sobre métricas e observabilidade buscam maneiras de melhorar seus valores.
Eventos
Eventos são ações discretas que ocorrem em um sistema a qualquer momento. Um exemplo pode ser um usuário alterando uma senha ou um alerta indicando um grande número de tentativas de senha. Os eventos acionam o monitoramento e apoiam a observabilidade na investigação de incidentes.
Logs
Os logs são arquivos gerados por software que contêm informações sobre as operações, atividades e padrões de uso do sistema. Eles incluem um registro histórico de todos os processos, eventos e mensagens junto com dados descritivos adicionais, como carimbos de data/hora, para contextualizar essas informações. O monitoramento gera logs que a observabilidade usa para análises adicionais do sistema.
Rastreamentos (trace)
Os rastreamentos são o caminho completo de uma única operação em seus vários sistemas inter-relacionados. Para um rastreamento totalmente distribuído, os sinais devem ser emitidos de cada transação na arquitetura de microsserviços para rastreamento. O monitoramento permite o rastreamento, que é uma função importante da observabilidade.
Resumão das diferenças
E por hoje é só, coleguinhas! Eu sei que andei sumido, mas prometo que irei priorizar o blog nesse ano de 2026. Então fiquem ligados nas postagens e, claro, compartilhe o conteúdo se você acha que ele pode ajudar alguém!
Um grande abraço 🫂