AULA 63 MÓDULO 8 DevOps ⏱ 50 min

Logs e Observabilidade

Os 3 pilares: logs, métricas, traces. Pino: structured logging em JSON. Por que nunca usar console.log em produção.

observabilidadelogsmétricastracesPinoJSONDatadogSentry

Logs, Métricas e Traces

Observabilidade é a capacidade de entender o que está acontecendo dentro do sistema a partir de dados externos. Os 3 pilares: logs, métricas e traces distribuídos.

📋
Logs
Registro textual de eventos. O que aconteceu? Quando? Com quais parâmetros?
📊
Métricas
Números ao longo do tempo. Requests/s, latência P99, error rate.
🔗
Traces
Rastreio distribuído. De onde veio o request? Quais serviços tocou?

Pino — structured logging

Pino é o logger estruturado mais rápido para Node.js. Emite logs em JSON — parseáveis por ferramentas como Datadog, BetterStack e Grafana.

📝
nunca use console.log em produção
console.log não tem nível, não é estruturado e não vai para ferramentas de observabilidade. Use Pino ou Winston com JSON estruturado.
javascript
// Pino — structured logging
const pino = require('pino')
const logger = pino({
  level: process.env.LOG_LEVEL || 'info',
  // em dev: formatação legível
  transport: process.env.NODE_ENV !== 'production'
    ? { target: 'pino-pretty' }
    : undefined
})

// Middleware de logging de requests
app.use((req, res, next) => {
  const start = Date.now()
  res.on('finish', () => {
    logger.info({
      method:  req.method,
      url:     req.url,
      status:  res.statusCode,
      ms:      Date.now() - start,
      userId:  req.user?.id
    }, 'request')
  })
  next()
})

// Output JSON (produção):
// {"level":30,"time":1700000000,"method":"GET","url":"/users","status":200,"ms":12,"userId":"uuid","msg":"request"}
quiz · aula 63
Teste seus conhecimentos
0/3 respondidas
QUESTÃO 01
Por que usar logs estruturados em JSON em vez de strings?
QUESTÃO 02
Qual a diferença entre métricas e logs?
QUESTÃO 03
O que são distributed traces?
0/3