1. La falta de visibilidad en las aplicaciones Vue.js.
2. Cómo instalar el SDK de Sentry Vue.js.
3. Cómo puedes utilizar Sentry para identificar errores y ralentizaciones dentro de tu aplicación Vue.js.
This talk has been presented at Vue.js London Live 2021, check out the latest edition of this JavaScript Conference.
FAQ
Sentry es una plataforma que se enfoca en la observabilidad del código, permitiendo a los desarrolladores entender la salud de sus aplicaciones desde el front end hasta el back end. Se utiliza para monitorear errores y el rendimiento de las aplicaciones, facilitando la optimización de la experiencia del desarrollador y del cliente.
Integrar Sentry con Vue es sencillo mediante una instalación de NPM y configurando unas pocas líneas de código en tu aplicación. Esto conecta Sentry con tu manejador global de errores, permitiendo que los eventos y transacciones sean enviados a Sentry a medida que los usuarios interactúan con la aplicación.
Sentry ofrece soporte para todos los principales lenguajes de programación y frameworks, incluyendo Vue, lo que lo hace accesible para una amplia gama de desarrolladores.
Sentry muestra detalles como el tipo de error, el mensaje de error, la frecuencia de ocurrencia, la cantidad de usuarios afectados, enlaces a los commits que pudieron haber causado el error, y una traza de la pila legible, entre otros datos contextualizados.
Las migas de pan en Sentry son registros de las actividades que preceden a un error o problema, ofreciendo un contexto adicional sobre lo que estaba ocurriendo en la aplicación antes del incidente. Los desarrolladores pueden añadir sus propias migas de pan para personalizar el seguimiento.
Sentry identifica problemas de rendimiento y errores en la aplicación, permitiendo a los desarrolladores hacer ajustes para optimizar el tiempo de carga y las interacciones, lo que reduce la frustración del usuario y mejora la estabilidad de la aplicación.
La traza distribuida en Sentry permite ver cómo las transacciones y errores están relacionados entre el front end y el back end de la aplicación. Esto ayuda a identificar y resolver problemas más complejos que involucran múltiples componentes del sistema.
Hola, soy Simon, un ingeniero de soluciones en Sentry. Nos enfocamos en la observabilidad del código, brindando soporte para todos los principales lenguajes y frameworks. Con el SDK de Sentry, puedes monitorear errores y rendimiento. Comienza con un proceso de instalación sencillo. Sentry proporciona información detallada sobre errores, incluyendo la traza de la pila y la información contextual. También admite sistemas de control de código fuente e integra con herramientas de seguimiento de problemas. La función de traza distribuida te permite ver las relaciones entre errores en el front-end y back-end. Podemos optimizar las consultas para mejorar la experiencia del usuario y reducir el sufrimiento del usuario.
1. Introducción a Sentry y Observabilidad de Código
Short description:
Hola, soy Simon, un ingeniero de soluciones en Sentry. Nos enfocamos en la observabilidad del código, brindando soporte a todos los lenguajes y frameworks principales. Con el SDK de Sentry, puedes monitorear errores y rendimiento. Comienza con un proceso de instalación sencillo.
Hola. Mi nombre es Simon. Soy un ingeniero de soluciones en Sentry. Nos enfocamos en la observabilidad del código. Con Sentry, puedes entender la salud de tu aplicación desde el front end hasta el back end. Sentry está diseñado para todos los desarrolladores, lo que significa que brindamos soporte a todos los lenguajes principales y frameworks, incluyendo Vue. Con el SDK de Sentry en tu aplicación, puedes alertar a los miembros del equipo necesarios y permitir que tus desarrolladores optimicen la experiencia del desarrollador y del cliente. La plataforma de Sentry proporciona múltiples perspectivas sobre la salud de tu aplicación. Pero hoy nos enfocaremos en el monitoreo de errores y el monitoreo de rendimiento. Para comenzar con Sentry, vamos al sitio de documentación de Sentry, buscamos Vue, o hacemos clic para ver las 99 plataformas compatibles. Y en esta sección de JavaScript, tenemos un enlace a Vue. El proceso de instalación es muy sencillo. Es una instalación de NPM y unos pocos
2. Monitoreo y Análisis de Errores de Sentry
Short description:
Lo que esto hará es conectar Sentry a tu manejador global de errores. A medida que los usuarios interactúan con tu aplicación, se envían eventos y transacciones a Sentry. Puedes configurar alertas para recibir notificaciones de errores en tiempo real. Sentry proporciona información detallada sobre los errores, incluyendo la traza de la pila e información contextual. También admite sistemas de control de código fuente e integra con herramientas de seguimiento de problemas. La función de traza distribuida te permite ver las relaciones entre los errores en el front-end y el back-end.
líneas de código para configurar Vue en tu aplicación. Lo que esto hará es conectar Sentry a tu manejador global de errores. Y a medida que los usuarios interactúan con tu aplicación, se envían eventos y transacciones a Sentry. Aquí tengo una aplicación de demostración Vue muy básica. Echemos un vistazo juntos. Acabo de actualizarla porque la he configurado para que se envíe una solicitud HTTP al cargar la página. Revisaremos lo que eso significa en el lado del performance, pero por ahora hagamos clic en estos botones de error. Y a medida que estos errores ocurren, también se envían a Sentry. He configurado algunas alertas para nosotros. Así que en realidad estamos recibiendo notificaciones de estos errores mientras ocurren. Así que en Slack, acabo de hacer clic en una notificación que nos llevará directamente a este error. Y todos estos detalles del error se muestran frente a mí. Tenemos el error, el mensaje de error, la magnitud de este error, cuántas veces ocurrió y cuántos usuarios se vieron afectados. También integramos con sistemas de control de código fuente, por lo que tenemos detalles sobre el commit que pudo haber causado esto, enlaces a esos commits, información contextual a través de estas etiquetas como los detalles del usuario, el entorno en el que se encuentran. Podemos agregar nuestras propias etiquetas, pero lo que probablemente nos importa más en este momento es la traza de la pila. Así que está justo debajo. Y en un mundo sin Sentry, estaríamos lidiando más con una traza de pila minimizada, óptima para el performance, pero no muy legible para los humanos. Pero afortunadamente, Sentry nos ayuda con eso. Así que durante nuestro proceso de compilación, hemos subido nuestros mapas de origen, Sentry tomó eso, tradujo el mapa de origen, la traza de la pila para nosotros, y tenemos esta hermosa traza de pila legible para los humanos, incluyendo el resaltado de la línea donde ocurrió el error. Y vemos que la respuesta fue falsa. También sabemos qué archivo revisar. Así que tengamos todo eso en mente, cosas muy interesantes. Pero justo debajo de eso, tenemos más contexto, una línea de tiempo de las actividades en nuestras migas de pan. También podemos agregar nuestras propias migas de pan si queremos. Y todo esto está instrumentado automáticamente. Podemos ajustar el tiempo a un formato más de cuenta regresiva donde cuando lleguemos a tiempo igual a cero, obtendremos ese error interno del servidor. Así que todo esto es genial para obtener más contexto. Y si eso no fuera suficiente, este error ha ocurrido unas 50 veces. Así que hemos recopilado todas las etiquetas de todos estos errores en esta sección de mapa de calor a la derecha. Con toda esta información, el contexto y el contenido desde la perspectiva del front-end, podemos considerar crear un nuevo ticket o vincularlo a un ticket existente a través de estas integraciones con herramientas de seguimiento de problemas. También quiero llamar la atención sobre la función de traza distribuida que tenemos en Sentry. Dado que tenemos Sentry instalado en nuestro back-end
3. Análisis de Eventos y Rendimiento
Short description:
Vemos un evento secundario y un error relacionado desde la perspectiva del back-end. La salud del rendimiento proporciona métricas web y un índice de sufrimiento del usuario. Al hacer clic en la transacción de la página de inicio, se muestra el desglose de la duración y de las operaciones. La mayor parte del tiempo de operación proviene de solicitudes del cliente HTTP y consultas secuenciales a la base de datos. Podemos optimizar estas consultas para mejorar la experiencia del usuario y reducir el sufrimiento del usuario. Gracias por revisar la aplicación Vue conmigo.
También vemos una relación en el back-end. Vemos que hay un evento secundario y un error relacionado que debemos revisar. Esto se refiere a la respuesta que indica que OK fue falso proveniente de nuestro back-end. Si hacemos clic aquí, podemos ver las etiquetas del back-end, la traza de la pila del back-end, las migas de pan del back-end, todo lo que vemos aquí, pero desde la perspectiva del back-end. Cambiemos de tema por un momento. Hay mucho en el lado de los problemas y tenemos tiempo suficiente para ver la salud del rendimiento que proporciona Sentry. De inmediato, vemos nuestras métricas web. Eso es cuánto tiempo tarda en cargar la primera cosa, la cosa más grande en cargar, la demora de entrada, la estabilidad de nuestra página, la latencia a lo largo del tiempo y la distribución en las últimas 24 horas. Eso fue rápido, ¿verdad? Charla relámpago. Pero lo que destaca aquí es el índice de sufrimiento del usuario. Al resaltarlo, nos da una definición de esta métrica. Lo mismo ocurre con todas estas otras métricas también. Pero sigamos nuestro instinto, hagamos clic en la transacción de la página de inicio aquí y podrás ver el desglose de la duración, cuánto tiempo tardaron estas transacciones en completarse en el pasado, en este caso, 24 horas. Podemos interactuar con este gráfico resaltando una sección diferente. Eso actualizará el marco de tiempo, por supuesto, y también los eventos que aparecen. La mayor parte de la operación está cubierta en este rojo HTTP. Al hacer clic en un ID de evento, podemos ver el desglose de la operación en este tipo de gráfico en cascada. Tomó 15 segundos para esta transacción, y la mayor parte del tiempo de operación provenía de esta solicitud del cliente HTTP. Y esto va a nuestro back-end, y podemos ver eso porque tenemos este ícono de suma aquí. Tenemos configurada la traza distribuida. Si no lo tuviéramos, simplemente no veríamos este ícono de suma y no podríamos expandirlo. Afortunadamente, podemos hacerlo, y podemos ver que gran parte de este tiempo se debe a estas consultas secuenciales a la base de datos. Ahora tenemos una forma de avanzar, trabajar con nuestro equipo de back-end, optimizar estas consultas a la base de datos, hacerlo como una situación de procesamiento asíncrono, y eso mejorará la experiencia del usuario y reducirá el sufrimiento del usuario también. Así que solo para recapitular por un momento aquí. En nuestra aplicación Vue, hicimos clic en algunos de estos botones de error. Recibimos notificaciones a través de nuestra integración con Slack para llegar a nuestra página de errores. Al observar el contexto y el contenido completo desde la perspectiva del front-end y con la traza distribuida, también podríamos hacerlo desde la perspectiva del back-end. En cuanto a la salud del rendimiento, tenemos un resumen de esa salud a través de estas métricas web, seguimos nuestro instinto a través del índice de sufrimiento del usuario en esa transacción de la página de inicio, vimos el desglose de la operación y podemos hacer algunas mejoras en estas consultas subóptimas a la base de datos. En cualquier caso, muchas gracias por revisar esta aplicación Vue conmigo. Que tengas un maravilloso resto de tu conferencia. Muchas gracias. Transcrito por https://otter.ai
State management is not limited to complex applications and transitioning to a store offers significant benefits. Pinia is a centralized state management solution compatible with Vue 2 and Vue 3, providing advanced devtools support and extensibility with plugins. The core API of Pinia is similar to Vuex, but with a less verbose version of stores and powerful plugins. Pinia allows for easy state inspection, error handling, and testing. It is recommended to create one file per store for better organization and Pinia offers a more efficient performance compared to V-rex.
Nux3 has made significant improvements in performance, output optimization, and serverless support. Nuxt Bridge brings the Nitro engine for enhanced performance and easier transition between Nuxt 2 and Nuxt Read. Nuxt 3 supports Webpack 5, Bytes, and Vue 3. NextLab has developed brand new websites using Docus technology. Nuxt.js is recommended for building apps faster and simpler, and Nuxt 2 should be used before migrating to Nuxt 3 for stability. DOCUS is a new project that combines Nuxt with additional features like content modules and an admin panel.
Vue 3 has seen significant adoption and improvements in performance, bundle size, architecture, and TypeScript integration. The ecosystem around Vue 3 is catching up, with new tools and frameworks being developed. The Vue.js.org documentation is undergoing a complete overhaul. PNIA is emerging as the go-to state management solution for Vue 3. The options API and composition API are both viable options in Vue 3, with the choice depending on factors such as complexity and familiarity with TypeScript. Vue 3 continues to support CDN installation and is recommended for new projects.
In this Talk, the speaker demonstrates how to use Rust with WebAssembly in a Vue.js project. They explain that WebAssembly is a binary format that allows for high-performance code and less memory usage in the browser. The speaker shows how to build a Rust example using the WasmPack tool and integrate it into a Vue template. They also demonstrate how to call Rust code from a Vue component and deploy the resulting package to npm for easy sharing and consumption.
The Talk discusses the recent feature updates in Vue 3.3, focusing on script setup and TypeScript support. It covers improvements in defining props using imported types and complex types support. The introduction of generic components and reworked signatures for defined components provides more flexibility and better type support. Other features include automatic inference of runtime props, improved define emits and defined slots, and experimental features like reactive props destructure and define model. The Talk also mentions future plans for Vue, including stabilizing suspense and enhancing computer invalidations.
This Talk discusses handling local state in software development, particularly when dealing with asynchronous behavior and API requests. It explores the challenges of managing global state and the need for actions when handling server data. The Talk also highlights the issue of fetching data not in Vuex and the challenges of keeping data up-to-date in Vuex. It mentions alternative tools like Apollo Client and React Query for handling local state. The Talk concludes with a discussion on GitLab going public and the celebration that followed.
Vue3 fue lanzado a mediados de 2020. Además de muchas mejoras y optimizaciones, la principal característica que trae Vue3 es la API de Composición, una nueva forma de escribir y reutilizar código reactivo. Aprendamos más sobre cómo usar la API de Composición de manera eficiente.
Además de las características principales de Vue3, explicaremos ejemplos de cómo usar bibliotecas populares con Vue3.
Tabla de contenidos: - Introducción a Vue3 - API de Composición - Bibliotecas principales - Ecosistema Vue3
Requisitos previos: IDE de elección (Inellij o VSC) instalado Nodejs + NPM
- ¿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
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.
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”, mira 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. Nivel de la masterclass: Intermedio
Construiremos un proyecto Nuxt juntos desde cero usando Nitro, el nuevo motor de renderizado de Nuxt, y Nuxt Bridge. Exploraremos algunas de las formas en que puedes usar y desplegar Nitro, mientras construimos una aplicación juntos con algunas de las restricciones del mundo real que enfrentarías al desplegar una aplicación para tu empresa. En el camino, dispara tus preguntas hacia mí y haré lo mejor para responderlas.
- Introducción a 3D- Introducción a WebGL- ThreeJS- Por qué TresJS- Instalación o configuración de Stackblitz- Conceptos básicos- Configuración del lienzo- Escena- Cámara- Agregar un objeto- Geometrías- Argumentos- Props- Slots- El bucle- Composable UseRenderLoop- Callbacks antes y después de la renderización- Animaciones básicas- Materiales- Material básico- Material normal- Material Toon- Material Lambert- Material estándar y físico- Metalness, roughness- Luces- Luz ambiental- Luz direccional- Luces puntuales- Sombras- Texturas- Cargar texturas con useTextures- Consejos y trucos- Misceláneo- Controles de órbita- Cargar modelos con Cientos- Depuración de tu escena- Rendimiento
Comments