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
Os eventos Browser são coletados primeiro após o evento PageView ser coletado com sucesso e, depois, a cada 30 segundos. Se qualquer tipo de evento exceder 16 kB de dados antes da próxima coleta programada, uma coleta antecipada será acionada para esse evento. Além disso, uma colheita final ocorre sempre que o documento faz a transição para hidden
por meio de um evento visibilitychange
(por exemplo, quando um usuário sai, alterna entre guias, fecha a guia, minimiza ou fecha o navegador ou alterna do navegador para outro aplicativo se estiver em um dispositivo móvel).
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 | O rastreamento da sessão pode gerar uma grande quantidade de dados, mas isso pode ser controlado por amostragem. Por padrão, apenas cerca de 90 visualizações de página por hora serão amostradas para enviar dados trace da sessão. Também há uma opção para definir uma taxa de amostragem personalizada. |
Session Replay | não | sim | sim | Além do ciclo geral de coleta, as coletas do Session Replay que incluem snapshots e carga de metadados serão coletadas imediatamente. O endpoint pode diferir dependendo da localidade, mas um exemplo para os EUA seria |
Evento PageAction | não | sim | sim | |
Evento de interação do browser | não | não | sim |
|
Logs do navegador | não | sim | sim | |
Evento UserAction | não | sim | sim | |
Eventos BrowserPerformance | não | sim | sim |