Observabilidade e Monitoramento: Conceitos e Aplicação - Instituto Eldorado
22 de Março de 2024

Observabilidade e Monitoramento: Conceitos e Aplicação

Artur Henrique

Artur Henrique Brandão de Souza

Autor
Artur Henrique

Alberto Costa de Araújo

Autor
Artur Henrique

Jocsão de Farias Cabral

Autor

À medida que navegamos pela complexa engenharia de software e operações de sistemas, a observabilidade surge como um farol orientador. Esta abordagem não apenas ilumina os caminhos através de sistemas intrincados, mas também empodera as equipes com a habilidade de compreender e solucionar problemas de forma eficaz. Diferentemente do monitoramento convencional, a observabilidade oferece uma visão mais profunda do funcionamento interno de um sistema, resultando em uma resolução de problemas mais ágil e eficiente. 

Neste blog, nossa jornada nos conduzirá pela exploração do conceito central da observabilidade. Iremos tratar dos três pilares fundamentais que sustentam essa abordagem. Além disso, mergulharemos em uma análise comparativa entre a observabilidade e o monitoramento tradicional, destacando suas distinções e importância no cenário atual. 

O que é Monitoramento? 

O monitoramento é o processo de coleta contínua de dados, fundamentado em métricas padronizadas. Esta prática foca primordialmente na saúde geral do sistema, detectando anomalias e outros indicadores de desempenho. Embora o monitoramento forneça dados valiosos, ele não necessariamente implica em ação direta, mas sim em informar sobre o estado atual do sistema. Por exemplo, ele pode indicar a disponibilidade de um sistema ou a quantidade de acessos a uma página web específica. 

O conceito de monitoramento surgiu em prol de ter um acompanhamento contínuo e frequente de sistemas por parte de gestores e governantes para que pudessem tomar medidas e agir sobre as métricas oferecidas pelo monitor. 

O que é Observabilidade? 

A observabilidade é a habilidade de entender o comportamento interno de um sistema complexo através de sinais e dados relevantes, como métricas, logs e rastreamento (Traces). Esta abordagem é fundamental em sistemas modernos, incluindo arquiteturas de microsserviços, computação em nuvem e aplicações distribuídas. Com sistemas cada vez mais interconectados, a capacidade de identificar e resolver problemas de maneira eficaz é crucial. 

Os Três Pilares da Observabilidade 

A observabilidade é sustentada por três pilares fundamentais que trabalham em conjunto para fornecer uma visão completa do sistema: 

  1. Logs:

Os logs são registros cronológicos das atividades e eventos que ocorrem em um sistema. Eles oferecem insights valiosos sobre o fluxo de execução e permitem que os desenvolvedores rastreiem a sequência de ações que levaram a um determinado estado. A análise de logs pode ser uma ferramenta poderosa para entender as causas raiz de problemas e reconstruir eventos passados. 

  1. Métricas:

As métricas são valores numéricos que representam características específicas do sistema em um determinado momento. Elas podem abranger desde o desempenho da CPU e a utilização de memória até o tempo de resposta de uma API. Monitorar métricas ao longo do tempo ajuda a identificar padrões, anomalias e tendências, permitindo uma otimização proativa e a detecção de problemas emergentes. 

  1. Traces:

Os Traces envolvem o acompanhamento das solicitações à medida que percorrem vários componentes de um sistema. Isso permite visualizar o fluxo completo de uma transação e identificar gargalos ou atrasos em serviços individuais. Os Traces são particularmente valiosos em arquiteturas distribuídas, onde várias partes de um sistema podem estar interagindo. 

Monitoramento x Observabilidade 

Enquanto o monitoramento se concentra na exibição de métricas de alto nível, a observabilidade fornece um entendimento mais aprofundado, revelando as causas raízes dos problemas. A observabilidade permite uma análise mais detalhada do comportamento interno dos componentes do sistema e é particularmente eficaz na depuração de sistemas complexos e distribuídos. 

A observabilidade se destaca ao: 

– Permitir uma análise mais profunda das causas raiz dos problemas. 

– Possibilitar a compreensão do comportamento interno dos componentes do sistema. 

– Facilitar a depuração eficaz de sistemas complexos e distribuídos. 

– Oferecer uma visão mais holística das interações entre os elementos do sistema. 

Ferramentas de observabilidade 

Diversas ferramentas hoje atuam trazendo soluções diversas para lidar com o volume, gerenciamento e análise dos dados capturados em prol da observabilidade. Alguns exemplos: 

Grafana

  • Facilidade de Uso: Interface intuitiva com drag-and-drop, variáveis, e organização por pastas. Oferece dashboards pré-construídos pela comunidade.
  • Customização e Flexibilidade: Dashboards altamente personalizáveis com uma variedade de visualizações e extensa biblioteca de plugins.
  • Capacidades de Alerta e Relatório: Definição de limites para campos, organização de alertas, envio para múltiplas aplicações, e relatórios customizáveis.
  • Integrações e Compatibilidades: Sem base de dados própria, integra-se a diversas fontes de dados e plataformas.
  • Custo e Licenciamento: Open-source com três tipos de planos: Grátis, Cloud Pro e Cloud Advanced.

Splunk 

  • Facilidade de Uso: Alta curva de aprendizado com linguagem de consulta própria (SPL), recursos avançados na versão paga.
  • Customização e Flexibilidade: Relatórios personalizados via SPL, desenvolvimento de uma nova ferramenta de visualização (Splunk Dashboard Studio).
  • Capacidade de Alerta e Relatório: Alertas agendados ou em tempo real, envio para e-mail e Webhook.
  • Integração e Compatibilidades: Base de dados própria, recebimento de dados de várias fontes.
  • Custo e Licenciamento: Versão na nuvem ou Enterprise, pagamento baseado no uso de dados e atividades de monitoramento.

Elastic Stack 

  • Facilidade de Uso: Processos separados com curvas de aprendizado distintas para ElasticSearch e Kibana.
  • Customização e Flexibilidade: API do ElasticSearch para consultas e ingestão personalizadas, ampla variedade de customizações no Kibana.
  • Capacidade de Alerta e Relatório: Uso do Watcher para criação de condições de alertas específicas.
  • Integração e Compatibilidades: Ferramentas como Logstash e Beats para coleta e envio automático de dados. 
  • Custo e Licenciamento: Open-source com funcionalidades avançadas na versão paga.

Dynatrace 

  • Facilidade de Uso: Agente automatizado para mapeamento e monitoramento do ambiente, com geração automática de dashboards.
  • Customização e Flexibilidade: Possibilidade de personalização na coleta de dados e desenvolvimento de painéis.
  • Capacidade de Alerta e Relatório: IA para alertas inteligentes, focando em problemas e suas causas raízes.

OpenTelemetry 

OpenTelemetry é um framework open-source de observabilidade para instrumentação, geração, coleta e exportação de dados de telemetria (traces, logs e métricas). Ele também conhecido como Otel, criado da junção de dois projetos OpenTracing e OpenCensus, ele é o principal meio de convenção semântica e padrões de protocolo para todos os fornecedores, que podem integrar e estender as suas soluções junto ao Otel. São mais de 40 fornecedores, incluindo fornecedores open-source. 

  • Facilidade de Uso: Diversas maneiras de uso, por integração ao código ou ao ambiente, captura de dados de telemetria de forma automática ou manual.
  • Customização e Flexibilidade: Extremamente flexível e customizável
  • Capacidade de Alerta e Relatório: Não possui por não ser a sua finalidade.
  • Integração e Compatibilidades: Se integra aos mais variados tipos de ferramentas de observabilidade, open source ou comerciais.
  • Custo e Licenciamento: Totalmente open source.

Proposta Aplicada – Guia Prático 

No dinâmico mundo do e-commerce, a eficiência e a confiabilidade das aplicações web são cruciais. Uma estratégia robusta de monitoramento e observabilidade pode ser a chave para o sucesso. Vamos explorar como implementar um sistema eficaz usando tecnologias de ponta como OpenTelemetry e Grafana. 

Integração com OpenTelemetry para Dados Abrangentes 

Considerando uma aplicação web em e-commerce, o primeiro passo é garantir a coleta abrangente de dados. Aqui, a integração com OpenTelemetry (Otel) é vital. A implantação pode ser feita ao software no seu desenvolvimento, permitindo instrumentação manual ou automática. A ferramenta suporta diversas linguagens como Java, Python, .Net, Go, PHP, Java Script, Ruby, etc. Além da implantação no software, é possível inserir diretamente no servidor, em que não há necessidade de modificar o código diretamente.  Com isso, a diferença entre esses métodos é que a inserção via servidor não permite customização. 

A instrumentação é a ação de tornar o sistema observável, ou seja, os componentes de sistema devem gerar traces, métricas e logs. 

Otel utiliza um componente chamado Collector que consegue centralizar todos os dados de telemetria em um só lugar. Através da coleta, processamento e distribuição de dados aos fornecedores, facilita a manutenção e integração entre ferramentas, sem a necessidade de modificação no código. 

Análise e Monitoramento Avançados com Grafana 

O Grafana emerge como uma ferramenta poderosa para análise e monitoramento desses dados. Embora o Grafana não tenha um sistema de armazenamento de dados próprio, ele se integra perfeitamente com soluções de armazenamento especializadas: 

Prometheus para métricas: Utilizamos Prometheus, uma base de dados desenhada especificamente para métricas, facilitando o acompanhamento do desempenho em tempo real. 

Grafana Loki para Logs: Para o gerenciamento de logs, o Grafana Loki é a escolha ideal. Seu design otimiza a consulta e o armazenamento de logs, utilizando indexação eficiente por metadados. 

Grafana Tempo para Traces: Finalmente, para os traces, o Grafana Tempo oferece uma solução de armazenamento eficiente, sem a necessidade de índices complexos. 

Fluxo de Alerta Integrado para Resposta Rápida 

O sistema de alertas é um componente crítico, permitindo a identificação rápida de comportamentos anômalos. Propomos um fluxo integrado: Alerta -> Métricas -> Logs -> Traces. Esse fluxo garante que, ao receber um alerta, os usuários – sejam desenvolvedores ou outros profissionais – tenham acesso imediato a informações detalhadas sobre o problema. 

Cenário de Uso: Diagnóstico Rápido e Eficiente 

Imagine o seguinte cenário: um alerta é enviado ao usuário, detalhando a natureza do problema. Ao clicar no link fornecido, o usuário é direcionado a um dashboard no Grafana, onde as métricas relevantes são destacadas. Com a opção de drilldown, é possível explorar logs e traces específicos, seguindo o caminho do usuário até a origem do erro. 

Este método permite não apenas identificar rapidamente o problema, mas também compreender o contexto completo, incluindo dados de negócio como nome do usuário e seção da página. 

Alerta Exemplo

 

Métricas Exemplo 

Logs Exemplo

Traces Exemplo

Benefícios Claros: Tempo de Resposta Reduzido e Solução Eficiente 

Com essa abordagem, o tempo de resposta para problemas detectados é significativamente reduzido. A capacidade de ir diretamente ao código fonte do erro, enriquecido com dados contextuais, transforma a resolução de problemas em uma tarefa mais gerenciável e eficiente. 

Conclusão:

A Observabilidade como Chave para o Sucesso em Sistemas Complexos 

A observabilidade se tornou um elemento essencial para a operação e manutenção bem-sucedida de sistemas modernos e complexos. Seus três pilares – logs, métricas e traces- trabalham em conjunto para fornecer uma visão abrangente e profunda do comportamento interno dos sistemas. Ao contrário do monitoramento tradicional, a observabilidade permite que as equipes de desenvolvimento e operações compreendam os sistemas em um nível mais profundo, facilitando a resolução eficaz de problemas e a otimização contínua. 

Cadastre-se em nossa newsletter

Created By Avanti