Qu'est-ce que PM2 ?
PM2 (Process Manager 2) est un gestionnaire de processus avancé pour les applications Node.js, qui offre des fonctionnalités intégrées de surveillance, de redémarrage automatique et d'équilibrage de charge. Il permet d'exécuter des applications JavaScript en environnement de production, de suivre leur état, de collecter des métriques de performance et de gérer plusieurs processus simultanément.
Pourquoi la surveillance est-elle nécessaire ?
Dans un environnement de production, il est crucial de savoir ce qui se passe avec l'application : si elle a planté, si la consommation mémoire est excessive, ou si des erreurs surviennent. PM2 résout ces problèmes en fournissant :
- Un redémarrage automatique en cas de panne
- La collecte de métriques CPU et RAM
- La journalisation de stdout/stderr
- Une interface web de surveillance intégrée (PM2 Plus)
Installation
Installez PM2 globalement via npm :
npm install -g pm2Fonctionnalités principales
- Lancement d'une application :
pm2 start app.js - Surveillance en temps réel :
pm2 monit - Affichage de la liste des processus :
pm2 list - Journaux :
pm2 logs - Panneau web :
pm2 plus(inscription requise)
Exemple de code en JavaScript (Node.js)
Créez une application simple 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');});Lancez avec la surveillance :
pm2 start app.js --name my-apppm2 monitVous verrez dans la console des graphiques en direct de la consommation mémoire et CPU, ainsi que le nombre de redémarrages.
Quand l'utiliser
PM2 est idéal pour :
- Les serveurs de production Node.js
- Les architectures de microservices
- Les applications nécessitant une récupération automatique après des pannes
- Les situations où une surveillance simple est nécessaire sans services externes
Conclusion
PM2 est un outil incontournable pour tout développeur Node.js souhaitant assurer le fonctionnement stable de ses applications. Il est simple à installer, ne nécessite pas de configuration complexe et fournit toutes les fonctions nécessaires à la surveillance et à la gestion des processus.