Observabilidade é a capacidade de medir e inferir o estado atual de um sistema com base nos dados que ele gera. Esses dados geralmente estão na forma de logs, métricas e rastreamentos. Como um breve exemplo, você pode observar a integridade do seu aplicativo de microsserviços examinando suas métricas.
A observabilidade fornece aos desenvolvedores uma visão holística de como um sistema complexo está funcionando. Por meio da coleta, armazenamento e análise de dados, os desenvolvedores ganham a capacidade de identificar e solucionar problemas em seus sistemas.
A observabilidade começa com a coleta de dados em tempo real. Os dados coletados são então armazenados em um local centralizado para análise. Essa análise pode ser feita por meio de um algoritmo de aprendizado de máquina, visualização ou combinação de técnicas estatísticas.
O resultado dessa análise alerta os desenvolvedores sobre quaisquer anomalias em um aplicativo ou sistema. Os alertas podem ser automatizados e acionados por limites estabelecidos, níveis de gravidade ou outros critérios com base nas necessidades do negócio ou do aplicativo. Depois que a anomalia é identificada e localizada, os desenvolvedores podem usar os dados para depurar e resolver o problema.
Como mencionado acima, os principais tipos de dados de observabilidade são registros, métricas e rastreamentos.
Monitoramento é a capacidade de observar e verificar o progresso dos processos que acontecem dentro de um sistema ou aplicativo. O monitoramento depende muito de métricas. Resumindo, ele fornece visualização do ambiente e permite que você teste problemas conhecidos. A observabilidade, por outro lado, fornece dados novos e mais profundos que permitem inferir que um problema pode existir. Você pode então mergulhar na causa do problema para obter insights sobre o futuro.
Monitoramento e observabilidade não são coisas distintamente separadas. Em vez disso, são opções de análise de dados e técnicas de visualização que permitem aos desenvolvedores obter insights mais rapidamente.
Com essas definições estabelecidas, a tabela abaixo analisa mais detalhadamente quatro diferenças sutis entre monitoramento e observabilidade em aplicativos de software. Essas quatro diferenças são divididas em escopo, granularidade, flexibilidade e análise.
Monitoramento | observabilidade | |
---|---|---|
Escopo | Mede métricas (por exemplo, tempo de atividade do sistema, uso da CPU, taxas de erro) | Compreende os mecanismos do sistema em funcionamento com base em suas saídas |
Granularidade |
Agregados ou amostras de dados coletados em uma cadência regular (com base em métricas predefinidas) |
Coleta e analisa dados granulares para obter insights e compreensão mais profundos do comportamento do sistema |
Flexibilidade |
Implementa painéis predefinidos ou limites de alerta que são difíceis de modificar uma vez implantados |
Usa uma abordagem flexível e adaptável com ferramentas fáceis de mudar que acomodam situações e requisitos em evolução |
Análise |
Identifica e reage a eventos ou anomalias específicas |
Enfatiza a análise proativa e a solução de problemas, fornecendo aos desenvolvedores as ferramentas necessárias para identificar a causa de um problema e implementar soluções ao longo do tempo |
Telemetria na observabilidade de software se refere à prática de coletar e transmitir dados sobre o desempenho e o comportamento de um sistema de software em tempo real. Esses dados (tempos de resposta, taxas de erro, consumo de recursos, etc.) são usados para monitorar e entender o estado atual do sistema e ajudar os desenvolvedores a identificar oportunidades para melhorar o desempenho.
Em conversas sobre telemetria, o OpenTelemetry (OTel) geralmente se torna um ponto de discussão porque oferece uma abordagem simplificada para tornar a observabilidade mais fácil para os desenvolvedores. OTel é um conjunto de ferramentas e bibliotecas de código aberto que padronizam a coleta de dados de telemetria (registros, métricas e rastros) de sistemas de software.
Você pode aprender mais sobre OTel e como ele afeta o cenário nativo da nuvem em Como o OpenTelemetry está mudando a maneira como rastreamos e projetamos aplicativos .
A observabilidade fornece aos desenvolvedores uma melhor compreensão de suas aplicações, o que permite:
A observabilidade vem com algumas desvantagens, e as mais comuns incluem:
O NGINX tem o orgulho de fornecer recursos educacionais gratuitos adicionais sobre observabilidade e OTel: