Monitorización, Alertas y Visualización de la infraestructura del servidor Node.js con herramientas de código abierto

Rate this content
Bookmark

Cuando se monitoriza Node.js, se puede realizar un seguimiento del rendimiento y la disponibilidad de las aplicaciones mediante la identificación de cuellos de botella y la corrección de errores. Se pueden identificar problemas al analizar métricas como el uso de memoria del proceso, el tiempo de respuesta promedio, el uso de la CPU y más. Si se agrega la monitorización de los demás componentes de toda la pila, se obtendrá una visión integral de lo que podría estar afectando el rendimiento de la aplicación. En ese momento, se puede señalar el problema a nivel de código, lo que le permite localizar y solucionar esos problemas antes de que afecten negativamente la experiencia del usuario final. Esta charla se centrará en las herramientas disponibles en la base de datos de series temporales de código abierto InfluxDB. Se utilizará el complemento de código abierto node.js telegraf, para que pueda recopilar fácilmente métricas clave que le ayuden a obtener esa visión de su aplicación. Utilizaremos la Plantilla de Monitorización de Node.js, que está preconfigurada y equipada para monitorizar el rendimiento y la disponibilidad de las aplicaciones. Todos los ejemplos de código estarán en JavaScript, y también repasaremos la biblioteca de JavaScript para aquellos que trabajen en otros entornos de servidor JavaScript o que deseen exportar datos a sus herramientas de visualización preferidas.

31 min
14 Apr, 2023

Video Summary and Transcription

Esta charla presenta la monitorización, alertas y visualización de la infraestructura del servidor Node.js con herramientas de código abierto. Cubre el uso de bases de datos de series temporales para la monitorización del servidor y analiza la biblioteca de cliente JavaScript. La plataforma InfluxDB ofrece funciones para la adquisición de datos, visualización y programación de tareas. La charla incluye una demostración en vivo de un servidor Express falso y muestra el uso de plantillas de la comunidad y el panel de control de Node.js. También proporciona recursos para seguir aprendiendo y analiza opciones de visualización con Grafana.

Available in English

1. Introduction to Node.js Server Monitoring

Short description:

Voy a hablar sobre monitoreo, alertas y visualización de la infraestructura del servidor Node.js con herramientas de código abierto. Vamos a repasar rápidamente por qué quieres usar una base de datos de series de tiempo para el monitoreo del servidor. Vamos a hablar brevemente sobre la biblioteca de cliente JavaScript. Vamos a hablar sobre esta increíble plantilla de monitoreo que ofrecemos para el monitoreo del servidor Node.js que puedes instalar fácilmente y comenzar a usar. Voy a hacer una demostración en vivo donde mostraré todas estas piezas juntas. Finalmente, preguntas y respuestas y recursos adicionales.

Genial. Muchas gracias por la introducción. Debo admitir que el video me sorprendió un poco, no esperaba el ruido. Así que vamos a comenzar. Voy a hablar sobre monitoreo, alertas y visualización de tu infraestructura del servidor Node.js con herramientas de código abierto. Así que vamos a continuar. Ya tenemos una muy buena introducción. Pero si quieren agregarme en LinkedIn, si no quieren hacer preguntas aquí, lo cual no sé por qué no lo harían, porque todo es muy, cómo decirlo, pueden simplemente hacerlas sin tener que adjuntar su nombre. Sí, así que es realmente genial. Pero de lo contrario, pueden conectarse conmigo allí. Así que repasemos rápidamente la agenda de la sesión, porque solo tenemos unos 20 minutos aquí. Vamos a repasar rápidamente por qué quieres usar una base de datos de series de tiempo para el monitoreo del servidor. Vamos a hablar rápidamente sobre influx data y las herramientas de la plataforma que vienen incorporadas. Así que influx data es una base de datos de series de tiempo de influx DB totalmente de código abierto. También ofrecemos una cloud, pero solo vamos a hablar sobre la de código abierto durante esta charla. Vamos a hablar brevemente sobre la biblioteca de cliente JavaScript. Vamos a hablar sobre esta increíble plantilla de monitoreo que ofrecemos para el monitoreo del servidor Node.js que puedes instalar fácilmente y comenzar a usar. Voy a hacer una demostración en vivo donde mostraré todas estas piezas juntas. La razón por la que incluí algo de código en las diapositivas es porque de lo contrario podría olvidarme de mostrarlo y podría no tener mucho sentido. Pero vamos a intentar darle algo de tiempo extra a esa demostración. Y finalmente, preguntas y respuestas y recursos adicionales. Así que tendré una diapositiva final que tendrá un montón de enlaces que puedes fotografiar con tu teléfono. Porque sé que la gente tiende a tomar fotos durante toda la charla. Así que los pongo todos al final para que sea más conveniente para ustedes.

2. Time Series Applications and Server Monitoring

Short description:

Puedes pensar en tu Fitbit o Health Tracker. Eso es un dispositivo de series de tiempo que simplemente usas. Hoy en día, el monitoreo del servidor se ha vuelto mucho más importante. Hay muchas bases de datos entre las que puedes elegir, pero en su mayoría, vemos que otras bases de datos son buenas para otros tipos de datos. Vamos a repasar rápidamente esta visión general para tener una idea de algunas de las herramientas que podemos comenzar a usar. Dentro de la plataforma InfluxDB, tenemos Telegraf, que es completamente de código abierto. Hoy vamos a repasar la biblioteca de cliente JavaScript/Node.js.

hablar de cosas más físicas. Puedes pensar en tu Fitbit o Health Tracker. Eso es un dispositivo de series de tiempo que simplemente usas. Es probable que tu termostato en casa esté transmitiendo datos de series de tiempo en algún lugar, al igual que los paneles solares en tu casa. Hoy en día, en este mundo tenemos muchas más aplicaciones de series de tiempo, y también el monitoreo del servidor se ha vuelto mucho más importante. Dicen que el usuario promedio solo esperará alrededor de tres segundos para que se cargue un sitio web. Yo juro que solo espero dos. Esperamos que todo funcione perfectamente y no nos gusta cuando las cosas están caídas. Hoy en día, el monitoreo del servidor se ha vuelto mucho más importante.

Una cosa a tener en cuenta, que ya expliqué aquí, pero eso no significa que no puedas usar otras bases de datos para el monitoreo de tu servidor. Ese no es el caso en absoluto. Hay muchas bases de datos entre las que puedes elegir, pero en su mayoría, vemos que otras bases de datos son buenas para otros tipos de data. Estos son solo algunos ejemplos enumerados aquí. Como ustedes saben, probablemente estén usando Elastic si tienen alguna búsqueda en su sitio web. Podrían usar Mongo para documentos. Por supuesto, todos usamos SQL para, diría yo, alrededor del 90% de los data en la World Wide Web se almacena en, sí, una base de datos de tipo SQL. Todas estas bases de datos ofrecen alguna forma de código abierto también. Vamos a repasar rápidamente esta visión general para tener una idea de algunas de las herramientas que podemos comenzar a usar. Así es como termina viéndose la plataforma. Tenemos esas fuentes de data, que ya mencioné. Para nosotros, probablemente sean servicios en la nube. Y luego, dentro de la plataforma InfluxDB, tenemos Telegraf, que algunos de ustedes podrían haber usado antes en el pasado. No es necesariamente conocido que InfluxDB es el responsable de Telegraf. Es completamente de código abierto. No escribimos todo el código para ello. Muchas de las empresas o individuos escriben las bibliotecas ellos mismos. Pero nos encargamos de ello en el sentido de que no permitimos cargas de código malicioso y cosas por el estilo. La otra cosa es que tenemos nuestras bibliotecas de cliente. Esas son gestionadas por nosotros. Hoy vamos a repasar la biblioteca de cliente JavaScript/Node.js. Están combinadas dentro de la biblioteca de cliente, pero tienen funcionalidades ligeramente diferentes.

3. Platform Features and Data Acquisition

Short description:

La plataforma te permite recopilar, transformar, reducir la muestra, activar y alertar. Telegraph es un archivo YAML que se ejecuta con complementos de entrada y salida. Las bibliotecas de cliente funcionan como una API REST para leer, escribir, eliminar y analizar datos. Las visualizaciones se pueden realizar en formato de panel de control. El motor de tareas permite acciones programadas y la reducción de la muestra de puntos de datos.

Y finalmente, la plataforma real y lo que nos permite hacer, que son cosas como recopilación, transformación, de las que vamos a tocar brevemente, pero no profundizar demasiado, reducción de la muestra, activación y alerta. Ahora voy a mostrar algunas de estas, pero no vamos a tener suficiente tiempo para cubrir todas, pero hay toneladas de recursos en línea. Básicamente, la idea es que puedes iniciar el proyecto, almacenar tus data y luego construir sobre eso. Estos son los métodos actuales de adquisición de datos. Ya he hablado bastante sobre los dos principales. Y lo que voy a mencionar aquí es la diferencia entre Telegraph y la diferencia entre nuestras bibliotecas de cliente. Telegraph es básicamente un archivo YAML que se ejecuta. Tenemos más de 300 complementos de entrada, algunos complementos de salida diferentes, unos 20 de esos. Pero básicamente la razón por la que lo usas es porque no requiere código. Básicamente solo cambias los parámetros dentro del archivo YAML y luego puedes comenzar a cargar. Mostraré una visualización de algunos de estos en nuestra interfaz de usuario. Así tendrá un poco más de sentido. Y luego las bibliotecas de cliente , que puedes pensar en ellas casi como una API REST. Te permiten leer, escribir, eliminar y en general ver tus data. De eso hablaré un poco más porque, al menos para mi proyecto y para la mayoría de los proyectos de las personas, vas a usar las bibliotecas de cliente para obtener tus data. Podrías usar Telegraph. No hay razón para no hacerlo. Simplemente elegí usar la biblioteca de cliente porque fue lo más fácil para mi caso de uso. Estas son algunas de las cosas que puedes hacer. Así que puedes hacer visualizaciones, que mostraré en formato de panel de control. Puedes tomar acciones. Este motor de tareas aquí arriba es básicamente como un motor CronJob. Básicamente te permite decir algo como, cada hora del día, ejecuta este CronJob. Lo que puedes hacer son cosas como reducir la muestra, que cuando hablamos de reducir la muestra, nos referimos a la capacidad de tomar tus data y agregarla. Es algo así como que el día ha terminado. Tienes todos los datos de monitoreo del servidor, pero tu servidor ha enviado datos por cada segundo. Entonces tienes un montón de puntos de datos. Básicamente tienes millones de ellos. Pero la cosa es que el día fue bastante bueno. Fue un día tranquilo.

4. Server Monitoring and JavaScript Client Library

Short description:

Vas a ejecutar una tarea programada para obtener el promedio agregado de cada hora del día, lo que resulta en un paquete de datos más pequeño para almacenar. Puedes establecer umbrales para la carga de la CPU y recibir notificaciones a través de Slack, PagerDuty o un punto final HTTP. La biblioteca de cliente JavaScript consta de dos proyectos principales: el panel de control de Node.js y la biblioteca de cliente JS. La biblioteca de cliente mFluxDB permite consultar y escribir datos, mientras que la otra biblioteca se encarga de la gestión. Puedes elegir usar la interfaz de usuario de mFluxDB o la API de cliente para administrar buckets, autorizaciones y tareas. La instalación de todo es sencilla con NPM o Yarn.

No ocurrió nada realmente emocionante. Así que ahora vas a ejecutar esta tarea programada que dice: dame el promedio agregado de cada hora del día. En lugar de tener la carga de la CPU en este rango de segundos, te devolvería 24 puntos de datos del promedio a lo largo del día. Así que aún puedes ver tus momentos de alta y baja y demás, pero en general, es un paquete de datos mucho más pequeño para almacenar, lo cual siempre es bueno, porque cuanto más pequeño sea el paquete de datos que almacenes, en teoría, si fueras, ya sabes, un cliente grande que gasta dinero en almacenarlo, te ahorra dinero a largo plazo. Otra cosa que puedes ver aquí es la verificación y las notificaciones en la parte inferior. Sé que visualmente puede ser un poco difícil de ver. Lo mostraré en la interfaz de usuario y se verá un poco más claro, pero básicamente lo que estás haciendo aquí es decir: voy a establecer este umbral, si la carga de la CPU supera esta cantidad, adelante y envíame una notificación de Slack o una notificación de PagerDuty. Tienes algunas opciones diferentes aquí. También tenemos un punto final HTTP, así que realmente el Rolls Royce aquí con ese, puedes enviarlo a donde quieras. Por ejemplo, yo tengo uno en casa que monitoreo y me envío un mensaje de texto a través de Twilio cuando necesita ser regado, lo cual probablemente ignoro por supuesto, porque ¿por qué aprovecharlo realmente? Vamos a comenzar con la biblioteca de cliente JavaScript. Estos son los dos proyectos a seguir. Nuevamente, tendré estos enlaces disponibles al final. Esto es más por si las personas tenían sus computadoras portátiles y querían seguir. En el lado izquierdo, el más largo, ese es el panel de control de Node.js, del cual hablaré. Y luego el otro más cerca de mí es la biblioteca de cliente JS. Así que esa es solo la biblioteca básica. Esta es cómo realmente harías la plantilla de monitoreo del servidor. Entonces, como dije antes, hay dos bibliotecas principales. En mi caso, estoy usando específicamente la biblioteca de cliente mFluxDB porque eso es lo que me permite consultar y escribir mis datos en ella. La otra es para la gestión. Entonces, lo que eso significa es que si quisieras, no tendrías que iniciar la interfaz de usuario de mFluxDB en tu localhost. No tienes que hacer eso. Puedes hacer todos tus buckets, autorizaciones y tareas dentro de la API de cliente, pero yo no voy a usar eso. Voy a seguir adelante y usar la interfaz de usuario porque es un poco más fácil visualmente para que todos lo entendamos. Y es un poco más emocionante que simplemente hacerlo en la línea de comandos, solo pequeños fragmentos de línea de comandos. No es tan emocionante. Así es básicamente cómo se instala todo. Es muy sencillo. Tú

5. Writing Data and Retrieving with Flux Query

Short description:

Básicamente, una vez que lo hayas instalado, estás listo para comenzar. En cuanto a la API de escritura, estamos configurando la autenticación. La escritura es sencilla. Somos una base de datos sin esquema, por lo que puedes comenzar a escribir de inmediato. Estamos enviando un punto de temperatura con una etiqueta y un valor. Influx automáticamente le asignará una marca de tiempo. Para recuperar datos, puedes usar una consulta Flux.

puedes usar NPM. Puedes usar Yarn. Básicamente, una vez que lo hayas instalado, estás listo para comenzar. No voy a entrar demasiado en la instalación. Todos sabemos cómo instalar paquetes aquí.

En cuanto a la API de escritura, básicamente, lo que estamos haciendo aquí es configurar nuestra autenticación. Necesitas una URL, un token o una organización y un bucket, que en este caso es otra palabra para base de datos. Básicamente, es cómo nombras tu base de datos. Y mostraré cómo se ve esto en realidad. Y voy a ser una mala persona y simplemente mostrarte mis tokens y todo lo demás. Pero está bien, porque puedo ... Todo esto es mi localhost. De todos modos, no puedes hacer nada con mi token. Pero básicamente, te mostraré cómo configurar todo esto. Solo ten en cuenta que en el futuro, por favor, mantén esto en un archivo separado cuando ingreses estas variables de entorno. Como puedes ver aquí arriba, las tengo en un archivo MJS de entorno. Pero básicamente, configuras toda tu autenticación y finalmente puedes comenzar a escribir.

La escritura es bastante sencilla aquí. Como puedes ver, una cosa a tener en cuenta aquí es que somos una base de datos sin esquema, lo que significa que no tienes que decirnos qué esperas poner allí. Puedes comenzar a escribir de inmediato, lo cual es un poco diferente porque la mayoría de las personas tienen que decirle a su base de datos qué esperan recibir. Dicho esto, eso tiene una doble cara, la doble cara es que podrías enviar datos incorrectos y los escribiríamos. Tenemos una opción de esquema explícito, por lo que podrías cargar un esquema y decir: solo espero que se envíe este tipo de datos, no permitas nada que no coincida con el esquema. Pero una cosa a tener en cuenta aquí es que estamos enviando un punto, un punto de temperatura. Tenemos una etiqueta para ello, que en este caso, la etiqueta se llama ejemplo y es una cadena llamada write.ts. Y finalmente tenemos un valor, que en este caso es un número matemático aleatorio porque es solo un ejemplo de cómo hacer esto. Y básicamente, como no estamos enviando una marca de tiempo con esto, Influx automáticamente le asignará una marca de tiempo cuando llegue. Puedes poner una marca de tiempo, incluso puedes poner una marca de tiempo que sea teóricamente histórica, como algo de hace dos días si es necesario, obviamente algunas personas necesitan cargar datos antiguos, cosas de archivos CSV y demás. Entonces, en ese caso, tendrás que decirnos la marca de tiempo, pero de lo contrario, puedes comenzar a escribir datos y nosotros los adjuntaremos automáticamente.

No voy a entrar demasiado en esto porque no lo necesitamos para este proyecto. Pero si realmente quieres recuperar tus datos, puedes usar una consulta Flux para recuperarlos. La forma en que funciona Flux es bastante sencilla.

6. Consulta Básica y Recuperación de Datos

Short description:

Esta es una consulta básica que recupera un rango de datos de un bucket. Podemos filtrar los datos en función de medidas específicas, como la temperatura. Los datos recuperados se pueden transformar en filas para su uso en bibliotecas de visualización como Grafana o Plotly.js.

Esta es solo una consulta muy básica. Básicamente estamos diciendo desde mi bucket, dame un rango del último día. Podrías hacerlo, podrías no darle un rango. Podrías simplemente decir desde bucket, pero la mayoría de las personas tienden a darle algún tipo de rango razonable para obtener sus data. Y luego, en este caso, estamos filtrando la medida de temperatura. Entonces estamos diciendo que tal vez te di algunos valores de luz, te di algunos valores de humedad, pero ahora mismo solo quiero mis valores de temperatura para poder graficar solo esos en su lugar. Y lo que eso hace aquí abajo es convertirlos en filas. Y esas filas se pueden usar dentro de una biblioteca de visualización. También permitimos cosas como marcos de datos y otras formas de obtener tus data. Todo está diseñado para ser compatible con otras bibliotecas de trazado de código abierto.

7. Deleting Data and Monitoring Template

Short description:

Eliminar datos en una base de datos de series temporales se basa en un rango, no en un valor o ID. La plantilla de monitoreo utiliza la API de escritura para rastrear el uso de CPU del nodo, el uso de memoria y el uso de recursos. El panel de control le permite agregar nuevos gráficos, filtrar datos y monitorear el rendimiento de su servidor express.js. En el entorno de la nube, el enfoque estará en SQL en lugar de flux, con una integración de JavaScript SQL para vuelos.

Las bibliotecas, como Grafana o Plotly.js, etc. Y finalmente poder eliminar datos. Entonces, este no lo vamos a usar en nuestro ejemplo, pero solo quería que estén conscientes, eliminar en una base de datos de series temporales no se hace de la forma habitual. No se hace en función de un valor o un ID. Se basa en un rango. Eso también significa que si tienes datos de esto que quieres conservar, tenlo en cuenta. Si está dentro de ese rango, se eliminará. Así es como se eliminan los datos. Tal vez tuviste algunos intentos fallidos. Puedes decir, eliminar los últimos 30 minutos. Y eso será ese rango, ese inicio y fin. Entonces ahora voy a hablar sobre la plantilla de monitoreo. Así es como se configura. Y nuevamente, esto es principalmente para resaltar algunas cosas porque cuando comience la demostración, es posible que me olvide un poco de esto, pero voy a intentar no hacerlo. Básicamente, lo que vas a hacer es utilizar esa API de escritura para escribir puntos. Y básicamente cosas sobre el uso de CPU del nodo, el uso de memoria y el uso de recursos. Y esta es una función general que formatea ese punto para nosotros. Básicamente, está diciendo, toma la medida del punto, que en este caso, por ejemplo, era el uso de CPU del nodo y adelante, a partir de ese punto, crea un campo flotante con una clave y una clave de uso. Cuando realmente ponga esto y se lo muestre, tendrá mucho más sentido en un formato de tipo tabla. Pero básicamente, estas, esta línea de código aquí, que está disponible en GitHub todo este proyecto, por lo que no tienes que tratar de recordar todo esto. Pero estos son los componentes principales de cómo esto realmente va a funcionar. El otro que hacemos es que obtenemos el monitoreo del servidor express.js. Entonces, con este, estamos obteniendo cosas como qué tan bien respondió básicamente al ser llamado. ¿Todo llegó como esperábamos? ¿Fue el estado 200 o estaba obteniendo otros estados aleatorios? Esto obviamente puede ayudar si estás experimentando problemas donde ciertas páginas o archivos no se cargan como esperas. Esperemos que no sea el caso, pero en caso de que lo sea, esto te permitiría monitorearlo. Y esto es cómo termina viéndose el panel de control. Y nuevamente, cuando llegue a la demostración, esto será un poco más fácil de entender, pero básicamente aquí estamos diciendo que podemos agregar nuevos gráficos aquí en el agregar celda. Podemos filtrar. Entonces, para el mío, solo estoy haciendo mis servicios de nodo, centro de IoT. Estos están todos codificados en mi ejemplo y luego te mostraré cómo modificar estas celdas, pero básicamente es este pequeño widget aquí. Nuevamente, lo mostraré y lo ampliaré para que todos podamos entender cómo funciona todo esto juntos. Una nota rápida que quiero mencionar aquí es que si tienes la intención de llevar este proyecto fuera del código abierto y a la nube, debes tener en cuenta que en el entorno de la nube nos centraremos en SQL en lugar de flux, lo que significa que deberías usar una consulta SQL para recuperar tus datos y tendremos una integración de SQL de vuelo para este cambio.

8. Demo of Fake Express Server and Client Library

Short description:

Vamos a entrar en la demostración porque eso es honestamente lo más importante de todo y eso nos ayudará a entender un poco mejor. Este es mi pequeño servidor express falso, me está enviando algunos datos. Estoy usando la biblioteca del cliente para cargar esto. Estos son algunos de esos complementos de telegraf de los que estaba hablando.

Vamos a entrar en la demostración porque eso es honestamente lo más importante de todo y eso nos ayudará a entender un poco mejor. Así que por favor, disculpen mi código un poco desordenado aquí, pero básicamente este es mi pequeño servidor express falso, me está enviando algunos datos, no es muy emocionante porque no está alojando nada. Pero como pueden ver aquí arriba, tengo mi token, tengo mi ID de organización, mi bucket se llama Centro de IoT porque así lo descargué, y luego tengo una URL porque todo esto se está ejecutando en mi localhost.

Como pueden ver aquí, tengo esta API Get Right, le he dado etiquetas predeterminadas, lo que básicamente hace que el servicio sea automáticamente Centro de IoT, y el host actualmente es básicamente mi laptop, eso es lo que dirá dentro de la tabla. No es necesario tener estas etiquetas predeterminadas, pero el panel de control no funcionará sin ellas básicamente. Y a partir de ahí estoy usando ese código de punto del que hablamos antes, el que tiene el uso de CPU, el uso de memoria y el uso de recursos, y el que crea el valor de punto real. Así que todos estos están viviendo aquí juntos.

Para mi punto Express, estuve luchando demasiado con él, así que terminé haciendo algunos valores codificados en duro, pero aún así ayudará a transmitir el mensaje y podemos ver cómo termina viéndose. Y a partir de ahí, solo se está ejecutando en el puerto 3000. Este es un proyecto muy, muy básico. Esto es solo para ayudarnos a empezar realmente. Solo quiero mostrar cómo se ve esto. Así es como se ve dentro de localhost. Déjame ver si puedo hacer esto un poco más grande. Esto puede hacer que algunas cosas se vean un poco extrañas, pero vamos a intentarlo. Así que vamos a entrar en fuentes. Estoy usando, estoy usando la biblioteca del cliente para cargar esto obviamente. Hay otras bibliotecas de clientes que puedes elegir. Y si vienes aquí a este sitio web y esto está disponible, esto es de código abierto. Oh querido, esto no está funcionando. Está bien, probablemente no esté funcionando porque estamos en el código abierto, pero está disponible en línea. Déjame encontrarlo rápidamente. Normalmente te lleva aquí a InfluxDB client JS, que tiene ejemplos de cómo comenzar, así como todos los demás detalles. Es básicamente todo lo que ya he explicado. Pero normalmente también enlazaría a otros. Estos son algunos de esos complementos de telegraf de los que estaba hablando. Voy a hacer esto un poco más pequeño para que aparezcan. Obviamente tenemos muchos diferentes para muchas tecnologías diferentes en general. No todos están aquí en este

9. Using Community Templates and Node.js Dashboard

Short description:

Lleva algo de tiempo tener todo listo. Puedes ir a la lista completa si simplemente escribes Telegraph. Aquí es donde realmente obtienes tu plantilla de la comunidad. Tiene mucha variedad aquí. Así que vamos a bajar aquí a Node.js. Esto mostrará el tiempo de respuesta promedio, el máximo, el uso actual de la memoria y el uso de la CPU. Este panel de control se utilizó en uno de los servidores Node.js de nuestros clientes, por lo que tiene datos reales.

UI, porque a medida que las personas las agregan, no siempre las agregamos a la interfaz de usuario. Lleva algo de tiempo tener todo listo. Así que puedes ir a la lista completa si simplemente escribes Telegraph. Y sí, esto también funciona con otras bases de datos si prefieres usar una base de datos de series temporales diferente. Muchos de nuestros competidores aman Telegraph tanto como nosotros, y eso es lo que hace que sea tan hermoso en el código abierto. La otra cosa aquí. Así que tengo mi bucket IoT Center y podría crear otros buckets aquí, pero en realidad muy rápido. Lo siento, chicos, no quiero ser tan disperso, pero una cosa a tener en cuenta es que aquí es donde realmente obtienes tu community plantilla. Así que esta es una página llamada plantillas de community. Tiene mucha variedad aquí. Como puedes ver, esta, por ejemplo, es para Apex Legends, que es como un juego. Esto permite a las personas que juegan este juego obtener sus data y mostrarlo en un panel de control realmente bonito. Pero el que estamos usando, no es un juego. Veamos aquí. Oh, no. Oh, querido. Creo que acabo de bloquear mi ventana. Genial. No sería en vivo si no acabara de destruirlo todo. Lo siento, chicos. Volvamos. Afortunadamente se volverá a abrir. Genial. Así que vamos a bajar aquí a Node.js. Así que este es el que vamos a usar, y voy a acercarlo para que podamos ver un poco mejor. Como puedes ver, y también lo mostraré dentro de la interfaz de usuario. Estoy tratando de hacer esto lo más grande posible para que podamos leerlo. Esto mostrará el tiempo de respuesta promedio, el máximo, el uso actual de la memoria. Puedes ver algún uso de la CPU. Este panel de control se utilizó en uno de los servidores Node.js de nuestros clientes, por lo que tiene datos reales que no se ven tan tristes como los míos, que son principalmente una línea recta porque no está haciendo nada. Pero como puedes ver, realmente puedes comenzar solo con este gráfico aquí, y básicamente cómo haces la instalación es que subes y te

10. Node.js YAML File and Setup

Short description:

Coges este archivo YAML de Node.js, lo colocas e instalas. El proyecto viene con un archivo monitor.js para la configuración, que incluye el uso del proceso de escritura y las instrucciones de configuración. Puedes cambiar las etiquetas predeterminadas y agregar varios servidores Node. La función de monitoreo está incluida y hay un archivo .js de entorno para el token de URL y la organización.

Coges... Perdón, tengo que hacer esto un poco más pequeño. Coges este archivo YAML de Node.js, que básicamente lo colocas aquí, dices, por favor, busca mi plantilla y adelante e instálalo. Esto puede ser un poco extraño porque ya tengo esta plantilla instalada, pero vamos a seguir adelante. Muy bien. El que modifiqué hace una hora probablemente esté funcionando. Sí. Esto es lo que puedes ver desde mi propia laptop. Empecé a ejecutarlo hace unos 15 minutos aproximadamente. Probablemente cuando comencé por primera vez. Tuvo un pico extraño. Pero como puedes ver, puedo seguir adelante y hacer que esto se ejecute automáticamente porque seguí las instrucciones. Así que una cosa a tener en cuenta es que este proyecto viene con un archivo monitor.js, que básicamente es cómo configuré todo. Como dije antes, puedes ver este uso del proceso de escritura. Puedes ver la configuración. Como dije, esto espera las etiquetas predeterminadas de servicio y host. Puedes cambiar el nombre de estas, pero ten en cuenta que aquí es donde se busca. Ahí está mi MacBook. Ahí está IoT Center. Así que si tuviera varios servidores Node en ejecución, podría cambiar las etiquetas predeterminadas y cambiarlas según sea necesario, básicamente. Y este también agregó un bucle if. Aparentemente, eso es para una versión anterior de Node, básicamente. Y aquí abajo, lo que está haciendo es ejecutar la función de monitoreo aquí en una función que se puede exportar. Nuevamente, yo solo hice el mío de forma codificada porque este es solo un proyecto muy pequeño. Pero obviamente, esto es muy útil. Y luego una cosa a tener en cuenta. Lo hacen correctamente. Crean un archivo de entorno .js. Aquí es donde normalmente debes colocar tu token de URL y organización para que no los envíes accidentalmente a GitHub porque yo nunca lo he hecho. Soy

11. Setting Up Project and Token Creation

Short description:

Para poner en marcha este proyecto, configura el localhost en 8086. Para la creación del token, utiliza un token de acceso total para el desarrollo local, pero para una configuración más seria, crea un token personalizado con permisos específicos para el bucket.

responsable. Y aquí es donde encuentras tu URL. Para mí, es localhost 8086. Tu organización es el ID justo aquí después de 'org'. Puedes encontrarlo dentro de la interfaz de usuario, pero yo prefiero obtenerlo rápidamente desde aquí. Y luego, para la creación del token, simplemente ve aquí. Puedes crear un token de acceso total, que te da acceso total a todos tus buckets. Como estoy en mi localhost, no me importa, así que simplemente hice un acceso total. Pero si estás utilizando esto de manera más seria, asegúrate de crear un token personalizado y asignarle los permisos solo para los buckets que debe tener, para evitar tener permisos aleatorios en todas partes. Pero, sí. Básicamente, así es como lo obtienes

QnA

Resources, Q&A, and Visualization Options

Short description:

Y permítanme rápidamente volver a abrir mi presentación de Node para que podamos obtener los enlaces aquí. Estos son todos los recursos que ya he mencionado, pero muy rápido, el Slack. También puedes consultar nuestra documentación. También tenemos blogs. InfluxCBUniversity es una plataforma para aprender a tu propio ritmo. La biblioteca de cliente de JS y la plantilla de servidor de Node.js están disponibles. Ahora, pasemos a las preguntas y respuestas. ¿Qué otras opciones tenemos en cuanto a visualización? Otra cosa que podrías hacer es utilizar Grafana. Grafana tiene su propia versión de un panel de control más avanzado para monitorizar Node.js. Puedes usar esto en su lugar. Tenemos un complemento de salida de Telegraph directamente a Grafana. Y si quieres editar cosas, puedes usar el interruptor de configuración y agregar una nueva celda aquí.

poner en marcha este proyecto. Y permítanme rápidamente volver a abrir mi presentación de Node para que podamos obtener los enlaces aquí. Desplacémonos hacia abajo. Genial. Estos serán los recursos que dejaré aquí mientras pasamos a las preguntas y respuestas. Como dije antes, estos son todos los recursos que ya he mencionado, pero muy rápido, el Slack. Si tienes alguna pregunta adicional o estás comenzando tu propio proyecto, no dudes en unirte a nuestro Slack community. Somos muy activos. Los desarrolladores y los ingenieros están allí. También puedes consultar nuestra documentación. Está bastante bien escrita, si me permito decirlo. También tenemos blogs. Algunos de los proyectos que inspiraron a algunos de nuestros clientes provienen de esos blogs. Y finalmente, InfluxCBUniversity es una plataforma para aprender a tu propio ritmo, por lo que si quieres aprender un poco más pero hacerlo por tu cuenta, puedes utilizar ese servicio. Es completamente gratuito. Y luego, obviamente, la biblioteca de cliente de JS y la plantilla de servidor de Node.js, que puedes seguir al pie de la letra para configurar todo esto. Y ahora pasaré a las preguntas y respuestas. Muy bien. Gracias, Zoe. Genial. Sí, por favor, toma asiento. No estamos seguros de cuántas preguntas tendremos, pero al menos esta. ¿Qué otras opciones tenemos en cuanto a visualización? De hecho, ¿puedo quedarme cerca de mi portátil por un segundo? Otra cosa que podrías hacer es utilizar, por ejemplo, Grafana. Tenía la pestaña abierta, pero básicamente Grafana tiene su propia versión un poco más avanzada, voy a decir, de esto con un panel de control de monitorización de Node.js, un concepto muy similar. Y así puedes usar esto en su lugar. Tenemos un complemento de salida de Telegraph directamente a Grafana. Por lo que es muy, muy fácil de configurar. Y así puedes hacer eso. Y luego, lo otro que olvidé mostrar muy rápido es que si quieres editar cosas aquí, este es el interruptor del que estaba hablando. Así que puedes ir a la configuración y puedes usar para estos, todos están codificados en Flux porque así es como están

Customizando y Rearreglando Gráficos del Panel de Control

Short description:

Puedes personalizar y reorganizar los gráficos en el panel de control. Agregar, eliminar o moverlos según sea necesario. El diseño se puede ajustar para cumplir con tus criterios y necesidades.

están construidos. Pero si quisieras, podrías agregar una nueva celda aquí. Puedo ir al centro de IOT. Veamos nuestro uso de CPU. Haz clic en enviar y puedo obtener un nuevo gráfico y voy a nombrar esto como la nueva celda de Zoe porque ¿por qué no? Y luego puedo simplemente agregarlo. Y puedes moverlos porque obviamente ahora este se ve un poco extraño en la forma en que se ve. Así que podría reorganizarlo un poco mejor obviamente. Pero ahí vamos. Así que puedes cambiarlos como desees. Puedes eliminarlos o moverlos si no cumplen con tus criterios o necesidades. Pero esto definitivamente se puede ampliar también.

Diseño del Panel de Control e Integración con CloudWatch

Short description:

¿Cómo puedes definir el diseño de un panel de control? Veamos si tenemos integración con CloudWatch. Ofrecemos una amplia lista de métricas basadas en AWS. Consulta la documentación para obtener estadísticas de AWS CloudWatch y los requisitos de autenticación. El archivo YAML proporciona opciones de configuración, incluyendo la configuración de clave de acceso, clave secreta y token.

Mientras estamos aquí, tal vez otra pregunta. ¿Cómo puedes definir el diseño de un panel de control? ¿Si puedes mostrar eso tal vez? Con CloudWatch. Veamos. Vamos a Telegraph. Veamos qué tiene. Y veamos si tenemos CloudWatch porque creo que esa es una de las integraciones que ofrecemos. Y sería muy bueno ver eso. Así es. Creo que la lista completa está en algún lugar más abajo. Lo siento, chicos. Voy a retroceder un poco. En realidad, vamos a ir a la documentación porque están un poco. Hombre, ¿dónde está la lista completa? Debería haberla tenido en una pestaña. Pero de todos modos la habría eliminado. Sí. Así que aquí están todos nuestros complementos de salida, en algún lugar está nuestra lista. ¿Sabes qué, tengo una idea aún mejor? Voy a poner en Telegraph CloudWatch. Esa es una gran solución para mis problemas.

Otra pregunta, ¿hay un complemento de integración entre CloudWatch e Integrate? Sí. Parece que tenemos una integración aquí y te permite hacer uso de métricas estadísticas de monitoreo. Y como puedes ver, aquí tenemos una amplia lista que puedes usar para obtener métricas. La mayoría de estas están basadas en AWS. Así que puedes consultar la documentación aquí, que te mostrará las estadísticas de AWS CloudWatch. Y realmente, solo te llevará al GitHub, así que iremos allí. Y así, con esto, puedes ver toda la autenticación que necesitarás, las opciones de configuración globales. Y nuevamente, esto es cómo se ve ese archivo YAML. Como puedes ver, la mayoría está comentado, pero necesitarías, obviamente, comenzar a comentar algunos de estos. Creo que, por ejemplo, todos estos están doblemente comentados, así que se supone que son comentarios, pero deberás proporcionar cosas como la clave de acceso, la clave secreta, el token.

Diseño del Panel de Control y Personalización

Short description:

La documentación de Telegraph es bastante completa. Existe soporte para métricas, trazas y eventos en la versión en la nube, con planes de llevarlo al código abierto en el futuro. El diseño de los paneles de control se puede personalizar agregando, eliminando o reorganizando celdas. Puede ser un poco complicado mover las celdas, especialmente cuando hay muchas. La mayoría de los paneles de control consisten en gráficos largos y algunos elementos adicionales.

Y normalmente, estos son bastante buenos para indicarte cómo configurarlo todo. Este también tiene un ejemplo de cómo se configuraría normalmente para las personas. Y, obviamente, estos documentos son bastante extensos. Por ejemplo, este de CloudWatch, al menos, es muy extenso. La mayoría de los documentos de Telegraph son bastante completos, usaría esa palabra. Así que definitivamente échale un vistazo. Y lo siento, esto es lo que estaba buscando, el directorio completo de complementos. Entonces, aquí arriba puedes cambiar según lo que estés buscando, también podrías, obviamente, hacer una búsqueda de texto completo como yo hice.

Genial. Gracias por eso. Sí, hay otra pregunta. ¿Además de métricas, soportan algo más? En el código abierto, normalmente solo sugerimos métricas. En nuestra versióncloud en la nube, ahora tenemos cardinalidad ilimitada, por lo que admitimos métricas, trazas y eventos. Eventualmente estará disponible en el código abierto en los próximos meses. Simplemente aún no está disponible. De acuerdo. Bueno saberlo. Tal vez volvamos a eso más adelante, sí. ¿Cómo definimos el diseño de los paneles de control? Por diseño, supongo que se refieren a cómo está estructurado. Obviamente, este es un panel de control predefinido, viene preconfigurado con estas celdas y todo. Cuando haces la descarga aquí, no puedes hacer ninguna edición. Sin embargo, puedes editar desde aquí. Puedes reconfigurar estas celdas o, como hice yo, agregar nuevas celdas o eliminar algunas. En cuanto a mover cosas, suele ser como arrastrar y soltar. No voy a mentir, puede ser un poco complicado dependiendo de la cantidad de celdas que tengas. Y en este caso, como mi celda se creó justo en la parte superior, desplazó todo de manera extraña. La mayoría de los paneles de control que veo suelen tener muchos gráficos largos y algunos de estos en la parte superior. Podría mostrar algunos ejemplos adicionales en las plantillas de la community. Pero en su mayoría, con este, será tal como está. Y si deseas cambiarlo, tendrás que hacerlo desde adentro. Por ejemplo, este de Docker es lo que llamaría un poco más sencillo, donde todos los gráficos están en un bloque de cuatro por cuatro. Y, por ejemplo, aquí abajo, tienen dos gráficos más largos. Si tiene sentido.

Q&A: Soporte de TypeScript y Calcetines Geniales

Short description:

¿Agregarán soporte para TypeScript? No estoy seguro de esa pregunta, pero deberías poder usar nuestra biblioteca incluso si tienes TypeScript instalado. Muchas gracias. ¿Qué hay de los calcetines en la mesa? Traje algunos calcetines realmente geniales para que los agarren. Tienen un diseño de base de datos muy genial y son excelentes calcetines para hacer senderismo que se ajustan a la mayoría de los pies.

Absolutamente. Creo que tenemos una pregunta más. De hecho, están haciendo muchas preguntas. Entonces, sí, tal vez la primera. ¿Agregarán soporte para TypeScript? Por ejemplo, exportar tipos? No estoy seguro de esa pregunta. Entonces, con esa, la haría, desafortunadamente, en nuestro canal de Slack porque no estoy seguro de lo que están planeando nuestros amigos y desarrolladores. Según lo que entiendo, deberías poder usar nuestra biblioteca incluso si tienes TypeScript instalado. Debería ser relativamente compatible porque lo he usado en algunos proyectos de TypeScript sin problemas.

Bueno, muchas gracias. Nuevamente, tengo una última pregunta. ¿Qué hay de los calcetines en la mesa? Muy bien. Entonces, para todos los que están aquí en persona, traje algunos calcetines realmente geniales para que los agarren. Están aquí arriba en la mesa. Tenemos dos colores diferentes, pero tengo estos azules aquí. Mira esta increíble pequeña database en ellos. Estos son excelentes calcetines para hacer senderismo y se ajustan a la mayoría de los pies, como nos gusta decir. Genial. Muchas gracias nuevamente, Zoe.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Node Congress 2022Node Congress 2022
26 min
It's a Jungle Out There: What's Really Going on Inside Your Node_Modules Folder
Top Content
Do you know what’s really going on in your node_modules folder? Software supply chain attacks have exploded over the past 12 months and they’re only accelerating in 2022 and beyond. We’ll dive into examples of recent supply chain attacks and what concrete steps you can take to protect your team from this emerging threat.
You can check the slides for Feross' talk here.
Node Congress 2022Node Congress 2022
34 min
Out of the Box Node.js Diagnostics
In the early years of Node.js, diagnostics and debugging were considerable pain points. Modern versions of Node have improved considerably in these areas. Features like async stack traces, heap snapshots, and CPU profiling no longer require third party modules or modifications to application source code. This talk explores the various diagnostic features that have recently been built into Node.
You can check the slides for Colin's talk here. 
JSNation 2023JSNation 2023
22 min
ESM Loaders: Enhancing Module Loading in Node.js
Native ESM support for Node.js was a chance for the Node.js project to release official support for enhancing the module loading experience, to enable use cases such as on the fly transpilation, module stubbing, support for loading modules from HTTP, and monitoring.
While CommonJS has support for all this, it was never officially supported and was done by hacking into the Node.js runtime code. ESM has fixed all this. We will look at the architecture of ESM loading in Node.js, and discuss the loader API that supports enhancing it. We will also look into advanced features such as loader chaining and off thread execution.
JSNation Live 2021JSNation Live 2021
19 min
Multithreaded Logging with Pino
Top Content
Almost every developer thinks that adding one more log line would not decrease the performance of their server... until logging becomes the biggest bottleneck for their systems! We created one of the fastest JSON loggers for Node.js: pino. One of our key decisions was to remove all "transport" to another process (or infrastructure): it reduced both CPU and memory consumption, removing any bottleneck from logging. However, this created friction and lowered the developer experience of using Pino and in-process transports is the most asked feature our user.In the upcoming version 7, we will solve this problem and increase throughput at the same time: we are introducing pino.transport() to start a worker thread that you can use to transfer your logs safely to other destinations, without sacrificing neither performance nor the developer experience.

Workshops on related topic

Node Congress 2023Node Congress 2023
109 min
Node.js Masterclass
Workshop
Have you ever struggled with designing and structuring your Node.js applications? Building applications that are well organised, testable and extendable is not always easy. It can often turn out to be a lot more complicated than you expect it to be. In this live event Matteo will show you how he builds Node.js applications from scratch. You’ll learn how he approaches application design, and the philosophies that he applies to create modular, maintainable and effective applications.

Level: intermediate
JSNation 2023JSNation 2023
104 min
Build and Deploy a Backend With Fastify & Platformatic
WorkshopFree
Platformatic allows you to rapidly develop GraphQL and REST APIs with minimal effort. The best part is that it also allows you to unleash the full potential of Node.js and Fastify whenever you need to. You can fully customise a Platformatic application by writing your own additional features and plugins. In the workshop, we’ll cover both our Open Source modules and our Cloud offering:- Platformatic OSS (open-source software) — Tools and libraries for rapidly building robust applications with Node.js (https://oss.platformatic.dev/).- Platformatic Cloud (currently in beta) — Our hosting platform that includes features such as preview apps, built-in metrics and integration with your Git flow (https://platformatic.dev/). 
In this workshop you'll learn how to develop APIs with Fastify and deploy them to the Platformatic Cloud.
Node Congress 2023Node Congress 2023
63 min
0 to Auth in an Hour Using NodeJS SDK
WorkshopFree
Passwordless authentication may seem complex, but it is simple to add it to any app using the right tool.
We will enhance a full-stack JS application (Node.JS backend + React frontend) to authenticate users with OAuth (social login) and One Time Passwords (email), including:- User authentication - Managing user interactions, returning session / refresh JWTs- Session management and validation - Storing the session for subsequent client requests, validating / refreshing sessions
At the end of the workshop, we will also touch on another approach to code authentication using frontend Descope Flows (drag-and-drop workflows), while keeping only session validation in the backend. With this, we will also show how easy it is to enable biometrics and other passwordless authentication methods.
Table of contents- A quick intro to core authentication concepts- Coding- Why passwordless matters
Prerequisites- IDE for your choice- Node 18 or higher
JSNation Live 2021JSNation Live 2021
156 min
Building a Hyper Fast Web Server with Deno
WorkshopFree
Deno 1.9 introduced a new web server API that takes advantage of Hyper, a fast and correct HTTP implementation for Rust. Using this API instead of the std/http implementation increases performance and provides support for HTTP2. In this workshop, learn how to create a web server utilizing Hyper under the hood and boost the performance for your web apps.
React Summit 2022React Summit 2022
164 min
GraphQL - From Zero to Hero in 3 hours
Workshop
How to build a fullstack GraphQL application (Postgres + NestJs + React) in the shortest time possible.
All beginnings are hard. Even harder than choosing the technology is often developing a suitable architecture. Especially when it comes to GraphQL.
In this workshop, you will get a variety of best practices that you would normally have to work through over a number of projects - all in just three hours.
If you've always wanted to participate in a hackathon to get something up and running in the shortest amount of time - then take an active part in this workshop, and participate in the thought processes of the trainer.
TestJS Summit 2023TestJS Summit 2023
78 min
Mastering Node.js Test Runner
Workshop
Node.js test runner is modern, fast, and doesn't require additional libraries, but understanding and using it well can be tricky. You will learn how to use Node.js test runner to its full potential. We'll show you how it compares to other tools, how to set it up, and how to run your tests effectively. During the workshop, we'll do exercises to help you get comfortable with filtering, using native assertions, running tests in parallel, using CLI, and more. We'll also talk about working with TypeScript, making custom reports, and code coverage.