Fundamentos de Observabilidade

Ana Carolina Manzan - Sep 29 - - Dev Community

Este artigo foi escrito, em uma iniciativa conjunta no curso de Observabilidade da comunidade WomakersCode, por:

Ana Carolina Manzan - LinkedIn
Daniela Farias - LinkedIn
Gabriela Tavares - LinkedIn
Natacsha Melo - LinkedIn

Observabilidade versus Monitoramento

Quando ouvimos a palavra observabilidade, é natural que façamos algumas referências e analogias diretas ao termo monitoramento. Afinal, através de alguns pilares da observabilidade, como as métricas, por exemplo, podemos monitorar alguns aspectos das nossas aplicações.

Mas qual a diferença entre um sistema "monitorado" e um sistema "observável"?

Ao tentar entender a diferença entre os dois termos, buscamos alguns significados para os mesmos diretamente da língua inglesa, de onde eles surgiram e de onde obteremos algumas explicações que podem vir a ser ilustrativas:

Observe: notice or perceive (something) and register it as being significant.
Observar: notar ou perceber (algo) e registrá-lo como significativo.

Monitor: an instrument or device used for observing, checking, or keeping a continuous record of a process or quantity.
Monitor/monitorar: um instrumento ou dispositivo usado para observar, verificar ou manter um registro contínuo de um processo ou quantidade.

A partir da definição em inglês e da tradução livre, podemos concluir então que o monitoramento nada mais é do que um meio, um recurso e/ou instrumento a ser usado para observar um sistema, mas não define o conceito de observabilidade inteiramente e por si só.

Um sistema pode ser observado por meio de monitoramento, alertas, comportamentos, estados, logs, métricas, traces e telemetria. A observação de um sistema requer diversos olhares e mapeamento para identificar dados relevantes. Filtrar esses dados é crucial, pois a observabilidade vai além do monitoramento, trazendo benefícios como resolução de bugs, melhorias e maior qualidade de código. Por exemplo, ao monitorar logs, uma equipe pode detectar um status 403 inesperado e resolver o problema antes de uma reclamação formal do usuário, demonstrando a diferença entre observabilidade e monitoramento.

Os 3 pilares da Observabilidade

A observabilidade é construída sobre três pilares principais — logs, métricas e traces — que, juntos, ajudam a garantir que possamos entender e diagnosticar problemas em sistemas em ambientes de produção com rapidez e eficiência. Com a crescente complexidade dos sistemas modernos, onde uma simples falha pode afetar várias partes interconectadas, ter esses três pilares bem implementados se torna fundamental.

Os logs são o primeiro pilar, registrando os eventos que ocorrem no sistema. Eles detalham o que está acontecendo nos bastidores, fornecendo informações sobre erros, warnings e eventos importantes. Para desenvolvedores, os logs são a primeira linha de investigação quando algo sai do controle, oferecendo uma visão clara do que aconteceu em determinado momento.

Métricas é um dos pilares da observabilidade, entram com uma visão mais quantitativa, permitindo que possamos monitorar a saúde do sistema em tempo real, podemos dizer que métrica é uma informação pré estruturada.Elas ajudam a identificar anomalias em recursos como CPU, memória, latência e throughput, que permitem ao longo do tempo fazer o acompanhamento de determinados comportamentos que possam se tornar problemas maiores.

Por último, os traces são o mapa que revela o caminho percorrido por uma requisição dentro do sistema. Eles ajudam a entender como uma solicitação passa por diferentes serviços e onde possíveis gargalos podem estar ocorrendo, como por exemplo onde uma requisição pode atravessar dezenas de microsserviços, os traces são cruciais para detectar problemas de performance e otimizar o fluxo entre serviços.

Dessa forma, ao combinar logs, métricas e traces, desenvolvedores conseguem ter uma visão completa do sistema, tornando o processo de identificação, diagnóstico e resolução de problemas muito mais ágil e eficaz. Além de apoiar também na tomada de decisão.

Próximos passos: Como colocar o conceito de observabilidade em prática?

Uma das formas de aplicarmos a observabilidade é por meio da construção de troubleshootings e runbooks.

Os troubleshootings são guias que auxiliam na identificação e resolução de problemas, oferecendo uma abordagem sistemática para diagnosticar falhas em sistemas complexos. Eles ajudam a mapear possíveis causas de um incidente e oferecem soluções potenciais com base em dados e métricas disponíveis.

Já os runbooks são conjuntos de procedimentos operacionais padronizados que descrevem as ações a serem tomadas em resposta a situações específicas, muitas vezes integrando métricas de observabilidade para auxiliar na automação e na rápida resolução de incidentes.

Conclusão

A partir dos conceitos e ferramentas apresentadas neste artigo, podemos concluir que a observabilidade é essencial para a saúde e a performance das nossas aplicações. Deixamos aqui também alguns links úteis para que os nossos leitores possam dar continuidade aos seus estudos sobre este tema essencial para profissionais de tecnologia.

. .
Terabox Video Player