O trecho JavaScript do apresenta um impacto quase invisível no desempenho do site e na percepção do usuário sobre o tempo que uma página leva para carregar. O JavaScript está incluído em um pacote de dados de páginas da web que é enviado de qualquer maneira. Além disso, inicia imediatamente o monitoramento de erros e eventos à medida que o restante da página web é executado. A quantidade insignificante de sobrecarga necessária para carregar o JavaScript resulta em um retorno significativo de dados acionáveis.
Impacto geral
A sobrecarga do JavaScript leva em consideração tanto o impacto no usuário quanto o impacto no desempenho dos seus sistemas:
User perception:
Normalmente o usuário não consegue detectar degradações de desempenho em um site com menos de 200ms. O JavaScript do browser adiciona menos de 15 ms no tempo agregado por carregamento de página. Isso é dividido ao longo do tempo, portanto, em nenhum momento o usuário seria capaz de perceber qualquer impacto no desempenho devido ao JavaScript.
Webserver and systems:
O monitoramento do aplicativo browser ocorre no browser do usuário, não no servidor. O tempo de processamento não afeta o consumo da CPU.
Além disso, tomamos medidas adicionais para minimizar qualquer impacto potencial nos aplicativos e páginas da web monitorados. Por exemplo, o script "loader" é carregado de forma síncrona no <HEAD>
para garantir que o monitoramento esteja ativado durante todo o ciclo de vida da página. Esse script é incluído em linha, o que elimina a necessidade de outra solicitação de rede de ida e volta para uma rede de distribuição de conteúdo (CDN). O "carregador" vem com o carregamento inicial da página.
Posteriormente no ciclo de vida da página, o New Relic carrega scripts de monitoramento adicionais de forma assíncrona. Esses scripts não devem ter nenhum efeito perceptível para o usuário e estão incluídos na sobrecarga geral de menos de 15 ms por página.
Impacto na rede
O monitoramento do browser também minimiza o tráfego de rede para o usuário final, agregando dados localmente (no cliente) e enviando-os de volta para a New Relic em intervalos periódicos e nos eventos do ciclo de vida da página load
, unload
, pageshow
e pagehide
. (Durante os períodos ociosos da sessão do browser, as transmissões podem não ser necessárias.)
Script do agente browser
O agente consiste em múltiplos scripts para reduzir o tamanho inicial do "loader" e para suportar o carregamento apenas do JavaScript necessário para suportar os recursos do agente que estão habilitados. O primeiro script, o "loader", é inserido in-line no documento HTML. Os scripts restantes são baixados da rede de distribuição de conteúdo (js-agente.newrelic.com) quando o evento de ciclo de vida da página load
acontece. O número de scripts carregados depende do tipo de agente que está sendo usado. Descubra mais sobre os tipos de browsers de agentes aqui.
Script | Lite | Pró | Pró + SPA |
---|---|---|---|
Tamanho do script embutido | 10,2 KB | 15,5 KB | 17,5 KB |
Tamanho do script baixado | 15,3 KB | 21 KB | 25,4 KB |
Os tamanhos são baseados em script reduzido usando compactação gzip.
Colheitas do agente browser
Tipo de dados | Lite | Pró | Pró + SPA | Frequência de colheita |
---|---|---|---|---|
Evento PageView | sim | sim | sim |
|
Evento PageViewTiming | sim | sim | sim |
|
Métrica de erro JavaScript | não | sim | sim |
|
Métrica Ajax | não | sim | sim | Enviado junto com JavaScriptError métrica como dados da fração de tempo. |
Evento AjaxRequest | não | sim | sim |
|
Rastreamento da sessão | não | sim | sim | Os dados de rastreamento da sessão são coletados após o evento de ciclo de vida da página |
Session Replay | não | sim | sim | Os eventos Session Replay são coletados quando ocorre uma das seguintes situações:
|
Evento PageAction | não | sim | sim |
|
Evento de interação do browser | não | não | sim |
|