El Inspector BA. Esto no es una herramienta de observabilidad, sino una herramienta de desarrollo que te ayuda a monitorear lo que está sucediendo en tu aplicación.
Hace algunos años, Chrome DevTools se integró directamente en BA, ampliando sus capacidades para incluir aplicaciones más nuevas.
Hay varias formas de comenzar. Una es usando la bandera inspect, como podemos ver aquí, que iniciará el inspector. Luego puedes pasar un host y un puerto en los que deseas escuchar, tal como aquí. Y si no se pasan parámetros, se conectará al puerto 127 de forma predeterminada, como podemos ver aquí. Otra forma útil es cuando se realiza un desarrollo local utilizando la bandera inspect break, esta bandera. Esta tiene las mismas opciones para hosts y puertos que la bandera inspect, pero también coloca un punto de interrupción antes de que comience el código del usuario. Así que puedes hacer cualquier tipo de configuración que prefieras sin tener que intentar capturar puntos de interrupción en tu código en tiempo de ejecución.
Ahora, veamos una pequeña demostración. Si creamos esta línea de código aquí, solo un rechazo de promesa, un nuevo error, un error muy genial. Y luego si simplemente hacemos node con la bandera inspect break y el nombre del archivo, podemos ver que Booker está escuchando WS, y luego tenemos una URL de WebSocket. WebSocket permite abrir una sesión de comunicación interactiva bidireccional entre tus usuarios, navegadores y servidores. También podemos ver un mensaje aquí que nos dirige a la documentación de Node.js para que entendamos qué está sucediendo allí y si tenemos alguna pregunta, podemos ir allí. Luego, si vamos a Chrome inspect, esto nos dirigirá a un enlace aquí, enlace de Node.js y si abrimos ese enlace, nos mostrará una ventana emergente para depurar tu sesión de Node.js. Ahora, devtools está conectado a tu Node.js y te proporciona acceso a todas las características de devtools de Chrome que utilizaste, lo que te permite editar páginas sobre la marcha, acceder a mapas de origen, edición en vivo, evaluación de consola, muestra en el perfilador de JavaScript con gráfico de marcos, capturas de heap, pilas asíncronas para promesas nativas y otros.
Sin embargo, los inspectores de VA nunca deben ser utilizados en producción porque las acciones de devtools mantienen eventos. Esto es aceptable en desarrollo, pero no es adecuado para entornos de producción. Para entornos de producción, veremos más adelante cuál es la mejor opción. Pero hay algunos problemas con las cosas que Node.js ya proporciona para la observabilidad, como el perfilado, los ganchos de rendimiento y otros, es que te dice que hay un problema pero no te dice dónde encontrarlo. Además, a veces no es fácil de implementar. No te brinda suficiente información o no se presenta de una manera fácil, como gráficos o una métrica de rendimiento central que proporcionan las herramientas estándar. Además, tiene una sobrecarga significativa. Generalmente, no es viable en producción y solo proporciona sobrecarga de datos, lo que significa que hay una gran cantidad de datos y se requiere experiencia para separar la señal y los datos significativos del ruido.
Pero hay algunas ventajas porque hay herramientas excelentes y tienen una amplia información y conocimiento. Ahora, veremos algunas herramientas externas para la observabilidad de Node.js. Primero está la biblioteca blocked. El paquete npm blocked es un ejemplo conciso de cómo usar temporizadores para la observabilidad. Te ayuda a verificar si el bucle está bloqueado.
Comments