existen instrumentaciones automáticas. Estos también son paquetes creados por la
community de OpenTelemetry, que utilizan los mismos fundamentos para recopilar automáticamente
data para ti. Así que veremos en el recuadro rojo del fragmento de código, registrar una instrumentación para recopilar automáticamente datos es realmente sencillo. Solo tienes que enumerar los que deseas. Los importas, y luego estás listo para empezar. Algunos ejemplos que son particularmente interesantes para el
frontend son la carga del documento y la interacción del usuario. Estos se conectarán con las APIs del navegador, para recopilar automáticamente
data sobre cómo los usuarios interactúan con tu aplicación, cómo funcionan tus aplicaciones y recopilar cosas como métricas web, por ejemplo. Definitivamente, es un equilibrio entre la instrumentación manual y automática, dependiendo del nivel de granularidad de
data que necesitas recopilar, y en última instancia, como desarrollador, conoces mejor tus aplicaciones y casos de uso, y eso puede informar el tipo de
data de telemetría que deseas recopilar, así como los atributos que deseas adjuntar a los eventos que estás recopilando, pero hay algunas pautas sobre qué recopilar. Para los eventos, un par de eventos clave que debes tener en cuenta son la carga de la página, eventos de navegación, eso es especialmente importante si tienes una aplicación de una sola página (SPA) en comparación con una aplicación de varias páginas, ya que los eventos del navegador se comportarán de manera un poco diferente cuando se trata de la navegación. Acciones significativas del usuario, ya sabes, clics importantes en botones o envíos de formularios, los errores son especialmente importantes de rastrear, y la descarga de la página, puedes usar eso y conectarlo con la carga de la página para ver una vista general de la interacción de un usuario con una página específica. Con cada uno de esos eventos, puedes recopilar metadatos adicionales que se pueden utilizar más adelante para consultar tus
data de telemetría. Entonces, algunos atributos que es posible que desees recopilar son cosas relacionadas con los datos de la aplicación. Ya sabes, qué usuario ha iniciado sesión actualmente, en qué equipo están, si son usuarios de pago, incluso cosas como qué banderas de características tienen habilitadas, porque más adelante, cuando veas un punto de
data interesante, puedes analizarlo de diferentes formas, y, ya sabes, tal vez ocurra un error, pero solo para los usuarios que tienen una determinada bandera de características habilitada. Y así, al recopilar eso en este punto de tu instrumentación, más adelante, cuando lo consultes, podrás ver tus
data de diferentes formas, lo que puede llevar a ideas interesantes. La siguiente categoría de atributos que puedes querer recopilar son las capacidades. Estas serían cosas como qué navegador está utilizando el usuario, el tamaño de su pantalla y resolución, qué tipo de conexión tienen, si están en una red 3G lenta, si están sin conexión, si están en Wi-Fi, y como desarrolladores, es muy común querer saber, eh, ¿puedo usar esta nueva API del navegador, puedo usar esta característica de
CSS? Y tenemos datos genéricos como `puedo usar`. Pero dependiendo de tu base de usuarios, de tu aplicación específica, eso puede variar mucho de las estadísticas genéricas. Entonces, si estás recopilando estos
data y dices, quiero usar esta característica X de verdad, eso sería muy importante para nosotros, puedes consultar tus datos de telemetría y ver, oh, en realidad nuestra base de usuarios se inclina de una manera u otra en cuanto a los navegadores que están utilizando. Por ejemplo, tal vez puedas decir, oh, espera, en realidad podemos adoptar esta tecnología mucho antes de lo que pensábamos. Luego, cosas como metadatos de la aplicación, qué versión o número de compilación de la aplicación está utilizando el usuario. Entonces, con todos estos atributos que se recopilan y los datos que se recopilan, luego necesitamos enviarlos a algún lugar para almacenarlos y consultarlos más adelante. Y este es el papel de los procesadores y exportadores en OpenTelemetry. Un procesador, como vemos aquí, al agregar un procesador de lotes, recopilará todos los datos a medida que los agregues en tu aplicación. Y luego los enviará en lotes. Hay algunas otras personalizaciones que puedes hacer con OpenTelemetry. Pero enviarlos en lotes es un buen estándar. Y luego, a partir de ahí, tienes un exportador. Este se encargará de realizar cualquier conversión de datos si el
backend al que lo envías no formatea las métricas, registros y trazas de la misma manera que OpenTelemetry, y luego se encarga del transporte, ¿verdad? Y así, en este caso, podríamos enviarlo directamente a Tempo o a Loki o a Mimir. Un componente opcional es que podríamos ejecutar el recolector. Hasta este punto, hemos estado hablando de que nuestro
frontend envía datos a nuestro
backend para almacenarlos. Pero definitivamente hay muchos casos de uso para tener un componente intermedio que pueda actuar como intermediario entre tu
frontend y tu
backend.
Comments