Post

Os 3 Pilares da Observabilidade: Além do "Está no ar?"

Os 3 Pilares da Observabilidade: Além do "Está no ar?"

Antigamente, monitorar um sistema era saber se o servidor estava ligado. Em um mundo de microserviços distribuídos na nuvem, “estar ligado” não é suficiente. Você precisa de Observabilidade. Mas o que compõe esse conceito? Vamos falar sobre os Três Pilares.

O Detetive de Sistemas

Observabilidade é a capacidade de entender o estado interno de um sistema apenas olhando para os seus dados externos. É a diferença entre saber que o carro parou e saber que ele parou porque a vela de ignição falhou no cilindro 3.

1. Métricas (O “Quanto?”)

São dados agregados ao longo do tempo (CPU, Memória, Requisições por Segundo, Latência).

  • Ferramentas: Prometheus, Grafana, Datadog.
  • Uso: Criar dashboards e alertas. “A latência aumentou 20% nos últimos 5 minutos”.

2. Logs (O “O quê?”)

São registros de eventos específicos que aconteceram no sistema.

  • Ferramentas: ELK Stack (Elasticsearch, Logstash, Kibana), Splunk, Graylog.
  • Uso: Investigar a causa raiz de um erro. “O usuário 123 recebeu um NullPointerException na linha 45”.
  • Dica: Use Logs Estruturados (JSON) para facilitar a busca.

3. Traces (O “Onde?”)

Mostram o caminho de uma única requisição através de todos os microserviços.

  • Ferramentas: Jaeger, Zipkin, AWS X-Ray.
  • OpenTelemetry: Para gerar esses traces de forma agnóstica é o OpenTelemetry (OTel). Ele permite que você instrumente seu código uma vez e envie os dados para qualquer provedor.

Troubleshooting de Latência

O Tracing Distribuído é a ferramenta definitiva para resolver o mistério do “Por que está lento?”.

  • Spans: Cada Trace é composto por múltiplos “Spans” (intervalos de tempo).
  • Causalidade: Se o Span do Serviço A dura 2s, e ele contém um Span do Serviço B de 1.8s, você sabe instantaneamente que o culpado é o Serviço B.
  • Gargalos de I/O: Muitas vezes, o culpado não é o código, mas uma query SQL lenta ou uma chamada de rede para um serviço legado. O Trace expõe esse tempo de espera de forma visual.

Contexto de Uso (ex: Datadog)

Muitos times utilizam ferramentas modernas como o Datadog, que unifica esses três pilares em uma única plataforma. Isso permite que você clique em um erro no log e veja instantaneamente o trace daquela requisição e a saúde do servidor naquele exato momento.

Curiosidade: Cardinalidade

Ao criar métricas, cuidado com a Cardinalidade. Tentar criar uma métrica para cada userId vai explodir o seu banco de métricas e custar uma fortuna. Guarde dados de alta cardinalidade (como IDs) nos Logs e Traces, e dados agregados nas Métricas.

Uma reflexão final

Da próxima vez que seu sistema apresentar uma lentidão intermitente em produção, pergunte-se: eu tenho os dados necessários para diagnosticar isso em 5 minutos ou vou precisar de 5 horas injetando novos logs e fazendo novos deploys? A observabilidade não é sobre o que você monitora hoje, mas sobre quais perguntas você será capaz de responder amanhã sem precisar alterar uma única linha de código.

This post is licensed under CC BY 4.0 by the author.