Os três tipos de telemetria

Prévia grátis 3 min de leitura

Logs, métricas e traces respondem a perguntas diferentes, e os times acabam com os três porque nenhum substitui os outros.

Os logs respondem "o que aconteceu com esta requisição?"

Um log é o registro de um evento, com detalhes junto. Os logs são a telemetria mais rica e a mais cara de guardar.

Eles são excelentes para explicar uma coisa que deu errado e ruins para dizer com que frequência ela dá errado, porque contar coisas em logs significa ler todos eles.

As métricas respondem "quanto, e qual é a tendência?"

Métricas são números agregados ao longo do tempo: requisições por segundo, taxa de erros, latência no percentil 95, memória em uso.

Elas são baratas de guardar e baratas de consultar num histórico longo, e perdem todo o detalhe. Uma métrica diz que a taxa de erros triplicou às nove horas, e não consegue dizer o que qualquer um desses erros dizia.

Os traces respondem "para onde foi o tempo?"

Um trace acompanha uma única requisição por todos os componentes que ela tocou, com a duração de cada um.

É o que esta aplicação menos precisa, porque há um só processo. O curso de nível Sênior "System Design: arquitetura de service mesh" mostrou que o grafo de chamadas que um trace existe para revelar não existe aqui.

flowchart TB
  L["logs: o que aconteceu com esta requisição"] --> L1["detalhe rico, caro, difícil de contar"]
  M["métricas: quanto, e a tendência"] --> M1["baratas, histórico longo, sem detalhe"]
  T["rastros: para onde o tempo foi"] --> T1["precisa de um grafo entre componentes"]
  T1 --> N["um processo aqui, então pouco a revelar"]

A dupla que funciona

As métricas dizem que algo piorou, e os logs dizem o quê.

Nenhum dos dois funciona sozinho. Métricas sem logs dão um alerta e nenhuma explicação. Logs sem métricas dão uma explicação que você só procura depois que alguém reclama.

A quarta coisa, que não é nenhuma dessas

O rastreamento de erros é um serviço que recebe exceções, agrupa as idênticas, conta e avisa quando aparece um tipo novo.

Tecnicamente ele é feito de logs, mas o agrupamento é o que o torna diferente na prática. Cem ocorrências de um bug viram uma entrada com uma contagem, e essa é a diferença entre um sinal e um paredão de texto.

Pontos-chave

  • Os logs explicam um evento com riqueza e são ruins para contar.
  • As métricas contam barato por períodos longos e não carregam detalhe.
  • Os traces acompanham uma requisição pelos componentes, o que importa menos num único processo.
  • As métricas dizem que algo piorou e os logs dizem o quê, e nenhum dos dois funciona sozinho.
  • O rastreamento de erros agrupa exceções idênticas, transformando um paredão de texto num sinal.
Aula 1 de 7 · grátis

Continue com a aula 2

O que esta aplicação enxerga

Faz o inventário dos logs com tag de requisição, do Thruster e da Cloudflare, e do silêncio de uma máquina morta.

Com uma conta grátis você também tem os quizzes, seu progresso e suas anotações, e a discussão.

Digite para buscar...