¿Qué es PM2?
PM2 (Process Manager 2) es un potente administrador de procesos para aplicaciones Node.js. No solo inicia y reinicia aplicaciones, sino que también proporciona herramientas integradas para monitorear el rendimiento, gestionar la agrupación en clústeres y recopilar métricas en tiempo real.
¿Por qué necesitas PM2?
Al implementar aplicaciones de producción en Node.js, surgen tareas: reinicio automático en caso de fallo, equilibrio de carga entre núcleos de CPU, visualización de registros y seguimiento del uso de memoria/CPU. PM2 resuelve todas estas tareas de fábrica, reemplazando varias herramientas (nodemon, forever, cluster).
Instalación
npm install -g pm2La instalación global permite ejecutar PM2 desde cualquier lugar del sistema.
Funciones principales de monitoreo
- pm2 list — muestra todos los procesos en ejecución con PID, estado, consumo de memoria y CPU.
- pm2 monit — monitor interactivo de terminal que muestra métricas de cada proceso en tiempo real.
- pm2 show <id> — información detallada sobre un proceso específico: uptime, número de reinicios, versión de Node.js, variables de entorno.
- pm2 logs — visualización de registros combinados de todas las aplicaciones o de un proceso específico.
- pm2 status — estado resumido de todas las aplicaciones.
Ejemplo de código (Node.js)
Cree un archivo 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');});Ejecute con monitoreo:
pm2 start app.js --name my-app --watchpm2 monitLa bandera --watch reinicia automáticamente la aplicación cuando los archivos cambian. El comando pm2 monit abrirá un panel donde verá la carga de CPU, memoria, número de solicitudes y uptime.
Cuándo usarlo
PM2 es ideal para entornos de producción: servidores web (Express, Koa), servicios API, bots, microservicios. Es indispensable cuando se necesita:
- Garantizar el funcionamiento 24/7 de la aplicación
- Reiniciar automáticamente después de una falla
- Escalar la aplicación a todos los núcleos del procesador
- Recopilar métricas para análisis posteriores
- Gestionar registros de forma centralizada
PM2 no es adecuado para scripts únicos o desarrollo local (para eso es mejor nodemon).
Conclusión
PM2 es el estándar de facto para monitorear aplicaciones Node.js. Es fácil de instalar, proporciona un rico conjunto de métricas y se integra fácilmente con sistemas de alerta (a través de plugins). Comience con pm2 monit para ver la salud de su aplicación en tiempo real.
También en la biblioteca
Generación de PDF en Java: revisión de las mejores bibliotecas (iText, Apache PDFBox, OpenPDF)
Cliente HTTP para Go (Golang): mejores bibliotecas para trabajar con HTTP
BenchmarkDotNet para C# (.NET): guía completa con ejemplos
Markdig para C# (.NET): guía completa con ejemplos prácticos
Cliente HTTP para TypeScript: mejores bibliotecas para aplicaciones web modernas