La observabilidad importa: Mejorando el rendimiento de nuestra aplicación Node con OpenTelemetry

Rate this content
Bookmark

¿Alguna vez has considerado que cuando nos encontramos con términos como observabilidad y confiabilidad, nuestro instinto inicial suele atribuirlos únicamente a preocupaciones de SRE? Sin embargo, al examinar más de cerca, uno puede darse cuenta de que implementar la observabilidad en realidad está más alineado con el dominio de los desarrolladores. Después de todo, los desarrolladores son quienes implementan directamente la lógica real en nuestro código existente, ¿y quién mejor para entender y depurar su código que los propios desarrolladores? A través de esta sesión, enfatizaremos en comprender la importancia de la observabilidad específicamente desde la perspectiva de un desarrollador. Exploraremos algunas mejores prácticas que nos ayudarán a depurar eficazmente el rendimiento de nuestra aplicación Node y cómo la inclusión de frameworks de código abierto como OpenTelemetry podría ser beneficiosa para nosotros.

This talk has been presented at Node Congress 2024, check out the latest edition of this JavaScript Conference.

Yash Verma
Yash Verma
7 min
04 Apr, 2024

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Yash Rajavarma presenta la observabilidad y explica su importancia para los desarrolladores. Discute cómo OpenTelemetry puede potenciar las aplicaciones Node.js al proporcionar una instrumentación y gestión sencillas de los datos de telemetría. OpenTelemetry simplifica la implementación de la observabilidad y está diseñado para beneficiar a los desarrolladores.

1. Introducción a la Observabilidad y OpenTelemetry

Short description:

En esta parte, Yash Rajavarma se presenta a sí mismo y su pasión por la observabilidad. Explica la importancia de la observabilidad para los desarrolladores y cómo OpenTelemetry puede potenciar una aplicación Node.js. OpenTelemetry es un marco que permite la instrumentación y gestión sencilla de datos de telemetría, incluyendo trazas, métricas y registros. Proporciona instrumentación automática y admite varios formatos para exportar datos. OpenTelemetry simplifica el proceso de implementación de la observabilidad y está diseñado para beneficiar a los desarrolladores.

Hola a todos, soy Yash Rajavarma. Trabajo como investigador informático en la Universidad de Calgary, donde principalmente trabajo con sistemas distribuidos y estoy muy apasionado por el campo de la observabilidad. En los últimos meses, he estado involucrado en un proyecto, se llama OpenTelemetry, y en esta charla hablaré sobre Node.js y OpenTelemetry. Así que empecemos. En esta charla responderemos dos preguntas. La primera es, ¿por qué es importante la observabilidad para un desarrollador y cómo podemos potenciar una aplicación node con OpenTelemetry? Para responder a la primera pregunta, tendremos que retroceder en el tiempo y comprender que la evolución de nuestro sistema desde una perspectiva muy amplia, podemos decir que a medida que avanzamos en el tiempo, nuestra aplicación o sistema tiende a volverse cada vez más distribuido en la naturaleza, lo que resulta en esto. Este podría ser un ejemplo de cualquier aplicación moderna. Digamos, por ejemplo, una aplicación de comercio electrónico, donde un solo microservicio interactúa directa o indirectamente con múltiples microservicios dentro de una aplicación. Imagina que de repente algunos microservicios dejan de funcionar o imagina que hay una mayor latencia dentro de los microservicios, ya sabes, eso definitivamente no se parece a una mejor experiencia de usuario. Así que, a medida que avanzamos y, ya sabes, soy un gran fan de Marvel, hay una línea, con grandes sistemas distribuidos viene la gran responsabilidad de gestionarlos. Pero no te preocupes, la observabilidad está aquí para, ya sabes, encargarse del día. Es la capacidad de comprender el estado interno de nuestro sistema examinando su salida donde se encuentran los registros, las métricas y las trazas. Ahora podemos observar todo, ya sabes, y todo puede estar yendo bien como se esperaba, porque podemos observar todo el sistema y depurar eficientemente el rendimiento de nuestra aplicación identificando posibles cuellos de botella. Pero ¿qué está mal, ya sabes, es el problema. Aquí es donde las cosas comienzan a complicarse aún más y con eso me refiero, y con eso me refiero a que cuando miramos desde una perspectiva muy general de cualquier flujo de trabajo de observabilidad, ya sabes, el primer paso en el proceso es llamado instrumentación, ya sabes, es el proceso mediante el cual podemos realizar ciertos cambios en nuestro código fuente para que nuestra aplicación pueda emitir los datos de telemetría . El siguiente es el receptor, ya sabes, es muy simple. Recibe los datos que se capturan del código fuente. Luego viene el procesador, que generalmente usamos para filtrar o cambiar datos específicos según nuestros casos de uso. Y luego viene el exportador, que se utiliza para exportar los datos ¿A dónde? Al backend de observabilidad, ya sabes, desde una visión general muy amplia. Vemos que el primer paso, la instrumentación se alinea específicamente con el dominio del desarrollador y aquí está la razón. Porque nosotros, los desarrolladores, somos responsables de instrumentar el código para que pueda emitir datos de telemetría. Pero cada herramienta de observabilidad tiene su propio conjunto específico de reglas a las que se debe adherir durante todo el proceso. Si en el futuro decidimos salir del ecosistema, la impresión de registros se convierte en una preocupación importante. Y se convierte en tarea del desarrollador volver a instrumentar todo el código con aproximadamente, ya sabes, un 40% de código similar para un código base si queremos migrar a otras herramientas de observabilidad. Por lo tanto, implementar la observabilidad dentro de la aplicación es más un problema del desarrollador porque nosotros, los desarrolladores, tenemos que volver a instrumentar todo la aplicación una vez más. Ingresa OpenTelemetry. El salvador. Es un framework diseñado para crear y gestionar datos de telemetría, incluyendo trazas, métricas y registros de manera agnóstica al proveedor y a la herramienta. Proporciona instrumentación automática donde casi no se requieren cambios en el código y también viene con instrumentación manual para que si necesitamos que una parte específica emita los datos de telemetría, podemos usar la instrumentación manual en ese caso. Esta es una descripción típica de un recolector de OpenTelemetry, que se utiliza para, ya sabes, recibir, procesar y exportar los datos a varios destinos, para que, ya sabes, puedas recibir datos en múltiples formatos como Jager, Prometheus, ya sabes, y el protocolo de OpenTelemetry es el predeterminado, ya sabes, el lenguaje que se utiliza para, ya sabes, transferir datos de la aplicación al backend. Ahora, comenzar con OpenTelemetry Node.js es muy sencillo. Si eres un principiante, te diría que puedes comenzar con la instrumentación automática. Es muy sencillo. Solo tienes que seguir estos pasos y puedes consultar, ya sabes, el enlace a continuación. Comenzarás a entender en ese caso también. Entonces, OpenTelemetry no es solo para el software. Es para las personas. Es para los desarrolladores como nosotros.

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

Registro Multihilo con Pino
JSNation Live 2021JSNation Live 2021
19 min
Registro Multihilo con Pino
Top Content
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.
Diseño Dirigido por Dominio con Aplicaciones Vue
Vue.js London 2023Vue.js London 2023
14 min
Diseño Dirigido por Dominio con Aplicaciones Vue
Top Content
Welcome to this talk on domain-driven design in Vue.js application. Today we are going to look into domain-driven design, its benefits and how it works with Vue.js domain-driven design versus the MVVM model. Vue.js thrives in domain-driven design, a design approach that models software to match a domain. DDD emphasizes understanding business logic and creating a domain that reflects the language and concepts. Integrating DDD in Vue.js offers benefits such as effective modeling of complex business domains, structured code reflecting domain logic, and easier onboarding and ownership.
Observabilidad para Microfrontends
DevOps.js Conf 2022DevOps.js Conf 2022
24 min
Observabilidad para Microfrontends
Microfrontends follow the microservices paradigm and observability is crucial for debugging runtime production issues. Error boundaries and tracking errors help identify and resolve issues. Automation of alerts improves incident response. Observability can help minimize the time it takes to understand and resolve production issues. Catching errors from the client and implementing boundaries can be done with tools like OpenTelemetry.
Observabilidad con diagnostics_channel y AsyncLocalStorage
Node Congress 2023Node Congress 2023
21 min
Observabilidad con diagnostics_channel y AsyncLocalStorage
Observability with Diagnostics Channel and async local storage allows for high-performance event tracking and propagation of values through calls, callbacks, and promise continuations. Tracing involves five events and separate channels for each event, capturing errors and return values. The span object in async local storage stores data about the current execution and is reported to the tracer when the end is triggered.
Cómo Grafana Utiliza React para Potenciar el Mundo de la Observabilidad
React Summit 2023React Summit 2023
7 min
Cómo Grafana Utiliza React para Potenciar el Mundo de la Observabilidad
Grafana uses React to power its open source platform, leveraging its vast ecosystem, improved performance, and community contributions. The choice of state management tool depends on the team's problem space. React Hooks have posed challenges but have also been a powerful tool for developers. The new Scenes library simplifies development and reduces the learning curve. Despite challenges, React remains a powerful tool for complex frontends, and Grafana will continue to use it.
Cómo compartir código entre una aplicación web de React y una aplicación móvil de React Native en Monorepo
React Summit 2022React Summit 2022
7 min
Cómo compartir código entre una aplicación web de React y una aplicación móvil de React Native en Monorepo
This presentation focuses on sharing code between React web and React native mobile apps. The speaker demonstrates how to achieve feature parity using a Monorepo with NX. They highlight the importance of sharing non-UI code, such as business logic and state management, through shared libraries. This approach allows the apps to focus on UI code while keeping non-UI code separate. For more details, refer to the speaker's blog post.

Workshops on related topic

Más allá del marco de trabajo: Distribuye tu aplicación de escritorio como un profesional
JSNation 2023JSNation 2023
109 min
Más allá del marco de trabajo: Distribuye tu aplicación de escritorio como un profesional
WorkshopFree
Jonas Kruckenberg
Jonas Kruckenberg
Construir aplicaciones utilizando tecnología web es genial; sin embargo, a veces puedes encontrar limitaciones sin importar qué marco de trabajo elijas. Durante esta masterclass, hablaremos sobre cómo elegir un marco de trabajo, problemas comunes y cómo superarlos.
Tabla de contenidos- Introducción: La historia entrelazada de la Web y las aplicaciones- ¡Tantas tecnologías de aplicaciones de escritorio! ¿Cómo elijo una?- Problemas comunes y cómo pensar en las aplicaciones- Conclusión
Accesibilidad web en aplicaciones JavaScript
React Summit 2022React Summit 2022
161 min
Accesibilidad web en aplicaciones JavaScript
Workshop
Sandrina Pereira
Sandrina Pereira
A menudo vemos que JavaScript daña la accesibilidad de un sitio web. En esta masterclass, aprenderás cómo evitar errores comunes y cómo utilizar JS a tu favor para mejorar la accesibilidad de tus aplicaciones web.
En esta masterclass exploraremos múltiples ejemplos del mundo real con problemas de accesibilidad, y aprenderás cómo hacer que funcionen para las personas que utilizan un mouse o un teclado. También aprenderás cómo se utilizan los lectores de pantalla, ¡y te mostraré que no hay razón para tener miedo de usar uno!
Únete a mí y déjame mostrarte cómo la accesibilidad no limita tus soluciones o habilidades. ¡Al contrario, las hace más inclusivas!
Al final, serás capaz de:- Comprender los principios de WCAG y cómo están organizados- Conocer casos comunes en los que JavaScript es esencial para la accesibilidad- Crear enlaces, botones y elementos conmutables inclusivos- Utilizar regiones en vivo para errores y estados de carga- Integrar la accesibilidad en el flujo de trabajo de tu equipo de inmediato- Darte cuenta de que crear sitios web accesibles no es tan difícil como parece ;)
Construye una Biblioteca Universal de Datos Reactiva con Starbeam
JSNation 2023JSNation 2023
66 min
Construye una Biblioteca Universal de Datos Reactiva con Starbeam
WorkshopFree
Yehuda Katz
Yehuda Katz
Esta sesión se centrará en los bloques de construcción universales de Starbeam. Usaremos Starbeam para construir una biblioteca de datos que funcione en múltiples frameworks.Escribiremos una biblioteca que almacene en caché y actualice datos, y admita relaciones, ordenación y filtrado.En lugar de obtener datos directamente, funcionará con datos obtenidos de forma asíncrona, incluidos los datos obtenidos después de la representación inicial. Los datos obtenidos y actualizados a través de web sockets también funcionarán bien.Todas estas características serán reactivas, por supuesto.Imagina que filtras tus datos por su título y luego actualizas el título de un registro para que coincida con el filtro: cualquier resultado que dependa de los datos filtrados se actualizará para reflejar el filtro actualizado.En 90 minutos, construirás una increíble biblioteca de datos reactiva y aprenderás una nueva herramienta poderosa para construir sistemas reactivos. La mejor parte: la biblioteca funciona en cualquier framework, incluso si no piensas en (o dependes de) ningún framework al construirla.
Tabla de contenidos- Almacenar un registro obtenido en una celda- Almacenar múltiples registros en un Mapa reactivo- La iteración reactiva es una iteración normal- El filtrado reactivo es un filtrado normal- Obtener más registros y actualizar el Mapa- La ordenación reactiva es una ordenación normal (¿se está volviendo un poco repetitivo?)- Modelar la invalidación de la caché como datos- Bonus: relaciones reactivas
Construye aplicaciones Web3 con React
React Summit 2022React Summit 2022
51 min
Construye aplicaciones Web3 con React
WorkshopFree
Shain Dholakiya
Shain Dholakiya
El masterclass está diseñado para ayudar a los desarrolladores Web2 a comenzar a construir para Web3 utilizando el Hyperverse. El Hyperverse es un mercado abierto de módulos inteligentes construidos por la comunidad, auditados y fáciles de descubrir. Nuestro objetivo es hacer que sea fácil para los desarrolladores de React construir aplicaciones Web3 sin escribir una sola línea de código de contrato inteligente. Piensa en 'npm para contratos inteligentes'.
Aprende más sobre el Hyperverse aquí.
Repasaremos todos los conceptos básicos de blockchain/crypto que necesitas saber para comenzar a construir en el Hyperverse, por lo que no necesitas tener ningún conocimiento previo sobre el espacio Web3. Solo necesitas tener experiencia en React.