Mejorando los Ecosistemas de React con Observabilidad: Un Profundo Análisis de React con OpenTelemetry

Rate this content
Bookmark

Esta charla te guiará a través de la integración de OpenTelemetry en entornos de React, haciendo hincapié en el Renderizado en el Lado del Servidor (SSR) y los innovadores Componentes de Servidor de React (RSC). Aprende cómo aprovechar el poder de los datos de telemetría, trazas, métricas y registros, para obtener una comprensión completa del comportamiento de tu aplicación y las interacciones de los usuarios.

This talk has been presented at React Summit 2024, check out the latest edition of this React Conference.

Jan Peer Stöcklmair
Jan Peer Stöcklmair
22 min
18 Jun, 2024

Comments

Sign in or register to post your comment.

Video Summary and Transcription

La charla discute la diferencia entre monitoreo y observabilidad, destacando el enfoque de OpenTelemetry en la generación y procesamiento de datos. Explora el concepto de trazas y IDs de span en el rastreo distribuido y la naturaleza experimental de OpenTelemetry en el navegador. La charla también aborda las complejidades de React con componentes de servidor y demuestra cómo el rastreo distribuido puede conectar trazas de diferentes servicios. Se explica el proceso de agregar OpenTelemetry a Next.js y analizar las trazas de la aplicación y del navegador, junto con la importancia de la propagación de contexto. La charla concluye con ideas sobre el análisis de llamadas fetch, errores y las limitaciones de almacenamiento de las trazas.

1. Introducción a la Observabilidad y OpenTelemetry

Short description:

Hola, soy Jan. Hoy voy a hablar sobre la diferencia entre monitoreo y observabilidad, y profundizar en OpenTelemetry y su rastreo distribuido. La observabilidad es la capacidad de comprender el estado interno del sistema mediante el análisis de los datos generados. OpenTelemetry se centra en generar y procesar datos, mientras que el almacenamiento y análisis son manejados por proveedores. OpenTelemetry también se enfoca en tres datos de telemetría principales: registros, métricas y trazas. Los registros consisten en nombres de campos como la marca de tiempo, ID de traza, ID de span y cuerpo. Las métricas muestran el uso de la CPU en un marco de tiempo específico.

Hola, soy Jan. ¿Alguna vez has tenido la situación en la que recibiste un ticket de error y decía que había una pantalla vacía en algún cliente, y tenías que depurar esto, pero no había forma de encontrar la causa raíz? Bueno, esto no debería ser así. Y por eso te mostraré cómo mejorar los ecosistemas de React con observabilidad y cómo OpenTelemetry te ayudará en ese camino.

Así que hoy voy a hablar sobre la diferencia entre monitoreo y observabilidad. También profundizaré en OpenTelemetry y su rastreo distribuido, y luego te mostraré una demostración rápida de cómo funcionan juntos.

Entonces, ¿cuál es ahora la diferencia entre monitoreo y observabilidad? Bueno, el monitoreo es el proceso de recopilar, analizar y utilizar la información para rastrear algún progreso, alcanzar objetivos o guiar decisiones de gestión. Así que realmente indica lo que está sucediendo. Solo imagina Google Analytics. Te muestra cuántos usuarios hay en esta página o cuántos usuarios abandonaron otra página. Y en base a esta información, puedes guiar algunas nuevas características. ¿Verdad? Así que realmente sabes qué está sucediendo. Por ejemplo, si hay un error, si hay un error que aparece, te muestra qué está sucediendo, pero realmente no te dice la causa raíz. Así que no te ayuda mucho.

Y por eso la observabilidad es muy importante. La observabilidad es la capacidad de comprender el estado interno del sistema mediante el análisis de los datos que genera, como registros, métricas y trazas. Así que te muestra por qué se comporta de esa manera. Y esto es muy importante. Tradicionalmente, hay cuatro problemas principales, generar los datos, procesarlos, almacenarlos y analizarlos. Por lo general, esto viene en una solución de extremo a extremo. Entonces, si quieres cambiar el mecanismo de almacenamiento o análisis, tienes que cambiar todo el proceso. OpenTelemetry lo sabe y en realidad solo se centra en los dos primeros problemas, generar y procesar los datos. El almacenamiento y análisis se harían en los proveedores, en los hombros de los proveedores. OpenTelemetry también se enfoca en tres datos de telemetría principales, registros, métricas y trazas.

Centrándonos en los registros en este momento, estos fueron los más importantes y los más difíciles de implementar, en realidad, porque había tantas implementaciones diferentes en todos los lenguajes y OpenTelemetry está haciendo una semántica consistente para todos los lenguajes. Cuando hablamos de registros en OpenTelemetry, en realidad nos referimos a registros de registro y un registro de registro consiste en estos nombres de campos como la marca de tiempo, un ID de traza, ID de span e incluso el cuerpo, que es la parte más importante. Hablaré más sobre los ID de traza y los ID de span en la sección de trazas. Las métricas son un poco diferentes. Las métricas básicamente te muestran cuánto, por ejemplo, sería el uso de la CPU en un marco de tiempo específico. Las métricas en OpenTelemetry también se llaman medidores e instrumentos, donde un instrumento sería un punto de datos en un momento específico.

2. Comprensión de Trazas e IDs de Span

Short description:

Entonces, ¿cuánta CPU está utilizando en este momento? Una traza es el recorrido del usuario de un evento específico, como una llamada a la API. Cada ID de traza consta de múltiples IDs de span, que representan diferentes llamadas de función. Los eventos de span son registros que ocurren en momentos específicos en el ID de span.

Entonces, ¿cuánta CPU está utilizando en este momento? Un medidor es algo así como un grupo, por lo que agrupa múltiples instrumentos y, por supuesto, puedes tener varios agrupadores. Las trazas son, nuevamente, un poco diferentes. Entonces, ¿qué es una traza? Básicamente, una traza es el recorrido del usuario de un evento específico. Por ejemplo, en este caso, una llamada a la API. Si alguien realiza una llamada a la API, obtienes un ID de traza específico, que se crea solo para este evento específico. Y cada ID de traza consta de múltiples IDs de span. Un ID de span podría ser una llamada a la base de datos u otra llamada de función. Así que esto podría ser muy aleatorio. Cada ID de span o ID de traza también puede contener atributos clave, que puedes definir fácilmente. Además de los IDs de span, también existen los eventos de span. Un evento de span es algo así como un registro que ocurre en un momento específico en el ID de span. Más adelante en la demostración, te mostraré cómo podría verse un evento de span.

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

Simplificando los Componentes del Servidor
React Advanced Conference 2023React Advanced Conference 2023
27 min
Simplificando los Componentes del Servidor
Top Content
React server components simplify server-side rendering and provide a mental model of components as pure functions. Using React as a library for server components allows for building a basic RSC server and connecting it to an SSR server. RSC responses are serialized virtual DOM that offload code from the client and handle interactivity. The client manifest maps serialized placeholders to real components on the client, enabling dynamic rendering. Server components combine the best of classic web development and progressive enhancement, offering the advantage of moving logic from the client to the server.
Explorando los fundamentos de los Componentes del Servidor React
React Day Berlin 2023React Day Berlin 2023
21 min
Explorando los fundamentos de los Componentes del Servidor React
Top Content
This Talk introduces React Server Components (RSC) and explores their serialization process. It compares RSC to traditional server-side rendering (SSR) and explains how RSC handles promises and integrates client components. The Talk also discusses the RSC manifest and deserialization process. The speaker then introduces the Waku framework, which supports bundling, server, routing, and SSR. The future plans for Waku include integration with client state management libraries.
Y Ahora Entiendes los Componentes del Servidor React
React Summit 2024React Summit 2024
27 min
Y Ahora Entiendes los Componentes del Servidor React
Top Content
In this Talk, Kent C. Dodds introduces React Server Components (RSCs) and demonstrates how to build them from scratch. He explains the process of integrating RSCs with the UI, switching to RSC and streaming for improved performance, and the benefits of using RSCs with async components. Dodds also discusses enhancements with streaming and server context, client support and loaders, server component rendering and module resolution, handling UI updates and rendering, handling back buttons and caching, and concludes with further resources for diving deeper into the topic.
Una Guía Práctica para Migrar a Componentes de Servidor
React Advanced Conference 2023React Advanced Conference 2023
28 min
Una Guía Práctica para Migrar a Componentes de Servidor
Top Content
React query version five is live and we'll be discussing the migration process to server components using Next.js and React Query. The process involves planning, preparing, and setting up server components, migrating pages, adding layouts, and moving components to the server. We'll also explore the benefits of server components such as reducing JavaScript shipping, enabling powerful caching, and leveraging the features of the app router. Additionally, we'll cover topics like handling authentication, rendering in server components, and the impact on server load and costs.
Componentes del Servidor: La Épica Historia de Renderizar UX
React Summit 2023React Summit 2023
26 min
Componentes del Servidor: La Épica Historia de Renderizar UX
Top Content
This Talk introduces server components in React, which provide an intermediate format for rendering and offer advantages for both client-side and server-side rendering. Server components reduce bundle size on the client and improve search engine optimization. They abstract the rendering process, allowing for faster rendering and flexibility in choosing where to render components. While server components are still in the experimental stage, Next.js is a good starting point to try them out.
RSCs en Producción: 1 Año Después
React Summit 2024React Summit 2024
24 min
RSCs en Producción: 1 Año Después
This Talk explores the experience of shipping server components in production and highlights the benefits and challenges of using Server Components in Next.js apps. The Talk discusses the deployment of UploadThing and the use of AppRouter for safe production usage. It delves into the implementation of different layouts, data fetching, and code centralization for improved performance. The Talk also covers the use of server components for performance optimization and latency handling. Additionally, it explores the use of Edge and Lambda for partial pre-rendering and the challenges faced with webpack performance and hydration. Overall, the Talk emphasizes the benefits and challenges of working with Server Components in Next.js applications.

Workshops on related topic

Next.js 13: Estrategias de Obtención de Datos
React Day Berlin 2022React Day Berlin 2022
53 min
Next.js 13: Estrategias de Obtención de Datos
Top Content
WorkshopFree
Alice De Mauro
Alice De Mauro
- Introducción- Prerrequisitos para la masterclass- Estrategias de obtención: fundamentos- Estrategias de obtención – práctica: API de obtención, caché (estática VS dinámica), revalidar, suspense (obtención de datos en paralelo)- Prueba tu construcción y sírvela en Vercel- Futuro: Componentes de servidor VS Componentes de cliente- Huevo de pascua de la masterclass (no relacionado con el tema, destacando la accesibilidad)- Conclusión
La Puerta al Backend: Guía del Desarrollador Frontend para el Desarrollo Full-Stack
React Summit US 2023React Summit US 2023
160 min
La Puerta al Backend: Guía del Desarrollador Frontend para el Desarrollo Full-Stack
Top Content
WorkshopFree
Amy Dutton
Amy Dutton
Esta masterclass te guiará a través del ciclo de vida del desarrollo de productos para crear una aplicación web del mundo real. Aprenderás sobre los Componentes del Servidor React, construyendo un sistema de diseño dentro de Storybook, y utilizando el desarrollo frontend para acercarte a convertirte en un desarrollador full-stack. La masterclass cubrirá el aumento de la confianza en tu aplicación con pruebas unitarias e implementando autenticación y autorización. Tendrás la oportunidad de trabajar a través de las características del producto y examinar un proyecto real de RedwoodJS, obteniendo valiosa experiencia en el desarrollo de productos del mundo real. RedwoodJS hace que sea simple acercarse al desarrollo full-stack, y esta masterclass te dará las habilidades que necesitas para crear tus propias aplicaciones web del mundo real.
Patrones Avanzados de Despliegue de Aplicaciones con Componentes de Servidor React (feat. un Marco RSC DIY)
React Summit US 2023React Summit US 2023
104 min
Patrones Avanzados de Despliegue de Aplicaciones con Componentes de Servidor React (feat. un Marco RSC DIY)
Top Content
WorkshopFree
 Greg Brimble
Greg Brimble
El ecosistema de desarrolladores siempre está avanzando rápidamente y este año no ha sido una excepción. Los Componentes de Servidor React pueden ofrecer una mejora significativa a la experiencia del desarrollador y al rendimiento de la aplicación. Pero creo que es justo decir que este nuevo paradigma de servidor primero puede ser complicado de entender!En la primera mitad de esta masterclass, exploraremos los Componentes de Servidor React desde cero: construyendo nuestro propio mini marco meta para ayudarnos a entender cómo funcionan los RSCs. Descubriremos exactamente qué se produce en una construcción RSC y conectaremos esas piezas para formar una aplicación completa.A continuación, ¡lo desplegaremos! Cloudflare también ha tenido un año ocupado — Smart Placement, en particular, es una nueva tecnología que hemos desarrollado que se ajusta perfectamente al modelo RSC. Exploraremos por qué eso tiene sentido para nuestra aplicación de masterclass, y realmente lo desplegaremos en la Plataforma de Desarrolladores de Cloudflare.Finalmente, ampliaremos un poco más nuestra aplicación, utilizando D1 (nuestra base de datos SQL sin servidor) para mostrar realmente el poder del Componente de Servidor React cuando se combina con Smart Placement.Deberías salir de esta masterclass con una mayor comprensión de cómo funcionan los Componentes de Servidor React (tanto detrás de las escenas como también cómo tú como desarrollador puedes usarlos día a día), así como una visión de algunos de los nuevos patrones de despliegue que ahora son posibles después de las recientes innovaciones en el espacio de la plataforma.
Construyendo Componentes de Servidor Reutilizables en NextJS
React Summit US 2023React Summit US 2023
88 min
Construyendo Componentes de Servidor Reutilizables en NextJS
Workshop
Will Bishop
Mettin Parzinski
2 authors
React continúa evolucionando su capacidad beta, los Componentes de Servidor de React, y continúan desarrollándolos en asociación con marcos como NextJS.En esta masterclass, los asistentes aprenderán qué son los Componentes de Servidor de React, cómo construirlos y usarlos eficazmente en NextJS, y se centrarán en una de las principales ventajas de React/NextJS: la reutilización a través de componentes.También cubriremos tecnologías beta relacionadas habilitadas por el directorio `app`, como los layouts anidados y las acciones del servidor (capacidad alfa/experimental).¡Únete a nosotros para esta masterclass práctica de 120 minutos!Tecnologías:
React, JavaScript/Typescript, NextJS, Miro
Desatando los Componentes del Servidor React: Una Inmersión Profunda en el Desarrollo Web de la Próxima Generación
React Day Berlin 2023React Day Berlin 2023
149 min
Desatando los Componentes del Servidor React: Una Inmersión Profunda en el Desarrollo Web de la Próxima Generación
Workshop
Maurice de Beijer
Maurice de Beijer
¡Prepárate para potenciar tus habilidades de desarrollo web con los Componentes del Servidor React! En esta inmersiva masterclass de 3 horas, desbloquearemos el potencial completo de esta tecnología revolucionaria y exploraremos cómo está transformando la forma en que los desarrolladores construyen aplicaciones web rápidas y eficientes.
Únete a nosotros mientras nos adentramos en el emocionante mundo de los Componentes del Servidor React, que combinan sin problemas el renderizado del lado del servidor con la interactividad del lado del cliente para un rendimiento y una experiencia de usuario inigualables. Obtendrás experiencia práctica a través de ejercicios prácticos, ejemplos del mundo real y orientación experta sobre cómo aprovechar el poder de los Componentes del Servidor en tus propios proyectos.
A lo largo de la masterclass, cubriremos temas esenciales, incluyendo:- Entender las diferencias entre los Componentes del Servidor y del Cliente- Implementar Componentes del Servidor para optimizar la obtención de datos y reducir el tamaño del paquete JavaScript- Integrar Componentes del Servidor y del Cliente para una experiencia de usuario fluida- Estrategias para pasar datos efectivamente entre componentes y gestionar el estado- Consejos y mejores prácticas para maximizar los beneficios de rendimiento de los Componentes del Servidor React
Construye una Tienda Personalizada en Shopify con Hydrogen
React Advanced Conference 2021React Advanced Conference 2021
170 min
Construye una Tienda Personalizada en Shopify con Hydrogen
Workshop
Matt Seccafien
Cathryn Griffiths
2 authors
Hydrogen es un marco de trabajo y SDK React con opiniones para construir tiendas personalizadas rápidas, alimentadas por Shopify. Hydrogen adopta los Componentes del Servidor React y utiliza Vite y Tailwind CSS. En este masterclass, los participantes tendrán una primera vista de Hydrogen, aprenderán cómo y cuándo usarlo, todo mientras construyen una tienda personalizada completamente funcional con el equipo de Hydrogen.