1. Os três pilares
- Métricas — números agregados no tempo (CPU, latência p99, taxa de erro).
- Logs — eventos discretos com contexto (request_id, user, erro).
- Traces — caminho de uma requisição através de vários serviços.
Você não precisa dos três no dia 1. Comece por métricas + logs bons.
2. Métricas (o que e como)
Tipos clássicos: counter (só sobe), gauge (sobe e desce), histogram (distribuição de latências).
# Exemplos úteis
http_requests_total{method="GET",status="200"}
http_request_duration_seconds_bucket{le="0.1"}
process_resident_memory_bytes
node_filesystem_avail_bytes
3. Logs estruturados
{"ts":"2026-09-22T12:00:00Z","level":"error","msg":"payment failed","request_id":"abc","user_id":42,"err":"timeout"}
Evite logs só texto livre. JSON (ou logfmt) permite filtrar e correlacionar.
4. Traces e correlação
Um trace_id percorre API → worker → banco. Ferramentas: OpenTelemetry, Jaeger, Tempo. Só vale a pena quando há vários serviços e a latência está “sumida”.
5. Mínimo viável por serviço
- Healthcheck HTTP
- Contador de requests e erros
- Histograma de latência
- Logs com request_id
- Métricas de processo (CPU/memória)
6. Exercício
Liste 5 métricas e 3 campos de log que você colocaria no próximo serviço que for deployar. No próximo módulo montamos Prometheus + Grafana.
Próximo módulo · Stack Prometheus + Grafana + exporters