DEV Community

Ana Carolina Manzan
Ana Carolina Manzan

Posted on

Fundamentos de Observabilidade

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.

Top comments (0)