
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.