Go — Observabilidade
TL;DR
Galho 16 da trilha Go — como enxergar o que um serviço Go está fazendo em produção. 8 notas em 3 fases: os três pilares e logging estruturado com
slog(Iniciado); profiling compprof, métricas Prometheus eexpvar(Adepto); tracing distribuído com OpenTelemetry e a prática de observar em produção (Magus). Ao fim, você sabe instrumentar, coletar e interpretar sinais de um serviço Go rodando de verdade.
Observabilidade em Go tem uma vantagem rara: o runtime já vem instrumentado — pprof e expvar são biblioteca padrão, não dependência externa. Este galho parte desse alicerce nativo e sobe até o ecossistema padrão de produção (Prometheus, OpenTelemetry). Ver roadmap pro estado das notas.
Notas por fase
Iniciado — os sinais básicos
- 01 - Os três pilares em Go — logs, métricas e traces; o que cada um responde e como se complementam
- 02 - Logging estruturado com slog —
log/slog, handlers, níveis, contexto e correlação de logs
Adepto — instrumentando o runtime
- 03 - pprof — CPU e memória —
net/http/pprof, perfis de CPU/heap/goroutine, coleta em produção - 04 - Analisando profiles —
go tool pprof, flame graphs, identificando hot paths e vazamentos - 05 - Métricas com Prometheus — client_golang, counters/gauges/histograms, exposição
/metrics - 06 - expvar e runtime metrics —
expvarda stdlib,runtime.MemStats, métricas do GC e goroutines
Magus — tracing e produção
- 07 - OpenTelemetry — tracing — spans, contexto de propagação, exporters, instrumentação de HTTP/gRPC
- 08 - Observabilidade em produção — correlação logs/métricas/traces, SLOs, dashboards, custo de instrumentar