O que é PM2?
PM2 (Process Manager 2) é um gerenciador de processos avançado para aplicações Node.js que oferece recursos integrados de monitoramento, reinicialização automática e balanceamento de carga. Ele permite executar aplicações JavaScript em ambiente de produção, monitorar seu estado, coletar métricas de desempenho e gerenciar vários processos simultaneamente.
Por que o monitoramento é necessário?
Em ambiente de produção, é fundamental saber o que está acontecendo com a aplicação: se ela não caiu, se o consumo de memória não está excedendo, se não estão ocorrendo erros. O PM2 resolve essas questões fornecendo:
- Reinicialização automática em caso de falhas
- Coleta de métricas de CPU e RAM
- Registro de logs stdout/stderr
- Interface web de monitoramento integrada (PM2 Plus)
Instalação
Instale o PM2 globalmente via npm:
npm install -g pm2Funcionalidades principais
- Iniciar aplicação:
pm2 start app.js - Monitoramento em tempo real:
pm2 monit - Visualizar lista de processos:
pm2 list - Logs:
pm2 logs - Painel web:
pm2 plus(requer registro)
Exemplo de código em JavaScript (Node.js)
Crie uma aplicação simples app.js:
const http = require('http');const server = http.createServer((req, res) => { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello from PM2!');});
server.listen(3000, () => { console.log('Server running on port 3000');});Inicie com monitoramento:
pm2 start app.js --name my-apppm2 monitVocê verá no console gráficos ao vivo de consumo de memória e CPU, além do número de reinicializações.
Quando usar
O PM2 é ideal para:
- Servidores Node.js em produção
- Arquiteturas de microsserviços
- Aplicações que exigem recuperação automática após falhas
- Situações onde é necessário um monitoramento simples sem serviços externos
Conclusão
O PM2 é uma ferramenta indispensável para qualquer desenvolvedor Node.js que deseja garantir a operação estável de suas aplicações. É simples de instalar, não requer configuração complexa e fornece todas as funções necessárias para monitoramento e gerenciamento de processos.