Observabilidade
Métricas, rastreamento, logs, linhagem e SLO: responder sobre o sistema sem abrir o código.
Observabilidade é conseguir responder, sem abrir o código e sem reproduzir o problema: executou? quanto demorou? quantos registros? quantos falharam? em qual etapa? quando? em qual versão? Log sozinho responde a primeira e a sexta; as outras cinco exigem número.
adopt Arcane.Observar as O
painel := O.painel("importacao", "2.1.0")
O.contar(painel, "linhas_lidas", 40000)
O.contar(painel, "linhas_recusadas", 12)
O.medir(painel, "duracao_ms", 830.0)
assert O.valor(painel, "linhas_recusadas") is 12| Pergunta | Ferramenta | Página |
|---|---|---|
| quanto? quantos? | contador, medida, marcador | Métricas |
| onde o tempo foi? | trechos com pai e filho | Rastreamento |
| o que aconteceu com ESTE pedido? | log em JSON, com o id | Logs |
| de onde veio este dado? | linhagem | Linhagem |
| estamos dentro do combinado? | SLO e orçamento de erro | SLO |
| alguém precisa agir agora? | alerta de janela dupla | Alertas |
| a cauda, e não a média | percentis | Percentis |
Por onde seguir#
Métricas
contador, medida e marcador — e o formato do Prometheus
Rastreamento
trechos aninhados: onde o tempo foi
Logs estruturados
JSON por linha, com os campos para filtrar
Linhagem
de onde veio o dado, e o que muda se a fonte mudar
SLO e orçamento de erro
a conta que decide se dá para arriscar o deploy
Alertas
a taxa de queima em duas janelas
Percentis, e a cauda
P50, P95, P99 — e por que não a média
A diferença é real?
Mann-Whitney, e o empate honesto
Flame graph e pausas
o tempo próprio de cada ação
Memória
o coletor, o layout e a posse