• EnglishEspañol日本語한국어Português
  • EntrarComeçar agora

Esta tradução de máquina é fornecida para sua comodidade.

In the event of any inconsistency between the English version and the translated version, the English versionwill take priority. Please visit this page for more information.

Criar um problema

Mudanças de rota ausentes com o agente SPA

Problema

Você está usando o agente Pro + SPA, mas não está vendo toda a interação do browser route change esperada.

Estamos cientes de que isso pode ser frustrante. Nosso objetivo contínuo é melhorar a funcionalidade do recurso SPA, tornando-o mais simples e confiável, começando pelos métodos que utilizamos para detectar e capturar alterações de rota.

Solução

Soluções de curto prazo

Para garantir que todas as alterações de rota sejam capturadas, você pode usar nossa API de interação () do SPA. O uso da API de interação categorizará o evento BrowserInteraction (no atributo category ) como custom em vez de uma alteração route se nenhuma alteração de rota for de fato detectada.

Se sua framework estiver expondo eventos que representam a atividade do roteador, você poderá usar instrumentação personalizada nesses eventos. Aqui está um exemplo usando nossa API com o roteador Angular:

router.events.subscribe((event: Event) => {
if (event instanceof NavigationStart) {
let i = newrelic.interaction();
i.setName(event.url);
i.save();
}
});

Neste exemplo, o objeto router é uma instância do roteador Angular (do módulo @angular/router ). A chamada setName define o atributo name do evento BrowserInteraction para o novo URL e a chamada save garante que a interação seja capturada. Você precisará adaptar isso às necessidades da framework da sua própria aplicação.

Se sua framework não fornecer eventos de roteamento, você poderá adicionar este código no manipulador de eventos do evento de interação original, como click):

myButton.addEventListener('click', function() {
let i = newrelic.interaction();
i.setName('new URL');
i.save();
});

Recommendation: Se você não tiver acesso ao evento do roteador nem ao manipulador de eventos de interação, implemente isso o mais rápido possível no código que você sabe ser o resultado de uma interação do usuário.

Uma alternativa ao uso da API SPA é capturar rotas como evento PageAction . O eventoPageAction pode ser usado para capturar quaisquer dados personalizados. Recomendamos esta opção como alternativa caso o uso da API de interação SPA não funcione conforme o esperado ou para separar completamente a instrumentação personalizada do evento BrowserInteraction integrado.

Ambas as soluções podem garantir que esses eventos sejam capturados, seja como um evento BrowserInteraction ou como um evento PageAction . No entanto, eles não abordarão a gravação da duração correta e as chamadas AJAX relacionadas.

Apoiar

Se esta solução não resolver o seu problema, registre um ticket de suporte e tenha as seguintes informações disponíveis:

  • Para situações em que você vê a maioria das alterações de rota, mas nenhuma para uma alteração de rota específica esperada, tente avaliar a diferença na implementação do código para essa rota específica. Há algo fora do padrão ou exclusivo nessa rota que você poderia fornecer à nossa equipe de suporte?
  • Documente a estrutura e qualquer biblioteca que possa ser de interesse. Se este for um problema novo, alguma coisa mudou em seu ambiente que fez com que essas interações repentinamente não fossem rastreadas?
  • Observe a versão do agente browser que você está usando. Se você estiver com mais do que alguns lançamentos atrasados, recomendamos que você atualize para a versão mais recente, pois podemos já ter resolvido um problema semelhante.
  • Esteja ciente de que devido à complexidade do diagnóstico desses problemas, a equipe provavelmente precisará de acesso a um ambiente e código que demonstre o problema para testes e pesquisas.

Causa

O agente browser tenta ser independente framework , bem como oferecer suporte às práticas de codificação recomendadas. No entanto, muitas vezes há casos extremos que serão perdidos e que farão com que você não colete as alterações de rota esperadas. A implementação é baseada no instrumento mais comum API do browser assíncrono. Há casos em que um aplicativo web utiliza alguma API assíncrona ou utiliza código personalizado ou de terceiros que não instrumentamos, e isso pode resultar em alterações de rota imprecisas ou perdidas.

Copyright © 2024 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.