PM2 — Surveillance des applications JavaScript (Node.js)

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Qu'est-ce que PM2 ?

PM2 (Process Manager 2) est un puissant gestionnaire de processus pour les applications Node.js. Il ne se contente pas de lancer et de redémarrer les applications, mais fournit également des outils intégrés pour surveiller les performances, gérer le clustering et collecter des métriques en temps réel.

Pourquoi utiliser PM2 ?

Lors du déploiement d'applications de production sur Node.js, des défis apparaissent : redémarrage automatique en cas de panne, équilibrage de charge entre les cœurs du CPU, consultation des logs et suivi de l'utilisation de la mémoire/CPU. PM2 résout tous ces problèmes dès le départ, remplaçant ainsi plusieurs outils (nodemon, forever, cluster).

Installation

npm install -g pm2

L'installation globale permet d'exécuter PM2 depuis n'importe quel endroit du système.

Fonctions principales de surveillance

  • pm2 list — affiche tous les processus en cours avec leur PID, leur statut, leur consommation mémoire et CPU.
  • pm2 monit — moniteur terminal interactif affichant les métriques de chaque processus en temps réel.
  • pm2 show <id> — informations détaillées sur un processus spécifique : uptime, nombre de redémarrages, version de Node.js, variables d'environnement.
  • pm2 logs — consultation des logs combinés de toutes les applications ou d'un processus spécifique.
  • pm2 status — statut succinct de toutes les applications.

Exemple de code (Node.js)

Créez un fichier 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');});

Lancez avec la surveillance :

pm2 start app.js --name my-app --watchpm2 monit

Le flag --watch redémarre automatiquement l'application lors de la modification des fichiers. La commande pm2 monit ouvrira un panneau où vous verrez la charge CPU, la mémoire, le nombre de requêtes et l'uptime.

Quand l'utiliser

PM2 est idéal pour les environnements de production : serveurs web (Express, Koa), services API, bots, microservices. Il est indispensable lorsqu'il faut :

  • Assurer un fonctionnement 24h/24 et 7j/7 de l'application
  • Redémarrer automatiquement après une panne
  • Faire évoluer l'application sur tous les cœurs du processeur
  • Collecter des métriques pour une analyse ultérieure
  • Gérer les logs de manière centralisée

PM2 n'est pas adapté pour les scripts ponctuels ou le développement local (pour cela, mieux vaut utiliser nodemon).

Conclusion

PM2 est la norme de facto pour la surveillance des applications Node.js. Il est simple à installer, offre un riche ensemble de métriques et s'intègre facilement avec les systèmes d'alerte (via des plugins). Commencez par pm2 monit pour voir en temps réel la santé de votre application.

Recommendations