Geekflare recibe el apoyo de nuestra audiencia. Podemos ganar comisiones de afiliación de los enlaces de compra en este sitio.
En Desarrollo Última actualización: 15 de septiembre de 2023
Compartir en:
Escáner de seguridad de aplicaciones web Invicti - la única solución que ofrece verificación automática de vulnerabilidades con Proof-Based Scanning™.

¿Te has visto alguna vez en la tesitura de que se caiga una aplicación?

¿Le ha notificado su cliente la caída de los servicios?

Debe de ser una situación difícil. A lo largo de los años, NodeJS se ha convertido en un popularmente utilizado Marco JavaScript para el desarrollo rápido de microservicios y API. Con las cargas de trabajo que se ejecutan en NodeJS, resulta crucial disponer de la supervisión adecuada para las métricas esenciales.

Exploremos las siguientes herramientas de monitorización de Node.JS que le ayudarán a monitorizar el rendimiento de la aplicación y el servidor y otras métricas.

PM2

PM2 ha sido la herramienta más famosa utilizada por desarrolladores novatos y expertos para asegurar que sus aplicaciones estén siempre en vivo. PM2 se utiliza para ejecutar cargas de trabajo de producción en vivo y monitorizarlas desde CLI o interfaz web. Puedes instalarlo como un módulo NPM.

PM2 es una solución preparada para la empresa, que ofrece las siguientes funciones listas para usar.

  • Gestión de múltiples aplicaciones NodeJS en un único servidor
  • Aplicación y error gestión de registros
  • Integración de una interfaz web para supervisar el estado y las métricas de las aplicaciones
  • Auto-clustering para aplicaciones NodeJS
  • Recarga en caliente de la aplicación.
  • Soporte para guiones de arranque
  • Transmisión de logs a una interfaz web

Primeros pasos con PM2

Para instalar PM2, asegúrese de que dispone de MNP instalado. Para validar la instalación y la versión de NPM, utilice el siguiente comando.

npm --version

Este comando debería mostrarle la versión de NPM si está instalada.

Además, instale PM2 utilizando el siguiente comando:

npm install -g pm2

La bandera mundial -g instalará y hará que el módulo esté disponible globalmente como un comando. Para iniciar cualquier aplicación utilizando PM2, vaya a la carpeta que contiene el proyecto NodeJS y ejecute el siguiente comando:

pm2 start <start-filename> --name myapp

El comando anterior lanza una aplicación NodeJs utilizando el archivo especificado en el primer argumento. También nombra la aplicación con el nombre myapp. Al ejecutar la aplicación NodeJS utilizando pm2se asegura de que el servicio no se caiga y, si lo hace, intenta reiniciar automáticamente la aplicación.

Para activar la supervisión en directo en la interfaz web, debe registrarse en aquí. Una vez generadas sus claves, podrá ver las instrucciones para conectar PM2 en su servidor a la interfaz web.

Sematext

Sematext ofrece monitorización completa. Full-stack significa que tiene visibilidad completa de la disponibilidad y el rendimiento de su infraestructura y aplicaciones, métricas, registros, experiencia de usuario front-end, estado y rendimiento de sus API, certificados SSL, etc.

sematext-nodejs

Sematext tiene más de 100 integraciones, incluyendo NodeJS. Estas son algunas de ellas:

  • Servidores web - Nginx, Apache
  • Base de datos - MySQL, MariaDB, PostgreSQL, Redis
  • Contenedores - Kubernetes, Docker, Rancher
  • Otros idiomas - PHP, ScalaPython, Go, Java
  • AWS - EC2, ELB, S3, Aurora

Y mucho más...

Supervisión de NodeJS ayuda a supervisar la latencia, la tasa de solicitudes, la recolección de basura, las anomalías, los trabajadores, los eventos, el latido del corazón y mucho más. Puede visualizar los datos en un bonito panel ya preparado o crear uno personalizado si es necesario.

Reciba notificaciones cuando las cosas no vayan bien a través de Slack, WebHooks, PageDuty, MS Teams, etc. Sematext ofrece una solución integral de monitorización y análisis de logs. Puede comprobar los demo para experimentar la plataforma.

Mejor tiempo de actividad

Mejor tiempo de actividad es un moderno servicio de supervisión que combina la supervisión del tiempo de actividad, la gestión de incidencias y las páginas de estado en un único producto de bonito diseño.

better-uptime-nodejs-monitoring

La configuración dura 3 minutos. Después, recibirás una llamada, un correo electrónico o una alerta de Slack cada vez que tu aplicación Node.js no funcione correctamente o deje de funcionar por completo. Las principales características son:

  • HTTP(s), Ping, API, caducidad de SSL y TLD, comprobaciones de Cron jobs
  • Alertas de llamadas telefónicas ilimitadas
  • Fácil programación de las guardias
  • Capturas de pantalla y registros de errores de incidentes
  • Slack, Teams, Heroku, AWS y más de 100 integraciones más

Appmetrics

Appmetrics es un proyecto de código abierto gestionado y mantenido por IBM. El proyecto se centra en proporcionar las bases para recopilar excelentes métricas de aplicaciones repartidas en diversas actividades como la transacción de datos, la velocidad de la red, el rendimiento de las consultas a bases de datos, la utilización de la CPU y la memoria, la recolección de basura y otras.

Fusionándolo con un plugin como appmetrics-dash podría proporcionar una excelente interfaz web para supervisar sus aplicaciones.

Puede utilizar Appmetrics como middleware para construir sus aplicaciones de monitorización.

Raygun

Raygun es una plataforma para gestionar y monitorizar el rendimiento de aplicaciones para múltiples lenguajes de programación, incluido NodeJS. Te ayuda a depurar los problemas en tiempo real con registros de fallos, analizar el código de la aplicación y encontrar el punto de error correcto desde el propio código.

A continuación se enumeran algunas de sus características.

  • Proporciona informes de errores precisos y en tiempo real
  • Admite la notificación de errores en toda la pila
  • Control en tiempo real de las sesiones de usuario
  • Supervisión del rendimiento del servidor y detección de cuellos de botella en tiempo real

Merece la pena invertir tiempo y dinero en Raygun para aplicaciones de misión crítica. Proporciona información que puede traducirse en un gran retorno de la inversión.

Monitor de estado Express

Control de estado exprés es una herramienta de código abierto dedicada a la monitorización de ExpressJS. Es un hecho conocido que ExpressJS es el framework web más popular utilizado en NodeJS.

Como puede ver en la instantánea anterior, puede supervisar el tiempo de respuesta, la frecuencia de las solicitudes, el código de estado, la utilización de CPU/memoria y la carga media.

ClínicaJS

Médico ClinicJS

Clínica.js es una librería disponible para integrar con aplicaciones NodeJS para monitorizar y obtener parámetros críticos de rendimiento de la misma. Es una combinación de tres herramientas principales - Doctor, Bubbleprofy Llama. Cada una de estas herramientas se utiliza para el seguimiento de métricas diferentes.

Médico ClinicJS

  • Recopilar métricas de salud y heurísticas
  • Inyectar sondas en la aplicación automáticamente
  • Proporcionar una interfaz gráfica para ver el rendimiento de la aplicación y las métricas en tiempo real.
  • Generar recomendaciones para optimizar las aplicaciones

ClinicJS Bubbleprof

  • Trazar gráficos de burbujas que describan la ejecución interna de la aplicación
  • Ayuda a localizar los errores mostrando gráficos de ejecución de funciones
  • Recoge métricas mediante ganchos asíncronos
  • Proporciona información sobre la latencia entre llamadas a funciones

Llama ClinicJS 

  • Control dedicado de las métricas de la CPU
  • Interfaz gráfica para supervisar en directo el rendimiento de la CPU de la aplicación
  • Genera gráficos de llamas que ayudan a identificar los valores máximos alcanzados por las métricas.
  • Proporciona información sobre las actividades de su aplicación que consumen CPU

Disponemos de apoyo comercial si lo necesita para su negocio.

AppSignal

AppSignal es un producto comercial que ofrece autoinstrumentación a la llamada HTTP de Node.js, Express, Next.js y Postgress.

Para ponerlo en marcha, es necesario instalar un agente AppSignal ligero en el servidor, que recoge las métricas necesarias. En un nivel alto, hace lo siguiente.

  • Supervise el rendimiento: encuentre y corrija el código o la infraestructura que ralentizan la disponibilidad y el rendimiento de la aplicación.
  • Métricas: visualice lo que le importa en el cuadro de mandos.
  • Detectar anomalías: recibe notificaciones cuando las cosas no son como esperabas.
  • Monitor Server - no consiga otro software de monitorización de servidores. Usted obtiene todas las métricas estándar de recursos como CPU, Disco, Memoria, Red, etc.

Prometheus + Grafana

La idea es combinar dos potentes programas Prometheus y Grafana.

Prometheus tiene un cliente para Nodejs llamado prom-clientinstalado en el servidor NodeJS para recopilar las métricas. A continuación, puede instalar Grafana en el mismo servidor o de forma remota para extraer las métricas de Prometheus y visualizarlas.

Puede crear un panel de control Grafana desde cero en función de sus necesidades o aprovechar los dos siguientes.

Para ello es necesario conocer ambas herramientas. Si necesitas ayuda para aprender a utilizar Prometheus, echa un vistazo a esto Curso Udemy.

Conclusión

La monitorización es a menudo ignorada, pero resulta muy crítica para la disponibilidad de las aplicaciones. Teniendo en cuenta que el coste de desarrollo es un factor crucial, las herramientas que analizan el código, supervisan el rendimiento y proporcionan una conocimiento de los erroresson sin duda de gran valor. Ahorran tiempo y esfuerzo y le ayudan a cumplir los SLA ofreciendo una resolución más rápida al cliente.

  • Abhishek Kothari
    Autor
Gracias a nuestros patrocinadores
Más lecturas sobre desarrollo
Potencia tu negocio
Algunas de las herramientas y servicios que le ayudarán a hacer crecer su negocio.
  • Invicti utiliza el Proof-Based Scanning™ para verificar automáticamente las vulnerabilidades identificadas y generar resultados procesables en tan solo unas horas.
    Pruebe Invicti
  • Web scraping, proxy residencial, gestor de proxy, desbloqueador web, rastreador de motores de búsqueda, y todo lo que necesita para recopilar datos web.
    Pruebe Brightdata
  • Monday.com es un sistema operativo de trabajo todo en uno que te ayuda a gestionar proyectos, tareas, trabajo, ventas, CRM, operaciones, flujos de trabajo y mucho más.
    Prueba el lunes
  • Intruder es un escáner de vulnerabilidades en línea que encuentra puntos débiles de ciberseguridad en su infraestructura, para evitar costosas violaciones de datos.
    Prueba Intruder