Os três tipos de telemetria
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.
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.