Soluciona el 100% de tus errores: Cómo encontrar problemas más rápido con la Reproducción de Sesiones

Rate this content
Bookmark

¿Conoces ese molesto error? ¿El que no aparece localmente? Y no importa cuántas veces intentes recrear el entorno, no puedes reproducirlo. Has revisado las migas de pan, leído la traza de pila y ahora estás jugando al detective para unir los tickets de soporte y asegurarte de que sea real.


Únete al desarrollador de Sentry, Ryan Albrecht, en esta charla para aprender cómo los desarrolladores pueden utilizar la Reproducción de Sesiones, una herramienta que proporciona reproducciones de video de las interacciones de los usuarios, para identificar, reproducir y resolver errores y problemas de rendimiento más rápido (sin golpear tu cabeza contra el teclado).

This workshop has been presented at JSNation 2023, check out the latest edition of this JavaScript Conference.

FAQ

Replay es una herramienta de Sentry que permite realizar una depuración en viaje en el tiempo, capturando lo que hizo el usuario antes y después de que se desencadenara un error en un sitio web. Facilita la inspección del DOM real del sitio, visualización de registros de consola, y seguimiento de solicitudes y respuestas de red, ayudando a entender y resolver errores de manera más eficaz.

La principal diferencia de la herramienta Replay de Sentry respecto a otras herramientas similares es su enfoque en los desarrolladores, proporcionando funcionalidades específicas que permiten una depuración más táctica y eficiente de errores, integrándose perfectamente con el flujo de trabajo de Sentry.

Replay ofrece características como la visualización del DOM real del sitio web, acceso a registros completos de la consola, seguimiento de solicitudes y respuestas de red, y la capacidad de buscar repeticiones basadas en interacciones específicas del DOM. Además, vincula errores y transacciones del backend, ofreciendo un panorama completo de la actividad en el sitio.

Para utilizar Replay, es necesario habilitar la integración de reproducción de sesión en Sentry. Esto se realiza agregando la integración específica a la configuración de Sentry en tu sitio web, lo cual se puede hacer siguiendo los pasos proporcionados en la documentación de Sentry.

Replay está diseñada para ayudar a resolver errores que ocurren en el sitio web, proporcionando un contexto amplio sobre las acciones del usuario antes y después del error. Esto incluye errores de JavaScript, fallos de carga de recursos, problemas de interacción del usuario y errores en solicitudes de red, entre otros.

Replay está diseñada para minimizar su impacto en el rendimiento del sitio web. Utiliza compresión de datos y realiza procesamientos en un trabajador web para no interferir con el hilo principal del navegador, asegurando que la experiencia del usuario no se vea afectada negativamente por la monitorización.

Ryan Albrecht
Ryan Albrecht
44 min
30 May, 2023

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Este masterclass presenta Replay, una herramienta para resolver errores más rápido al proporcionar contexto a través de las reproducciones de sesiones. Demuestra la importancia del contexto en la resolución de errores y muestra las características de la reproducción de sesiones, como ver HTML, registros de consola, solicitudes de red y enlaces a errores del backend. El masterclass también cubre el uso de DOM virtual y observador de mutaciones para cambios de página eficientes. Las preocupaciones de privacidad se abordan reemplazando la información sensible en las reproducciones, y se destaca el poder de la reproducción de sesiones para identificar y comprender la secuencia de errores.

1. Introducción a Replay y Solución de Errores

Short description:

Esta charla es una introducción a una nueva herramienta llamada Replay. Es una herramienta enfocada en desarrolladores que te ayuda a resolver problemas más rápido. El problema son los errores, y el taller describirá qué es un replay y demostrará cómo funciona. Habrá una demostración en vivo y documentación disponible para configurarlo en tu sitio web. El ejemplo de error mostrado es un error real que es difícil de resolver sin herramientas adicionales. El seguimiento de la pila proporciona información valiosa sobre el error.

De todos modos, mi nombre es Ryan Albrecht. Trabajo en Century como ingeniero principal de front-end en nuestro producto de replay de sesiones. Y esta charla o taller trata sobre cómo resolver el 100% de tus errores y encontrar la causa raíz de tus problemas más rápido. Básicamente es una introducción. Pero si hay algo que aprendas hoy, es que hay una nueva herramienta disponible llamada Replay. Hay muchas empresas que hacen el mismo tipo de herramienta, pero la nuestra es una de las únicas que está enfocada en desarrolladores y que puedes agregar a tu caja de herramientas para resolver problemas más rápido. Esa es la esencia de la charla. Si obtienes algo de esto, es que esta herramienta existe y espero que la investigues más a fondo.

Lo que quiero hacer es contarte sobre ella y emocionarte. Así que vamos a hablar sobre el problema, que son simplemente los errores, y luego describir qué es un replay. Y luego quiero mostrarte cómo funciona en realidad. Habrá una demostración en vivo. No vamos a ver mucho código, pero como hubo una pregunta, quiero mostrarles la documentación. Así que la pondremos aquí. Si quieres configurar esto en tu sitio web, puedes ir a la documentación y hay enlaces en el discord, creo. Y todo lo que tienes que hacer es copiar y pegar este tipo de cosa. Así que este es probablemente el único código que necesitamos ver. Y el resto es simplemente usar la herramienta y obtener algún valor de ella. Así que la documentación está ahí, los enlaces están ahí, ustedes pueden hacer más preguntas después. Pero solo quiero mostrar esto para que tengan algo de contexto.

Ok, ¿cuál es el problema? El problema son los errores. Nunca resolverás todos tus errores, pero existen y tenemos que resolver los más importantes. Este es un error, es un error real que creo que resolví. Probablemente lo resolví. Pero al verlo tal como está, es bastante imposible hacer algo con esto. Podemos ver en la parte superior que dice S printf esperando un número pero encontró un arreglo. Esto es y esta es la única parte útil en esta página completa aquí. Es un seguimiento de pila de JavaScript minificado. Lo que significa que es una instantánea en el tiempo donde algo sucedió, algo inesperado sucedió. Y el JavaScript lanzó un error.

2. Introducción a la Solución de Errores

Short description:

Esto es lo básico de los errores en JavaScript. A menudo tenemos un seguimiento de pila, pero aún es difícil resolver el error. Esperamos un número pero encontramos un arreglo dentro del formateador de mensajes. Desconocemos el origen del arreglo o la experiencia del usuario. No es ideal.

Y esto es más o menos desde donde partimos cuando pensamos en los errores en JavaScript y en lo que necesitamos hacer para resolverlos. Esto es lo básico, y es prácticamente imposible. A veces decimos, está bien, tenemos un seguimiento de pila, ¿no sería genial si fuera un ticket? Alguien podría ingresarlo en nuestro JIRA o algo así. Si lo hacen, es posible que obtengamos un seguimiento de pila no ofuscado. Aquí hay uno que es un poco más legible. Podemos ver que hay archivos como error boundary.tsx y message formatter.tsx. Entonces, esto hace que el seguimiento de pila sea un poco más fácil de leer. Pero en realidad, sigue siendo muy, muy difícil resolver este error. Esperamos un número, encontramos un arreglo, y esto ocurre dentro del formateador de mensajes. Ocurrió una vez, de todos modos. Podría haber ocurrido muchas veces. No sé qué era el arreglo. No sé de dónde vino. Podría poner una declaración if allí y simplemente decir, si es un arreglo, deja de hacer lo que estás haciendo. Eso evitará que ocurra este error. Pero no sé cuál será la experiencia del usuario. No es ideal. Aquí es desde donde partimos.

Watch more workshops on topic

Masterclass de Depuración de Rendimiento de React
React Summit 2023React Summit 2023
170 min
Masterclass de Depuración de Rendimiento de React
Top Content
Featured WorkshopFree
Ivan Akulov
Ivan Akulov
Los primeros intentos de Ivan en la depuración de rendimiento fueron caóticos. Vería una interacción lenta, intentaría una optimización aleatoria, vería que no ayudaba, y seguiría intentando otras optimizaciones hasta que encontraba la correcta (o se rendía).
En aquel entonces, Ivan no sabía cómo usar bien las herramientas de rendimiento. Haría una grabación en Chrome DevTools o React Profiler, la examinaría, intentaría hacer clic en cosas aleatorias, y luego la cerraría frustrado unos minutos después. Ahora, Ivan sabe exactamente dónde y qué buscar. Y en esta masterclass, Ivan te enseñará eso también.
Así es como va a funcionar. Tomaremos una aplicación lenta → la depuraremos (usando herramientas como Chrome DevTools, React Profiler, y why-did-you-render) → identificaremos el cuello de botella → y luego repetiremos, varias veces más. No hablaremos de las soluciones (en el 90% de los casos, es simplemente el viejo y regular useMemo() o memo()). Pero hablaremos de todo lo que viene antes - y aprenderemos a analizar cualquier problema de rendimiento de React, paso a paso.
(Nota: Esta masterclass es más adecuada para ingenieros que ya están familiarizados con cómo funcionan useMemo() y memo() - pero quieren mejorar en el uso de las herramientas de rendimiento alrededor de React. Además, estaremos cubriendo el rendimiento de la interacción, no la velocidad de carga, por lo que no escucharás una palabra sobre Lighthouse 🤐)
Cómo Resolver Problemas del Mundo Real con Remix
Remix Conf Europe 2022Remix Conf Europe 2022
195 min
Cómo Resolver Problemas del Mundo Real con Remix
Featured Workshop
Michael Carter
Michael Carter
- ¿Errores? Cómo renderizar y registrar tus errores del servidor y del clientea - Cuándo devolver errores vs lanzar excepcionesb - Configurar servicios de registro como Sentry, LogRocket y Bugsnag- ¿Formularios? Cómo validar y manejar formularios de varias páginasa - Usar zod para validar los datos del formulario en tu acciónb - Pasar por formularios de varias páginas sin perder datos- ¿Atascado? Cómo solucionar errores o funciones faltantes en Remix para que puedas continuara - Usar patch-package para solucionar rápidamente tu instalación de Remixb - Mostrar herramienta para gestionar múltiples parches y seleccionar solicitudes de extracción abiertas- ¿Usuarios? Cómo manejar aplicaciones de varios inquilinos con Prismaa - Determinar el inquilino por el host o por el usuariob - Base de datos múltiples o base de datos única/múltiples esquemasc - Asegura que los datos del inquilino siempre estén separados de los demás
Monitoreo 101 para Desarrolladores de React
React Advanced 2023React Advanced 2023
112 min
Monitoreo 101 para Desarrolladores de React
Top Content
WorkshopFree
Lazar Nikolov
Sarah Guthals
2 authors
Si encontrar errores en tu proyecto frontend es como buscar una aguja en un pajar de código, entonces el monitoreo de errores de Sentry puede ser tu detector de metales. Aprende los conceptos básicos del monitoreo de errores con Sentry. Ya sea que estés ejecutando un proyecto de React, Angular, Vue, o simplemente JavaScript “vainilla”, ve cómo Sentry puede ayudarte a encontrar el quién, qué, cuándo y dónde detrás de los errores en tu proyecto frontend.
Depuración del Rendimiento de React
React Advanced 2023React Advanced 2023
148 min
Depuración del Rendimiento de React
Workshop
Ivan Akulov
Ivan Akulov
Los primeros intentos de Ivan en la depuración de rendimiento fueron caóticos. Veía una interacción lenta, probaba una optimización aleatoria, veía que no ayudaba, y seguía probando otras optimizaciones hasta que encontraba la correcta (o se rendía).
En aquel entonces, Ivan no sabía cómo usar bien las herramientas de rendimiento. Hacía una grabación en Chrome DevTools o React Profiler, la examinaba, intentaba hacer clic en cosas al azar, y luego la cerraba frustrado unos minutos después. Ahora, Ivan sabe exactamente dónde y qué buscar. Y en esta masterclass, Ivan te enseñará eso también.
Así es como va a funcionar. Tomaremos una aplicación lenta → la depuraremos (usando herramientas como Chrome DevTools, React Profiler, y why-did-you-render) → identificaremos el cuello de botella → y luego repetiremos, varias veces más. No hablaremos de las soluciones (en el 90% de los casos, es simplemente el viejo y regular useMemo() o memo()). Pero hablaremos de todo lo que viene antes - y aprenderemos cómo analizar cualquier problema de rendimiento de React, paso a paso.
(Nota: Esta masterclass es más adecuada para ingenieros que ya están familiarizados con cómo funcionan useMemo() y memo() - pero quieren mejorar en el uso de las herramientas de rendimiento alrededor de React. Además, cubriremos el rendimiento de interacción, no la velocidad de carga, por lo que no escucharás una palabra sobre Lighthouse 🤐)
Seguimiento de errores y ralentizaciones en Node + JavaScript utilizando Sentry
Node Congress 2022Node Congress 2022
53 min
Seguimiento de errores y ralentizaciones en Node + JavaScript utilizando Sentry
WorkshopFree
Neil Manvar
Neil Manvar
Repasaremos la configuración de Sentry paso a paso para obtener visibilidad en nuestro frontend y backend. Una vez integrado, rastrearemos y solucionaremos errores y transacciones que se muestren en Sentry desde nuestros servicios para comprender por qué/dónde/cómo ocurrieron errores y ralentizaciones en nuestro código de aplicación.
Tracing: Frontend Issues With Backend Solutions
React Summit US 2024React Summit US 2024
112 min
Tracing: Frontend Issues With Backend Solutions
WorkshopFree
Lazar Nikolov
Sarah Guthals
2 authors
Los problemas de frontend que afectan a tus usuarios a menudo son provocados por problemas de backend. En esta masterclass, aprenderás cómo identificar problemas que causan páginas web lentas y malos Core Web Vitals usando tracing.
Luego, pruébalo tú mismo configurando Sentry en un proyecto Next.js ya preparado para descubrir problemas de rendimiento, incluyendo consultas lentas a la base de datos en una sesión interactiva de programación en pareja.
Saldrás de la masterclass siendo capaz de:- Encontrar problemas de backend que podrían estar ralentizando tus aplicaciones de frontend- Configurar tracing con Sentry en un proyecto Next.js- Depurar y solucionar problemas de rendimiento deficiente usando tracing
Este será un evento en vivo de 2 horas donde tendrás la oportunidad de codificar junto con nosotros y hacernos preguntas.

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

Depuración Web Moderna
JSNation 2023JSNation 2023
29 min
Depuración Web Moderna
Top Content
This Talk discusses modern web debugging and the latest updates in Chrome DevTools. It highlights new features that help pinpoint issues quicker, improved file visibility and source mapping, and ignoring and configuring files. The Breakpoints panel in DevTools has been redesigned for easier access and management. The Talk also covers the challenges of debugging with source maps and the efforts to standardize the source map format. Lastly, it provides tips for improving productivity with DevTools and emphasizes the importance of reporting bugs and using source maps for debugging production code.
El Futuro de las Herramientas de Rendimiento
JSNation 2022JSNation 2022
21 min
El Futuro de las Herramientas de Rendimiento
Top Content
Today's Talk discusses the future of performance tooling, focusing on user-centric, actionable, and contextual approaches. The introduction highlights Adi Osmani's expertise in performance tools and his passion for DevTools features. The Talk explores the integration of user flows into DevTools and Lighthouse, enabling performance measurement and optimization. It also showcases the import/export feature for user flows and the collaboration potential with Lighthouse. The Talk further delves into the use of flows with other tools like web page test and Cypress, offering cross-browser testing capabilities. The actionable aspect emphasizes the importance of metrics like Interaction to Next Paint and Total Blocking Time, as well as the improvements in Lighthouse and performance debugging tools. Lastly, the Talk emphasizes the iterative nature of performance improvement and the user-centric, actionable, and contextual future of performance tooling.
Depuración de JS
React Summit 2023React Summit 2023
24 min
Depuración de JS
Top Content
Debugging JavaScript is a crucial skill that is often overlooked in the industry. It is important to understand the problem, reproduce the issue, and identify the root cause. Having a variety of debugging tools and techniques, such as console methods and graphical debuggers, is beneficial. Replay is a time-traveling debugger for JavaScript that allows users to record and inspect bugs. It works with Redux, plain React, and even minified code with the help of source maps.
De la Fricción al Flujo: Depuración con Chrome DevTools
JSNation 2024JSNation 2024
32 min
De la Fricción al Flujo: Depuración con Chrome DevTools
The Talk discusses the importance of removing frictions in the debugging process and being aware of the tools available in Chrome DevTools. It highlights the use of the 'Emulate a Focus Page' feature for debugging disappearing elements and the improvement of debugging tools and workflow. The Talk also mentions enhancing error understanding, improving debugging efficiency and performance, and the continuous improvement of DevTools. It emphasizes the importance of staying updated with new features and providing feedback to request new features.
Rome, ¡una cadena de herramientas moderna!
JSNation 2023JSNation 2023
31 min
Rome, ¡una cadena de herramientas moderna!
Top Content
Rome is a toolchain built in Rust that aims to replace multiple tools and provide high-quality diagnostics for code maintenance. It simplifies tool interactions by performing all operations once, generating a shared structure for all tools. Rome offers a customizable format experience with a stable formatter and a linter with over 150 rules. It integrates with VCS and VLSP, supports error-resilient parsing, and has exciting plans for the future, including the ability to create JavaScript plugins. Rome aims to be a top-notch toolchain and welcomes community input to improve its work.
Dominando el Manejo de Errores en Node.js
Node Congress 2022Node Congress 2022
21 min
Dominando el Manejo de Errores en Node.js
Top Content
This Talk explores error handling in Node.js, including types of errors, handling techniques, and debugging. It discusses the use of exceptions, callbacks, and promises for error handling. The importance of proper error handling and the benefits of using error classes, expressive error messages, and automated testing are emphasized. The speaker also addresses the use of TypeScript and test-driven development for error prevention. Overall, the Talk provides valuable insights and techniques for mastering error handling in Node.js.