O que é PM2?
PM2 (Process Manager 2) é um poderoso gerenciador de processos para aplicações Node.js. Ele não apenas inicia e reinicia aplicações, mas também fornece ferramentas integradas para monitoramento de desempenho, gerenciamento de cluster e coleta de métricas em tempo real.
Para que serve o PM2?
Ao implantar aplicações de produção em Node.js, surgem desafios: reinicialização automática em caso de falha, balanceamento de carga entre núcleos de CPU, visualização de logs e rastreamento do uso de memória/CPU. O PM2 resolve todos esses problemas de forma nativa, substituindo várias ferramentas (nodemon, forever, cluster).
Instalação
npm install -g pm2A instalação global permite executar o PM2 de qualquer lugar no sistema.
Principais funções de monitoramento
- pm2 list — exibe todos os processos em execução com PID, status, consumo de memória e CPU.
- pm2 monit — monitor interativo de terminal, mostrando métricas de cada processo em tempo real.
- pm2 show <id> — informações detalhadas sobre um processo específico: uptime, número de reinicializações, versão do Node.js, variáveis de ambiente.
- pm2 logs — visualização de logs combinados de todas as aplicações ou de um processo específico.
- pm2 status — status resumido de todas as aplicações.
Exemplo de código (Node.js)
Crie um arquivo app.js:
const http = require('http');const server = http.createServer((req, res) => { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello from monitored app!');});server.listen(3000, () => { console.log('Server running on port 3000');});Execute com monitoramento:
pm2 start app.js --name my-app --watchpm2 monitA flag --watch reinicia automaticamente a aplicação quando arquivos são alterados. O comando pm2 monit abrirá um painel onde você verá o uso de CPU, memória, número de requisições e uptime.
Quando usar
O PM2 é ideal para ambientes de produção: servidores web (Express, Koa), serviços de API, bots, microsserviços. Ele é indispensável quando você precisa:
- Garantir operação 24/7 da aplicação
- Reiniciar automaticamente após uma falha
- Escalar a aplicação para todos os núcleos do processador
- Coletar métricas para análise posterior
- Gerenciar logs de forma centralizada
O PM2 não é adequado para scripts únicos ou desenvolvimento local (para isso, é melhor usar nodemon).
Conclusão
O PM2 é o padrão de facto para monitoramento de aplicações Node.js. Ele é simples de instalar, oferece um rico conjunto de métricas e se integra facilmente com sistemas de alerta (através de plugins). Comece com pm2 monit para ver a saúde da sua aplicação em tempo real.