Observabilidade
O que é Observabilidade?
Muito além de monitorar sistemas.
Quando um sistema apresenta lentidão, erros ou indisponibilidade, uma das primeiras perguntas costuma ser: o que está acontecendo?
Responder essa pergunta rapidamente é um dos principais objetivos da observabilidade.
Em ambientes modernos, compostos por APIs, microsserviços, bancos de dados, aplicações em nuvem e diversas integrações, simplesmente saber que um serviço está no ar já não é suficiente. É necessário compreender o comportamento do sistema.
Monitoramento e observabilidade não são a mesma coisa
O monitoramento tradicional normalmente acompanha condições previamente conhecidas: utilização de CPU, indisponibilidade, espaço em disco, tempo de resposta ou quantidade de erros.
Essas informações continuam sendo importantes. A observabilidade, porém, amplia essa visão.
Em vez de apenas perguntar “o sistema está funcionando?”, passamos a investigar “por que o sistema está se comportando dessa maneira?”
Os principais sinais da observabilidade
Métricas
Valores numéricos coletados ao longo do tempo, como CPU, memória, latência, volume de requisições e taxa de erros.
Logs
Registros de eventos produzidos por aplicações, APIs, bancos de dados, sistemas operacionais e outros componentes.
Traces
Permitem acompanhar uma requisição entre diferentes serviços e identificar onde estão falhas ou concentrações de latência.
O contexto é mais importante que o volume de dados
Ter milhões de logs armazenados não significa necessariamente possuir observabilidade. O mesmo vale para centenas de dashboards.
Uma arquitetura de observabilidade precisa transformar dados técnicos em contexto útil para investigação e tomada de decisão.
Um erro HTTP 500 isoladamente fornece alguma informação. Mas o valor aumenta quando conseguimos relacioná-lo à aplicação, API, serviço, tempo de resposta, infraestrutura e processo de negócio envolvidos.
Observabilidade também pode olhar para o processo de negócio
Um dos usos mais interessantes da observabilidade ocorre quando deixamos de acompanhar apenas infraestrutura e aplicações e passamos a observar também o comportamento dos processos.
Uma alteração em um comportamento esperado pode indicar um problema antes mesmo que uma indisponibilidade seja percebida pelos usuários. Nesse cenário, a observabilidade passa a apoiar uma atuação mais proativa das equipes.
O objetivo não é criar mais dashboards
Dashboards são importantes, mas não representam o objetivo final. Uma estratégia de observabilidade deve ajudar as equipes a detectar problemas, investigar causas, compreender dependências, identificar degradações e reduzir o tempo de diagnóstico.
O valor aparece quando os dados ajudam alguém a tomar uma decisão melhor e mais rapidamente.
Observabilidade como capacidade de engenharia
Observabilidade não deve ser tratada apenas como a implantação de uma ferramenta. Elastic, OpenTelemetry, Grafana, Dynatrace e outras plataformas são meios para construir essa capacidade.
A arquitetura precisa considerar como os dados serão coletados, transportados, armazenados, correlacionados, consultados e apresentados. Também é necessário decidir o que realmente precisa ser observado.
Em resumo
Monitoramento ajuda a identificar que algo conhecido aconteceu. Observabilidade ajuda a investigar por que aquilo aconteceu, inclusive quando o problema não havia sido antecipado.
Em arquiteturas cada vez mais distribuídas e integradas, essa capacidade se tornou parte importante da engenharia de sistemas modernos.