Monitoreo de Nodejs usando PM2

El monitoreo de Nodejs en el servidor de producción es una parte muy importante y crítica en el desarrollo general de aplicaciones de Nodejs. A diferencia del escenario de ensayo o desarrollo, si algo sale mal en el servidor de producción, afecta directamente al usuario final y, lo más importante, a su cliente. En este tutorial veremos cómo monitorear adecuadamente nuestro servidor Nodejs después de implementarlo en producción utilizando el módulo de nodo PM2 y las métricas clave como plataforma de análisis.

¿Qué es PM2?

PM2 es un administrador de procesos para la aplicación Nodejs. Viene con su propio equilibrador de carga. Asegúrese de que su aplicación Nodejs esté completamente disponible para el usuario final volviéndola a cargar en caso de excepción.

Instalación de PM2

La instalación de PM2 es fácil y puede hacerlo usando el siguiente comando.

npm install -g pm2 @ más reciente

PM2 debe instalarse como un módulo de nodo global, así que eso es lo que hará -g. Es posible que deba pasarle acceso a sudo en caso de que esté utilizando un sistema basado en Mac o Linux.

Integrando PM2 con Nodejs

Antes de realizar la integración, creemos una aplicación básica de Node.js usando Express .

Utilice npm init para crear un package.json.

package.json
{
  “nombre” : “pm2demo” ,
  “versión” : “1.0.0” ,
  “descripción” : “” ,
  “main” : “app.js” ,
  “scripts” : {
    “test” : “echo” Error : ninguna prueba especificada “&& exit 1”
  } ,
  “autor” : “” ,
  “licencia” : “ISC”
}

Instalemos el módulo Express . Ejecute el siguiente comando.

npm install –save express

Creemos un servidor básico e integremos pm2 con él.

app.js
var express = require ( ‘express’ ) ;
var app = express ( ) ;
var router = express. Enrutador ( ) ;


enrutador.
get ( ‘/’ , function ( req , res ) {

    res.
send ( “Hola mundo” ) ;
} ) ;


aplicación.
use ( ‘/’ , enrutador ) ;


aplicación.
escuchar ( 3000 ) ;

Para ejecutar esta aplicación, generalmente usamos npm o node mando. Pero en su lugar, vamos a ejecutar esto usando PM2. Aquí hay un comando para hacerlo.

pm2 iniciar app.js

Puede ejecutar el siguiente comando para verificar el estado de la aplicación cada vez.

estado de pm2

Visite localhost: 300 para ver la aplicación.

Ahora, si su aplicación falla debido a algún problema, PM2 la reiniciará automáticamente. Para detener la aplicación, puede ejecutar el siguiente comando.

parada pm2 O

Para detener todos los procesos a la vez, ejecute el siguiente comando.

pm2 detener todo

Para detener el propio PM2, ejecute el siguiente comando.

pm2 matar

Para monitorear el proceso en vivo, ejecute el siguiente comando.

pm2 monit

Este feed se actualizará en vivo a medida que su aplicación siga ejecutándose y utilizándose.

Integrando PM2 con Keymetrics

Keymetrics es una plataforma web para monitorear su aplicación usando PM2. Acabamos de echar un vistazo arriba sobre el comando monitor en PM2. ¿Qué tal tener esa información en vivo en su navegador? Bastante asombroso para mi. Realice el pago de las métricas clave y regístrese para obtener una nueva cuenta.

Una vez que se registre, cree un nuevo depósito .

Después de esto, Keymetrics le proporcionará la URL mediante la cual puede vincular su aplicación a Keymetrics.

Simplemente copie el comando y péguelo en su terminal.

Esto es todo, en un segundo puede ver la actualización en vivo de su aplicación en su navegador.

Keymetrics proporciona varias funciones y opciones de administración que puede usar para realizar el monitoreo de Nodejs. Echemos un vistazo a algunos de ellos.

Uso de CPU y memoria

En el panel principal, puede ver y visualizar la cantidad de memoria y CPU que consume su aplicación. Estos datos también están en vivo y también puede ver el gráfico comparativo.

Informes de excepciones

Esta es una de las partes más geniales que personalmente me gusta más. En caso de que su aplicación falle debido a alguna excepción, PM2 lo informará a keymetrics y keymetrics enviará inmediatamente un correo electrónico a su cuenta y mostrará el detalle de la excepción en el panel de control.

Para replicarlo, pongamos alguna excepción en nuestro código. Por alguna razón, lanzar una excepción no funciona, así que voy a poner un error de sintaxis. En nuestro código de ruta, coloque una coma adicional como esta.

enrutador. get ( ‘/’ ,, function ( req , res ) {

    res.
send ( “Hola mundo” ) ;
} ) ;

Ahora reinicie la aplicación usando el siguiente comando.

pm2 reiniciar app.js

Acceda a la ruta visitando localhost: 3000 y debería recibir un correo electrónico inmediatamente como este.

También puede ver la excepción en el tablero.

Aparte del error de sintaxis, también detecta excepciones que son dinámicas, como el tamaño de la pila de llamadas excedido, lo que descubrimos en una aplicación diferente.

Supervisión de eventos personalizados

Aparte de la excepción, también puede registrarse para eventos personalizados como “10000 usuarios registrados” o cualquier cosa adecuada para su aplicación. Debe instalar el complemento para pmx llamado para emitir un evento personalizado. Instálelo usando el siguiente comando.

npm install –save pmx

Luego, solicítelo en su código y emita los eventos como este.

var pmx = require ( ‘pmx’ ) ;


pmx.
emit ( “Nombre del evento” , “detalle del evento, también es compatible con JSON” ) ;

Envolviendolo

PM2 y Keymetrics juntos son una gran herramienta para el monitoreo de Nodejs en el servidor de producción. Aparte del hecho de que mantiene viva su aplicación, también sigue buscando excepciones y memoria, uso de CPU. También puede monitorear los registros en su navegador y también puede reiniciar su aplicación.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.