Next.js facilita lançar API routes para produção. É significativamente mais difícil saber se essas rotas estão saudáveis depois que usuários reais começam a bater nelas. Este guia cobre tudo que você precisa para monitorar API routes Next.js em produção — vendor-neutral, focado no que realmente pega incidentes.
Por que o monitoramento Next.js é diferente
Apps Next.js combinam múltiplos workloads em um único deploy: API routes, server actions, server components, middleware. Muito disso roda em infra serverless (Vercel, Lambda, Netlify, Cloudflare Workers). Isso quebra os pressupostos das ferramentas tradicionais: você não pode instalar agent no host, funções são curtas, cold starts importam, e o custo escala com invocações.
Next.js lançou um hook chamado instrumentation.ts especificamente para resolver isso. Roda uma vez por boot do servidor e permite que SDKs de monitoramento se acoplem ao runtime sem agent.
As 3 camadas do monitoramento Next.js
Camada 1: Checks de uptime externos
Responde "minha API é alcançável da internet pública?" Pega falhas que não têm nada a ver com seu código: DNS mal configurado, SSL expirado, outage do CDN, outage regional do Vercel/AWS, deploy que brica a função.
Opções: UptimeRobot, Pingdom, Better Stack, Nurbak Watch (4 regiões incluídas).
Camada 2: Monitoramento de execução interna
Responde "o que está acontecendo dentro do meu servidor quando ele lida com um request real?" Pega: queries lentas no banco que não lançam exceção, degradação de latência pós-deploy, picos de P95, delays de cold start, middleware que adiciona 200ms a cada request.
Opções: Datadog APM, New Relic, Sentry Performance (sampling), Nurbak Watch (sem agents).
Camada 3: Error tracking
Responde "que exceções meu código está lançando?" Pega falhas a nível de código: exceções não tratadas, TypeError, erros de SDKs terceiros, erros JavaScript do frontend.
Opções: Sentry (melhor da categoria), Bugsnag, Rollbar.
Por que você precisa das três
Cada camada pega falhas que as outras perdem. Três modos de falha em /api/checkout: (1) Stripe lança exceção → Sentry vence, (2) o banco faz query de 5 segundos sem erro → só monitoramento interno pega, (3) Vercel deploya o commit errado e a função não sobe → só pings externos detectam em 60s. Se faltar uma camada, você fica sabendo por ticket de suporte — horas depois.
O setup de 30 minutos
Passo 1: Instale Sentry para erros (10 min)
npm install --save @sentry/nextjs
npx @sentry/wizard@latest -i nextjsPasso 2: Instale Nurbak Watch para uptime + latência (5 min)
// instrumentation.ts
import * as Sentry from '@sentry/nextjs'
import { initWatch } from '@nurbak/watch'
export function register() {
Sentry.init({ dsn: process.env.SENTRY_DSN })
initWatch({ apiKey: process.env.NURBAK_WATCH_KEY })
}Passo 3: Configure canais de alerta (10 min)
Sentry: Slack para erros novos. Nurbak Watch: Slack para alertas normais, WhatsApp/SMS para downtime sustentado.
Passo 4: Valide com falha de teste (5 min)
Dispare numa rota de teste. Confirme que recebe alertas da ferramenta certa antes de ser um incidente real.
Custo total
| Camada | Ferramenta | Grátis | Pro |
|---|---|---|---|
| Uptime externo | Nurbak Watch | 3 endpoints | $29/mês |
| Execução interna | Nurbak Watch (mesmo) | incluído | incluído |
| Error tracking | Sentry | 5K erros/mês | $26/mês |
| Total | $0/mês | $55/mês |
Comparado com $400-1,200/mês de um setup equivalente no Datadog.
Erros comuns
- Instalar só uma camada. Sentry sozinho perde uptime. UptimeRobot sozinho perde latência real.
- Alertar em cada erro. Configure thresholds de taxa, não eventos individuais.
- Não testar o roteamento de alertas. Dispare manualmente após cada mudança de config.
- Só monitorar produção. Adicione monitoramento ao staging com canal separado.
Onde o Nurbak Watch se encaixa
Este guia é vendor-neutral. O padrão funciona com qualquer combinação que cubra as três camadas. Dito isso: Nurbak Watch foi construído especificamente porque queríamos as camadas 1 e 2 em uma só ferramenta otimizada para Next.js, com preço plano de $29/mês e setup de 5 linhas. Experimente grátis — 3 endpoints, sem cartão.

