Segundo a Teoria do Controle, a observabilidade é uma medida de quão bem os estados de um sistema são inferidos a partir do conhecimento das suas saídas externas. Em termos mais simples, isso se refere ao quão bem você entende o seu sistema complexo.
Se você tem uma caixa preta e não sabe o que está acontecendo dentro dela, por exemplo, mas entende que os dados entram e saem, independente do que você espera, é possível imaginar o que está acontecendo dentro da caixa com base nas suas entradas e saídas.
Por outro lado, você vai perceber que é possível olhar dentro da caixa com as ferramentas certas. E além de deduzir as coisas, obviamente por inferência, nós também pegamos as informações que estão acontecendo dentro da caixa e conseguimos tomar decisões.
Monitoramento vs Observabilidade
Por padrão o monitoramento mostra quando alguma coisa pode dar errado, sabendo com antecedência quais sinais você pretende monitorar. Ou seja, ele se baseia na sua definição do que é certo ou errado quando você escolhe as métricas ou dados para monitorar.
Podemos dizer que o monitoramento apresenta os erros enquanto a observabilidade explica o que está acontecendo. E, juntando esses aspectos, tudo começa a fazer sentido porque não basta ter inúmeros dashboards sendo que não é possível observá-los o tempo inteiro.
Nessa junção, o monitoramento é mais cirúrgico e te permite ajustar alarmes para observar o que mais te interessa, mas quando aquilo mudar ou quando alguma coisa acontecer, a observabilidade permite que você entenda o motivo pelo qual aquilo aconteceu.
Os 3 Pilares da Observabilidade
A observabilidade se baseia em três pilares: Logs, Métricas e Tracing. E os dados precisam fazer sentido, já que nós não podemos olhar apenas por uma perspectiva. Veja mais aqui.
Métricas
As métricas são basicamente informações que nós podemos medir, contar ou quantificar. Seja o percentual de uso do CPU, a quantidade de vendas, o número de pessoas online, os participantes de uma live ou quanto há de memória disponível.
Logs
Os logs são eventos que aconteceram e as métricas são geradas com base nesse registro. Normalmente você deve tomar cuidado para não se perder dentro disso, então é necessária uma política para normalizar os logs e centralizá-los com as informações que você quer.
De qualquer forma, o log é basicamente o registro dos eventos que aconteceram em algum momento do seu sistema. E com base nisso é possível extrair métricas.
Tracing
O tracing é o que nos ajuda a entender o caminho de uma requisição, seja por um ou mais sistemas. E quando nós entendemos por completo o que uma requisição faz, em algum momento é possível chegar à raiz do problema.
Com as métricas, o registro do evento gerado e a noção de onde isso aconteceu, em tese você tem observabilidade.
Ferramentas
Quando você utiliza e domina as ferramentas certas é possível fazer esse trabalho de uma forma automatizada, sem que seja necessário modificar o seu código o tempo inteiro; mas eventualmente você pode modificá-lo para ter mais detalhes e informações de tracing, por exemplo.
Você pode encontrar muitas ferramentas populares e com alguns diferenciais no mercado, como por exemplo: InfluxDB, New Relic, Elastic, Splunk, Datadog, Prometheus, Zabbix, Logstash, Grafana e entre outras.
Para mais conteúdos que farão diferença na sua carreira como desenvolvedor, acesse nosso canal do youtube.
Se curtiu esse conteúdo e quer saber mais sobre Monitoramento e Observabilidade, solicite um contato clicando aqui que nós te ajudamos.