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.
This talk has been presented at Node Congress 2023, check out the latest edition of this JavaScript Conference.
FAQ
InfluxDB es una base de datos de series de tiempo totalmente de código abierto utilizada para el monitoreo del servidor, entre otras aplicaciones. Permite la recopilación, transformación y almacenamiento de datos en tiempo real.
Para monitorear un servidor Node.js con InfluxDB, puedes instalar una plantilla de monitoreo que facilite la visualización del uso de CPU, memoria y otros recursos del servidor, mostrando los datos en un panel de control.
Además de InfluxDB, la plataforma incluye Telegraf, que es un agente de recolección de datos, y varias bibliotecas de cliente, como la biblioteca de cliente JavaScript/Node.js para la interacción programática con la base de datos.
Telegraph es un plugin de InfluxDB que actúa como un colector de datos. Se configura mediante un archivo YAML y puede integrarse con más de 300 complementos de entrada, simplificando la recolección de datos sin necesidad de escribir código.
Puedes comenzar usando la biblioteca de cliente de JavaScript para InfluxDB instalándola a través de NPM o Yarn, configurando la autenticación y utilizando las funciones de la API para leer, escribir y eliminar datos.
Las plantillas de community en InfluxDB son configuraciones predefinidas que los usuarios pueden instalar para monitorear específicamente ciertos sistemas o aplicaciones, como Node.js. Estas plantillas facilitan la configuración inicial y la visualización de datos.
Sí, InfluxDB puede integrarse con Grafana utilizando un complemento de salida de Telegraph, lo que permite una configuración fácil y una visualización avanzada de los datos a través de dashboards personalizables en Grafana.
InfluxDB permite la visualización de datos en tiempo real a través de su interfaz de usuario y la integración con herramientas externas como Grafana. Ofrece funcionalidades para crear dashboards, gráficos y alertas basadas en los datos recopilados.
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.
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.
The talk discusses the importance of supply chain security in the open source ecosystem, highlighting the risks of relying on open source code without proper code review. It explores the trend of supply chain attacks and the need for a new approach to detect and block malicious dependencies. The talk also introduces Socket, a tool that assesses the security of packages and provides automation and analysis to protect against malware and supply chain attacks. It emphasizes the need to prioritize security in software development and offers insights into potential solutions such as realms and Deno's command line flags.
There is a need for a standard library of APIs for JavaScript runtimes, as there are currently multiple ways to perform fundamental tasks like base64 encoding. JavaScript runtimes have historically lacked a standard library, causing friction and difficulty for developers. The idea of a small core has both benefits and drawbacks, with some runtimes abusing it to limit innovation. There is a misalignment between Node and web browsers in terms of functionality and API standards. The proposal is to involve browser developers in conversations about API standardization and to create a common standard library for JavaScript runtimes.
ESM Loaders enhance module loading in Node.js by resolving URLs and reading files from the disk. Module loaders can override modules and change how they are found. Enhancing the loading phase involves loading directly from HTTP and loading TypeScript code without building it. The loader in the module URL handles URL resolution and uses fetch to fetch the source code. Loaders can be chained together to load from different sources, transform source code, and resolve URLs differently. The future of module loading enhancements is promising and simple to use.
This talk covers various techniques for getting diagnostics information out of Node.js, including debugging with environment variables, handling warnings and deprecations, tracing uncaught exceptions and process exit, using the v8 inspector and dev tools, and generating diagnostic reports. The speaker also mentions areas for improvement in Node.js diagnostics and provides resources for learning and contributing. Additionally, the responsibilities of the Technical Steering Committee in the TS community are discussed.
Deno aims to provide Node.js compatibility to make migration smoother and easier. While Deno can run apps and libraries offered for Node.js, not all are supported yet. There are trade-offs to consider, such as incompatible APIs and a less ideal developer experience. Deno is working on improving compatibility and the transition process. Efforts include porting Node.js modules, exploring a superset approach, and transparent package installation from npm.
Today's Talk is about logging with Pino, one of the fastest loggers for Node.js. Pino's speed and performance are achieved by avoiding expensive logging and optimizing event loop processing. It offers advanced features like async mode and distributed logging. The use of Worker Threads and Threadstream allows for efficient data processing. Pino.Transport enables log processing in a worker thread with various options for log destinations. The Talk concludes with a demonstration of logging output and an invitation to reach out for job opportunities.
¿Alguna vez has tenido dificultades para diseñar y estructurar tus aplicaciones Node.js? Construir aplicaciones que estén bien organizadas, sean probables y extensibles no siempre es fácil. A menudo puede resultar ser mucho más complicado de lo que esperas. En este evento en vivo, Matteo te mostrará cómo construye aplicaciones Node.js desde cero. Aprenderás cómo aborda el diseño de aplicaciones y las filosofías que aplica para crear aplicaciones modulares, mantenibles y efectivas.
Platformatic te permite desarrollar rápidamente APIs GraphQL y REST con un esfuerzo mínimo. La mejor parte es que también te permite aprovechar todo el potencial de Node.js y Fastify cuando lo necesites. Puedes personalizar completamente una aplicación de Platformatic escribiendo tus propias características y complementos adicionales. En el masterclass, cubriremos tanto nuestros módulos de código abierto como nuestra oferta en la nube:- Platformatic OSS (open-source software) — Herramientas y bibliotecas para construir rápidamente aplicaciones robustas con Node.js (https://oss.platformatic.dev/).- Platformatic Cloud (actualmente en beta) — Nuestra plataforma de alojamiento que incluye características como aplicaciones de vista previa, métricas integradas e integración con tu flujo de Git (https://platformatic.dev/). En este masterclass aprenderás cómo desarrollar APIs con Fastify y desplegarlas en la nube de Platformatic.
Construyendo un Servidor Web Hiper Rápido con Deno
WorkshopFree
2 authors
Deno 1.9 introdujo una nueva API de servidor web que aprovecha Hyper, una implementación rápida y correcta de HTTP para Rust. El uso de esta API en lugar de la implementación std/http aumenta el rendimiento y proporciona soporte para HTTP2. En este masterclass, aprende cómo crear un servidor web utilizando Hyper en el fondo y mejorar el rendimiento de tus aplicaciones web.
La autenticación sin contraseña puede parecer compleja, pero es fácil de agregar a cualquier aplicación utilizando la herramienta adecuada. Mejoraremos una aplicación JS de pila completa (backend de Node.JS + frontend de React) para autenticar usuarios con OAuth (inicio de sesión social) y contraseñas de un solo uso (correo electrónico), incluyendo:- Autenticación de usuario - Administrar interacciones de usuario, devolver JWT de sesión / actualización- Gestión y validación de sesiones - Almacenar la sesión para solicitudes de cliente posteriores, validar / actualizar sesiones Al final del masterclass, también tocaremos otro enfoque para la autenticación de código utilizando Flujos Descope en el frontend (flujos de arrastrar y soltar), manteniendo solo la validación de sesión en el backend. Con esto, también mostraremos lo fácil que es habilitar la biometría y otros métodos de autenticación sin contraseña. Tabla de contenidos- Una breve introducción a los conceptos básicos de autenticación- Codificación- Por qué importa la autenticación sin contraseña Requisitos previos- IDE de tu elección- Node 18 o superior
Cómo construir una aplicación GraphQL fullstack (Postgres + NestJs + React) en el menor tiempo posible. Todos los comienzos son difíciles. Incluso más difícil que elegir la tecnología es desarrollar una arquitectura adecuada. Especialmente cuando se trata de GraphQL. En este masterclass, obtendrás una variedad de mejores prácticas que normalmente tendrías que trabajar en varios proyectos, todo en solo tres horas. Siempre has querido participar en un hackathon para poner algo en funcionamiento en el menor tiempo posible, entonces participa activamente en este masterclass y únete a los procesos de pensamiento del instructor.
Node.js test runner es moderno, rápido y no requiere bibliotecas adicionales, pero entenderlo y usarlo bien puede ser complicado. Aprenderás a utilizar Node.js test runner a su máximo potencial. Te mostraremos cómo se compara con otras herramientas, cómo configurarlo y cómo ejecutar tus pruebas de manera efectiva. Durante la masterclass, haremos ejercicios para ayudarte a sentirte cómodo con el filtrado, el uso de afirmaciones nativas, la ejecución de pruebas en paralelo, el uso de CLI y más. También hablaremos sobre trabajar con TypeScript, hacer informes personalizados y la cobertura de código.
Comments