Cheatsheet · 1 página A4 · Trilha 7 · Observabilidade & Confiabilidade
7trilha

Observabilidade & Confiabilidade

Folha de revisão · 5 aulas · a maturidade operacional de staff
Camada Zero
Os 3 pilareslogs · métricas · traces
Logs contam o que aconteceu (evento), métricas mostram a tendência agregada (número no tempo), traces revelam onde o tempo foi numa requisição. Cada um responde uma pergunta diferente.
Cardinalidadeexplode custo
Cada combinação de labels vira uma série temporal. Colocar user_id ou request_id em label de métrica multiplica séries até derrubar o backend. Alta cardinalidade é log, não métrica.
Trace IDcorrelaciona tudo
Um trace_id propagado por todos os serviços costura log, métrica e span da mesma requisição. Sem ele você debuga às cegas; com ele, um grep une a jornada inteira.
// propaga no header
traceparent: 00-<trace_id>-<span_id>
SLI · SLO · error budgetcontrato
SLI é a medida (% de sucesso), SLO é a meta (99,9%), error budget é o que sobra pra gastar. Budget zerado trava deploy; budget de sobra libera risco.
A conta dos noves99,9% ≈ 43min
99,9% de disponibilidade dá ~43min/mês de downtime. 99,99% cai pra ~4min. Cada nove a mais custa uma ordem de grandeza; só prometa o que o negócio paga.
Burn rate alertingqueima do budget
Alerte pela velocidade que o error budget queima, não por threshold fixo. Queima rápida (1h) acorda alguém; queima lenta vira ticket. Mata o ruído de alerta por pico isolado.
Percentis > médiaa média mente
A média esconde a cauda: um p99 de 2s some numa média de 200ms. Olhe p50 (típico) e p99 (pior caso real). É o p99 que define a experiência do usuário irritado.
Tail amplificationfan-out
Quem espera por 100 chamadas paralelas herda a mais lenta de todas. Com p99 de 1%, ~63% das requisições pegam ao menos uma resposta lenta. A cauda de um vira o normal do agregador.
Circuit breakerclosed→open→half
Falhas acima do limite abrem o circuito: para de chamar e falha rápido em vez de empilhar timeouts. Depois entra em half-open, testa uma chamada, e fecha se voltar. Evita derrubar o dependente junto.
Retry: backoff + jitteranti-storm
Retry imediato e sincronizado vira retry storm que afunda o serviço já doente. Espere com backoff exponencial e adicione jitter pra dessincronizar os clientes. Só retry o que é idempotente.
delay = base * 2^n + rand(jitter)
Idempotênciamesma chave, 1 efeito
Operação idempotente repetida não muda o resultado. Use uma idempotency key pra deduplicar: o segundo POST com a mesma chave devolve a resposta do primeiro, sem cobrar duas vezes.
Exactly-once é mitona entrega
Entrega exactly-once não existe em rede real. O que funciona: at-least-once + consumidor idempotente. A duplicata chega, mas o efeito acontece uma vez só. Esse é o exactly-once de verdade.
Camada Zero · cheatsheet · Trilha 7 · Observabilidade & Confiabilidade camadazero · fundamentos para quem programa com IA