Observabilidade e Monitoramento

Em ambientes de tecnologia moderna, a observabilidade é um processo que usa ferramentas de software para detectar problemas, observando as entradas e saídas da pilha de tecnologia. As entradas incluem pilhas de aplicação e infraestrutura, enquanto as saídas incluem transações de negócios, experiências de usuário e desempenho de aplicações.

As ferramentas de observabilidade coletam e analisam um amplo espectro de dados, incluindo a integridade e o desempenho de aplicações, métricas de negócios, como taxas de conversão, mapeamento da experiência de usuário e telemetria de infraestrutura e de rede, para resolver os problemas antes que afetem os KPIs de negócios.

Existem 3 pilares que compõe a observabilidade de sistemas:

  1. Logs
    É um registro imutável que apresenta data/hora de eventos discretos. Funciona como um diário do sistema, registrando em formato de texto eventos específicos, trazendo detalhes sobre ele. Geralmente é o primeiro dado a ser verificado quando algum incidente ocorre, pois pode ser obtido de três formas: texto puro, binário e estruturado.

  2. Métricas
    Pode ser definido como representações numéricas de dados e valores quantitativos sobre desempenho do sistema, utilizado para analisar o comportamento de um evento ou componente durante um intervalo de tempo. As métricas são um agrupamento de registros de log que mantém dados por mais tempo. Elas fornecem informações como nome, data, hora e KPIs.

  3. Traces (Rastreamentos)
    Descreve todo o trajeto de uma jornada e solicitação conforme ela percorre de um nó ao outro dentro de um sistema distribuído. Mostra como os serviços se conectam apresentando detalhes em nível de código, isso torna mais fácil o entendimento de quais elementos causam erros de sistema, o monitoramento de fluxo através de módulos e o encontro de gargalos de desempenho.

 

image-20240514-204915.png

O monitoramento em geral só pode ser aplicado em coisas que conhecemos e que saibamos quais são os "estados normais" de determinados serviços/sistemas, por exemplo: monitorar o log de erros do servidor HTTP rodando em determinado local.

O papel do monitoramento é abordar duas questões:

  1. O que está quebrado?

  2. Por quê?

Neste caso temos que saber quais são as informações deste log que são “normais” e quais são as “anormais”
Ele pode ser combinado com estratégias de alertas e pode ser capaz de indicar o que está com problema e o que pode passar a ter futuramente.