Información recopilada por el cliente web de CloudWatch RUM - Amazon CloudWatch

Información recopilada por el cliente web de CloudWatch RUM

En esta sección se documenta el esquema de PutRumEvents, que define la estructura de los datos que puede recopilar de las sesiones de usuario mediante CloudWatch RUM.

Una solicitud de PutRumEvents envía una estructura de datos con los siguientes campos a CloudWatch RUM.

  • El ID de este lote de eventos RUM

  • Detalles del monitor de aplicaciones, que incluye lo siguiente:

    • ID del monitor de aplicaciones

    • versión de la aplicación supervisada

  • Datos del usuario, que incluye lo siguiente. Esto se recopila solo si el monitor de aplicaciones tiene las cookies habilitadas.

    • ID de usuario generado por el cliente web

    • ID de sesión

  • La matriz de eventos de RUM en este lote.

Esquema de eventos de RUM

La estructura de cada evento de RUM incluye los siguientes campos.

Metadatos del evento de RUM

Los metadatos incluyen metadatos de página, metadatos de agente de usuario, metadatos de geolocalización y metadatos de dominio.

Metadatos de la página

Los metadatos de la página incluyen lo siguiente:

  • ID de página

  • Título de página

  • ID de página principal. Esto se recopila solo si el monitor de aplicaciones tiene las cookies habilitadas.

  • Profundidad de interacción: se recopila solo si el monitor de aplicaciones tiene las cookies habilitadas.

  • Etiquetas de página: puede añadir etiquetas a los eventos de la página para agrupar las páginas. Para obtener más información, consulte Uso de grupos de páginas.

Metadatos del agente de usuario

Los metadatos del agente de usuario incluyen lo siguiente:

  • Idioma del navegador

  • Nombre del navegador

  • Versión del navegador

  • Nombre del sistema operativo

  • Versión del sistema operativo

  • Tipo de dispositivo

  • Tipos de plataformas

Metadatos de geolocalización

Los metadatos de geolocalización incluyen lo siguiente:

  • Código de país

  • Código de subdivisión

Metadatos del dominio

Los metadatos del dominio incluyen el dominio URL.

Detalles del evento de RUM

Los detalles de un evento cumplen con uno de los siguientes tipos de esquemas, según el tipo de evento.

Evento de inicio de sesión

Este evento no contiene campos. Esto se recopila solo si el monitor de aplicaciones tiene las cookies habilitadas.

Esquema de vista de página

Un evento de Vista de página contiene las siguientes propiedades. Puede desactivar la colección de vistas de página si configura el cliente web. Para obtener más información, consulte la documentación del cliente web de CloudWatch RUM.

Nombre Tipo Descripción

ID de página

Cadena

ID que representa de forma exclusiva esta página dentro de la aplicación. De forma predeterminada, esta es la ruta URL.

ID de la página principal

Cadena

Id. de la página en la que se encontraba el usuario cuando navegó a la página actual. Esto se recopila solo si el monitor de aplicaciones tiene las cookies habilitadas.

Profundidad de interacción

Cadena

Esto se recopila solo si el monitor de aplicaciones tiene las cookies habilitadas.

Esquema de errores de JavaScript

Los eventos de error de JavaScript generados por el agente contienen las siguientes propiedades. El cliente web recopila estos eventos solo si ha seleccionado recopilar los errores de telemetría.

Nombre Tipo Descripción

Tipo de error

Cadena

El nombre del error, si existe alguno. Para obtener más información, consulte Error.prototype.name.

Es posible que algunos navegadores no admitan tipos de errores.

Mensaje de error

Cadena

Mensaje de error. Para obtener más información, consulte Error.prototype.message. Si el campo de error no existe, este es el mensaje del evento de error. Para obtener más información, consulte ErrorEvent.

Es posible que los mensajes de error no sean coherentes según los distintos navegadores.

Seguimiento de pila

Cadena

El seguimiento de pila del error, si existe, se trunca a 150 caracteres. Para obtener más información, consulte Error.prototype.stack.

Es posible que algunos navegadores no admitan seguimientos de pila.

Esquema de eventos DOM

Los eventos del modelo de objeto de documento (DOM) generados por el agente contienen las siguientes propiedades. Estos eventos no se recopilan de forma predeterminada. Solo se recopilan si activa la telemetría de interacciones. Para obtener más información, consulte la documentación del cliente web de CloudWatch RUM.

Nombre Tipo Descripción

Evento

Cadena

El tipo de evento DOM, como hacer clic, deslizar o desplazar el ratón. Para obtener más información, consulte Event reference (Referencia de eventos).

Elemento

Cadena

El tipo de elemento DOM

(ID del elemento)

Cadena

Si el elemento que generó el evento tiene un ID, esta propiedad almacena ese ID. Para obtener más información, consulte Element.id.

Localizador CSS

Cadena

El localizador CSS utilizado para identificar el elemento DOM.

ID de interacción

Cadena

Un identificador único para la interacción entre el usuario y la interfaz de usuario.

Esquema de eventos de navegación

Los eventos de navegación se recopilan solo si el monitor de la aplicación tiene activada la telemetría de rendimiento.

Los eventos de navegación utilizan API de Navigation timing Level 1 (Temporización de navegación Nivel 1) y Navigation timing Level 2 (Temporización de navegación Nivel 2). Las API de nivel 2 no son compatibles con todos los navegadores, por lo que estos campos más recientes son opcionales.

nota

Las métricas de marca temporal se basan en DOMHighResTimestamp. Con las API de nivel 2, todas las temporizaciones están relacionadas a startTime de forma predeterminada. Sin embargo, para el nivel 1, la métrica navigationStart se descuenta de las métricas de marca temporal para obtener valores relativos. Todos los valores de marca temporal se expresan en milisegundos.

Los eventos de navegación contienen las siguientes propiedades.

Nombre Tipo Descripción Notas

initiatorType

Cadena

Representa el tipo de recurso que inició el evento de rendimiento.

Valor: “navegación”

Nivel 1: “navegación”

Nivel 2: entryData.initiatorType

navigationType

Cadena

Representa el tipo de navegación.

Este atributo no es obligatorio.

Valor: este valor tiene que ser uno de los siguientes:

  • navigate es una navegación que se inicia al elegir un enlace, ingresar una URL en la barra de direcciones de un navegador, enviar formularios o inicializar mediante una operación de script que no sea reload ni back_forward .

  • reload es una navegación a través de la operación de recarga del navegador o location.reload() .

  • back_forward es una navegación a través de la operación transversal del historial del navegador.

  • prerender es una navegación iniciada por un hint de prerender. Para obtener más información, consulte Prerender.

startTime

Número

Indica cuándo se desencadena el evento.

Valor: 0

Nivel 1: entryData.navigationStart - entryData.navigationStart

Nivel 2: entryData.startTime

unloadEventStart

Número

Indica la hora en la que el documento previo de la ventana comenzó a descargarse tras el lanzamiento del evento de unload (descarga).

Valor: si no hay un documento previo o si el documento previo o uno de los redireccionamientos necesarios no son del mismo origen, el valor devuelto será 0.

Nivel 1:

entryData.unloadEventStart > 0 ? entryData.unloadEventStart - entryData.navigationStart : 0

Nivel 2: entryData.unloadEventStart

promptForUnload

Número

El tiempo que tarda en descargar el documento. En otras palabras, el tiempo entre unloadEventStart y unloadEventEnd. UnloadEventEnd representa el momento en milisegundos en el que el controlador de eventos de descarga finaliza.

Valor: si no hay un documento previo o si el documento previo o uno de los redireccionamientos necesarios no son del mismo origen, el valor devuelto será 0.

Nivel 1: entryData.unloadEventEnd - entryData.unloadEventStart

Nivel 2: entryData.unloadEventEnd - entryData.unloadEventStart

redirectCount

Número

Número que representa la cantidad de redirecciones desde la última navegación sin redirección en el contexto de búsqueda actual.

Este atributo no es obligatorio.

Valor: si no hay redirección o si hay alguna redirección que no sea del mismo origen que el documento de destino, el valor devuelto será 0.

Nivel 1: no disponible

Nivel 2: entryData.redirectCount

redirectStart

Número

El momento en que se inicia la primera redirección HTTP.

Valor: si no hay redirección o si hay alguna redirección que no sea del mismo origen que el documento de destino, el valor devuelto será 0.

Nivel 1:

entryData.redirectStart > 0 ? entryData.redirectStart - entryData.navigationStart : 0

Nivel 2: entryData.redirectStart

redirectTime

Número

El tiempo que tarda la redirección HTTP. Esta es la diferencia entre redirectStart y redirectEnd.

Nivel 1: entryData.redirectEnd - entryData.redirectStart

Nivel 2: entryData.redirectEnd - entryData.redirectStart

workerStart

Número

Esta es una propiedad de la interfaz PerformanceResourceTiming. Marca el comienzo de la operación de subprocesos de trabajo.

Este atributo no es obligatorio.

Valor: si ya se está ejecutando un subproceso de Service Worker o inmediatamente antes de iniciar el subproceso de Service Worker, esta propiedad devuelve la hora inmediatamente antes de despachar FetchEvent. Devuelve 0 si un Service Worker no intercepta el recurso.

Nivel 1: no disponible

Nivel 2: entryData.workerStart

workerTime

Número

Si un Service Worker intercepta el recurso,esto devuelve el tiempo necesario para la operación de subprocesos de trabajo.

Este atributo no es obligatorio.

Nivel 1: no disponible

Nivel 2:

entryData.workerStart > 0 ? entryData.fetchStart - entryData.workerStart : 0

fetchStart

Número

La hora en la que el navegador está listo para recuperar el documento mediante una solicitud HTTP. Esto es antes de comprobar la caché de cualquier aplicación.

Nivel 1:

: entryData.fetchStart > 0 ? entryData.fetchStart - entryData.navigationStart : 0

Nivel 2: entrydata.fetchStart

domainLookup

Número

Hora en la que se inicia la búsqueda de dominios.

Valor: si se utiliza una conexión persistente o si la información se almacena en una caché o en un recurso local, el valor será el mismo que el de fetchStart.

Nivel 1:

entryData.domainLookupStart > 0 ? entryData.domainLookupStart - entryData.navigationStart : 0

Nivel 2: entryData.domainLookupStart

DNS

Número

El tiempo necesario para la búsqueda de dominios.

Valor: si los recursos y los registros DNS se almacenan en la caché, el valor esperado será 0.

Nivel 1: entryData.domainLookupEnd - entryData.domainLookupStart

Nivel 2: entryData.domainLookupEnd - entryData.domainLookupStart

nextHopProtocol

Cadena

Cadena que representa el protocolo de red que se utiliza para obtener el recurso.

Este atributo no es obligatorio.

Nivel 1: no disponible

Nivel 2: entryData.nextHopProtocol

connectStart

Número

Tiempo inmediatamente antes de que el agente de usuario comience a establecer la conexión con el servidor para recuperar el documento.

Valor: si se utiliza una conexión persistente RFC2616 o si el documento actual se recupera desde cachés de aplicaciones o recursos locales relevantes, este atributo devuelve el valor de domainLookupEnd.

Nivel 1:

entryData.connectStart > 0 ? entryData.connectStart - entryData.navigationStart : 0

Nivel 2: entryData.connectStart

connect

Número

Mide el tiempo necesario para establecer las conexiones de transporte o para realizar la autenticación SSL. También incluye el tiempo bloqueado que se tarda cuando hay demasiadas solicitudes simultáneas emitidas por el navegador.

Nivel 1: entryData.connectEnd - entryData.connectStart

Nivel 2: entryData.connectEnd - entryData.connectStart

secureConnectionStart

Número

Si el esquema de URL de la página actual es “https”, este atributo devuelve el tiempo inmediatamente antes de que el agente de usuario inicie el proceso de enlace para proteger la conexión actual. Si no se utiliza HTTPS, devuelve 0. Para obtener más información sobre los esquemas de URL, consulte.URL representation (Representación de URL).

Fórmula: entryData.secureConnectionStart

tlsTime

Número

El tiempo que lleva completar un enlace SSL.

Nivel 1:

entryData.secureConnectionStart > 0 ? entryData.connectEnd - entryData.secureConnectionStart : 0

Nivel 2:

entryData.secureConnectionStart > 0 ? entryData.connectEnd - entryData.secureConnectionStart : 0

requestStart

Número

Tiempo inmediatamente antes de que el agente de usuario comience a solicitar el recurso del servidor, de las memorias caché de aplicaciones pertinentes o de recursos locales.

Nivel 1:

: entryData.requestStart > 0 ? entryData.requestStart - entryData.navigationStart : 0

Nivel 2: entryData.requestStart

timeToFirstByte

Número

Tiempo que tarda en recibir el primer byte de información después de haber realizado una solicitud. Esta vez es relativa a la startTime.

Nivel 1: entryData.responseStart - entryData.requestStart

Nivel 2: entryData.responseStart - entryData.requestStart

responseStart

Número

Hora inmediatamente después de que el analizador HTTP del agente de usuario recibe el primer byte de la respuesta de las memorias caché de aplicaciones pertinentes, de recursos locales o del servidor.

Nivel 1:

entryData.responseStart > 0 ? entryData.responseStart - entryData.navigationStart : 0

Nivel 2: entryData.responseStart

responseTime

Cadena

Tiempo que tarda en recibir una respuesta completa en forma de bytes de las memorias caché de aplicaciones pertinentes, de recursos locales o del servidor.

Nivel 1:

entryData.responseStart > 0 ? entryData.responseEnd - entryData.responseStart : 0

Nivel 2:

entryData.responseStart > 0 ? entryData.responseEnd - entryData.responseStart : 0

domInteractive

Número

El momento en el que el analizador finaliza su trabajo en el documento principal y se construye el DOM en HTML. En este momento, el Document.readyState cambia a “interactivo” y se genera el evento readystatechange correspondiente.

Nivel 1:

entryData.domInteractive > 0 ? entryData.domInteractive - entryData.navigationStart : 0

Nivel 2: entryData.domInteractive

domContentLoadedEventStart

Número

Representa el valor de tiempo igual al tiempo inmediatamente anterior a que el agente de usuario active el evento DOMContentLoaded en el documento actual. El evento DOMContentLoaded se activará cuando el documento HTML inicial se haya cargado y analizado por completo. En ese momento, el documento HTML principal habrá terminado de analizar, el navegador comenzará a construir el render tree y los subrecursos aún deberán cargarse. Esto no esperará a que finalicen de cargar las hojas de estilo, las imágenes y los submarcos.

Nivel 1:

entryData.domContentLoadedEventStart > 0 ? entryData.domContentLoadedEventStart - entryData.navigationStart : 0

Nivel 2: entryData.domContentLoadedEventStart

domContentLoaded

Número

Esta hora de inicio y fin de la construcción del render tree está marcada por domContentLoadedEventStart y domContentLoadedEventEnd. Permite que CloudWatch RUM realice un seguimiento de la ejecución. Esta propiedad es la diferencia entre domContentLoadedStart y domContentLoadedEnd.

Durante este tiempo, DOM y CSSOM están listos. Esta propiedad espera la ejecución del script, excepto los scripts asíncronos y creados dinámicamente. Si los scripts dependen de hojas de estilo, también domContentLoaded espera a las hojas de estilo. No espera a las imágenes.

nota

Los valores reales de domContentLoadedStart y domContentLoadedEnd se aproximan a domContentLoaded en el panel Red de Google Chrome. Indica el tiempo de construcción del render tree HTML DOM + CSSOM desde el principio del proceso de carga de la página. En el caso de las métricas de navegación, el valor domContentLoaded representa la diferencia entre los valores inicial y final, que es el tiempo necesario para descargar los subrecursos y la construcción del render tree únicamente.

Nivel 2: entryData.domContentLoadedEventEnd - entryData.domContentLoadedEventStart

Nivel 2: entryData.domContentLoadedEventEnd - entryData.domContentLoadedEventStart

domComplete

Número

La hora inmediatamente anterior a que el navegador establezca la disponibilidad del documento actual para que se complete. En este momento, se ha completado la carga de subrecursos, como las imágenes. Esto incluye el tiempo que tarda en descargar contenido bloqueado como CSS y JavaScript sincrónico. Esto se aproxima a loadTime en el panel de Red de Google Chrome.

Nivel 1:

entryData.domComplete > 0 ? entryData.domComplete - entryData.navigationStart : 0

Nivel 2: entryData.domComplete

domProcessingTime

Número

Tiempo total entre la respuesta y el inicio del evento de carga.

Nivel 1: entryData.loadEventStart - entryData.responseEnd

Nivel 2: entryData.loadEventStart - entryData.responseEnd

loadEventStart

Número

La hora inmediatamente anterior a que se active el evento de load (carga) del documento actual.

Nivel 1:

entryData.loadEventStart > 0 ? entryData.loadEventStart - entryData.navigationStart : 0

Nivel 2: entryData.loadEventStart

loadEventTime

Número

La diferencia entre loadEventStart y loadEventEnd. Durante este tiempo se activarán funciones o lógica adicionales que aguardan este evento de carga.

Nivel 1: entryData.loadEventEnd - entryData.loadEventStart

Nivel 2: entryData.loadEventEnd - entryData.loadEventStart

Duración

Cadena

La duración es el tiempo total de carga de la página. Registra el tiempo de descarga de la página principal y todos sus subrecursos sincrónicos, así como el tiempo para renderizar la página. Los recursos asincrónicos, como los scripts, continúan descargándose más adelante. Esta es la diferencia entre el loadEventEnd y startTime propiedades.

Nivel 1: entryData.loadEventEnd - entryData.navigationStart

Nivel 2: entryData.duration

headerSize

Número

Devuelve la diferencia entre transferSize y encodedBodySize.

Este atributo no es obligatorio.

Nivel 1: no disponible

Nivel 2: entryData.transferSize - entryData.encodedBodySize

Nivel 2: entryData.transferSize - entryData.encodedBodySize

compressionRatio

Número

La proporción de encodedBodySize y decodedBodySize. El valor de encodedBodySize es el tamaño comprimido del recurso, sin incluir los encabezados HTTP. El valor de decodedBodySize es el tamaño descomprimido del recurso, sin incluir los encabezados HTTP.

Este atributo no es obligatorio.

Nivel 1:No disponible.

Nivel 2:

entryData.encodedBodySize > 0 ? entryData.decodedBodySize / entryData.encodedBodySize : 0

navigationTimingLevel

Número

La versión de la API de temporización de navegación.

Valor: 1 o 2

Esquema de eventos de recursos

Los eventos de recursos se recopilan solo si el monitor de aplicaciones tiene activada la telemetría de rendimiento.

Las métricas de marca temporal se basan en The DOMHighResTimeStamp typedef. Con las API de nivel 2, todas las temporizaciones son relativas a la startTime de forma predeterminada. Sin embargo, para las API de nivel 1, la métrica de navigationStart se resta de las métricas de marca temporal para obtener valores relativos. Todos los valores de marca temporal se expresan en milisegundos.

Los eventos de recursos que genera el agente contienen las siguientes propiedades.

Nombre Tipo Descripción Notas

targetUrl

Cadena

Devuelve la URL del recurso.

Fórmula: entryData.name

initiatorType

Cadena

Representa el tipo de recurso que inició el evento de recurso de rendimiento.

Valor: “recurso”

Fórmula: entryData.initiatorType

Duración

Cadena

Devuelve la diferencia entre las propiedades de responseEnd y startTime.

Este atributo no es obligatorio.

Fórmula: entryData.duration

transferSize

Número

Devuelve el tamaño (en octetos) del recurso recuperado, incluidos los campos de encabezado de respuesta y el cuerpo de la carga de la respuesta.

Este atributo no es obligatorio.

Fórmula: entryData.transferSize

fileType

Cadena

Extensiones derivadas del patrón de URL de destino.

Esquema del evento Largest Contentful Paint

Los eventos Largest Contentful Paint incluyen las siguientes propiedades.

Estos eventos se recopilan solo si el monitor de aplicaciones tiene activada la telemetría de rendimiento.

Nombre Descripción

Valor

Para obtener más información, consulte Web vitals.

Primer evento de retardo de entrada

Los primeros eventos de retardo de entrada contienen las siguientes propiedades.

Estos eventos se recopilan solo si el monitor de aplicaciones tiene activada la telemetría de rendimiento.

Nombre Descripción

Valor

Para obtener más información, consulte Web vitals.

Evento de cambio de diseño acumulativo

Los eventos de cambio de diseño acumulativos contienen las siguientes propiedades.

Estos eventos se recopilan solo si el monitor de aplicaciones tiene activada la telemetría de rendimiento.

Nombre Descripción

Valor

Para obtener más información, consulte Web Vitals.

Evento HTTP

Los eventos HTTP pueden contener las siguientes propiedades. Contendrá un campo Response (respuesta) o Error (error), pero no ambos.

Estos eventos se recopilan solo si el monitor de aplicaciones tiene activada la telemetría HTTP.

Nombre Descripción

Solicitud

La solicitud incluye lo siguiente:

  • El campo Method, que puede tener valores como GET, POST, etc.

  • La URL

Respuesta

La respuesta incluye lo que se detalla a continuación:

  • Estado, como 2xx, 4xx o 5xx

  • Texto de estado

Error

El campo de error incluye lo que se detalla a continuación:

  • Tipo

  • Mensaje

  • Nombre de archivo

  • Número de fila

  • Número de columna

  • Seguimiento de pila

Esquema de eventos de seguimiento de X-Ray

Estos eventos se recopilan solo si el monitor de la aplicación tiene activado el seguimiento de X-Ray.

Para obtener información sobre esquemas de eventos de seguimiento de X-Ray, consulte Documentos de segmentos de AWS X-Ray.