El fragmento de JavaScript de introduce un impacto casi invisible en el rendimiento del sitio web y en la percepción del usuario sobre el tiempo que tarda una página en cargarse. El JavaScript está incluido en un paquete de datos de una página web que se envía de todos modos. Además, inmediatamente comienza a monitorear errores y eventos mientras se ejecuta el resto de la página web. La insignificante cantidad de gastos generales necesarios para cargar JavaScript da como resultado un retorno significativo de datos accionables.
Impacto general
La sobrecarga de JavaScript tiene en cuenta tanto el impacto en el usuario como el impacto en el rendimiento de sus sistemas:
- User perception: Normalmente, el usuario no puede detectar degradaciones de rendimiento en un sitio web de menos de 200 ms. El JavaScript del browser agrega menos de 15 ms en tiempo agregado por carga de página. Esto se divide a lo largo del tiempo, por lo que en ningún momento un usuario podrá percibir ningún impacto en el rendimiento debido a JavaScript.
- Webserver and systems: El monitoreo de la aplicación browser ocurre en el browser del usuario, no en el servidor. El tiempo de procesamiento no tiene un impacto en el consumo de CPU.
Además, tomamos medidas adicionales para minimizar cualquier impacto potencial en las aplicaciones y páginas web que se monitorean. Por ejemplo, el script "cargador" se carga sincrónicamente en <HEAD>
para garantizar que el monitoreo esté habilitado durante todo el ciclo de vida de la página. Este script se incluye en línea, lo que elimina la necesidad de realizar otra solicitud de red de ida y vuelta a una red de entrega de contenido (CDN). El "cargador" viene con la carga inicial de la página.
Más adelante en el ciclo de vida de la página, New Relic carga un script de monitoreo adicional de forma asíncrona. Estos scripts no deberían tener ningún efecto perceptible para el usuario y están incluidos en la sobrecarga general de menos de 15 ms por página.
Impacto de la red
El monitoreo del navegador también minimiza el tráfico de red para el usuario final al agregar datos localmente (en el cliente) y enviarlos de regreso a New Relic a intervalos periódicos y en los eventos del ciclo de vida de la página load
, unload
, pageshow
y pagehide
. (Durante los períodos de inactividad de la sesión browser , es posible que no se requieran transmisiones).
script del agente del navegador
El agente consta de múltiples scripts para reducir el tamaño inicial del "cargador" y soportar la carga sólo del JavaScript necesario para soportar las características del agente que están habilitadas. El primer script, el "cargador", se inserta en línea en el documento HTML. El script restante se descarga de la red de entrega de contenido (js-agente.newrelic.com) cuando ocurre el evento del ciclo de vida de la página load
. La cantidad de scripts cargados depende del tipo de agente que se esté utilizando. Obtenga más información sobre los tipos de agente del navegador aquí.
script | Lite | Pro | Profesional + SPA |
---|---|---|---|
Tamaño del script en línea | 10,2 kB | 15,5 kB | 17,5 kB |
Tamaño del script descargado | 15,3 kB | 21KB | 25,4 kB |
Los tamaños se basan en secuencias de comandos minimizadas mediante compresión gzip.
Cosechas agente del navegador
Los eventos Browser se recopilan por primera vez después de que se recopila con éxito el evento PageView y, luego, cada 30 segundos a partir de entonces. Si algún tipo de evento supera los 16 kB de datos antes de la próxima recolección programada, se activa una recolección anticipada para ese evento. Además, se produce una cosecha final cada vez que el documento pasa a hidden
a través de un evento visibilitychange
(por ejemplo, cuando un usuario navega, cambia de pestaña, cierra la pestaña, minimiza o cierra el navegador, o cambia del navegador a otra aplicación si está en un dispositivo móvil).
Tipo de datos | Lite | Pro | Profesional + SPA | Frecuencia de cosecha |
---|---|---|---|---|
Evento de visualización de página | Sí | Sí | Sí |
|
Evento PageViewTiming | Sí | Sí | Sí |
|
JavaScriptError métrica | No | Sí | Sí |
|
Ajax métrica | No | Sí | Sí | Enviado junto con JavaScriptError métrica como datos de intervalo de tiempo. |
Evento AjaxRequest | No | Sí | Sí |
|
Rastreo de sesión | No | Sí | Sí | El rastreo de sesión puede generar una gran cantidad de datos, pero eso se puede controlar mediante ejemplificación. De forma predeterminada, solo se muestrearán alrededor de 90 páginas vistas por hora para enviar datos de seguimiento de sesión. También existe la opción de establecer una frecuencia de ejemplificación personalizada. |
Session Replay | No | Sí | Sí | Además del ciclo general de recolección, las cosechas de Session Replay que incluyen snapshots y carga de metadatos se cosecharán inmediatamente. El extremo puede diferir según la ubicación, pero un ejemplo para EE. UU. sería |
Evento de acción de página | No | Sí | Sí | |
Evento de interacción del navegador | No | No | Sí |
|
Logs del browser | No | Sí | Sí | |
Evento UserAction | No | Sí | Sí | |
Eventos BrowserPerformance | No | Sí | Sí |