• /
  • EnglishEspañolFrançais日本語한국어Português
  • Se connecterDémarrer

Cette traduction automatique est fournie pour votre commodité.

En cas d'incohérence entre la version anglaise et la version traduite, la version anglaise prévaudra. Veuillez visiter cette page pour plus d'informations.

Créer un problème

Changements d'itinéraire manquants avec l'agent SPA

Problème

Vous utilisez l'agent Pro + SPA, mais vous ne voyez pas toutes les interactions du navigateur route change que vous attendez.

Nous sommes conscients que cela peut être frustrant. Notre objectif permanent est d'améliorer la fonctionnalité SPA, en la rendant plus simple et plus fiable, en commençant par les méthodes que nous utilisons pour détecter et capturer les changements d'itinéraire.

Solution

Solutions à court terme

Pour vous assurer que tous les changements d'itinéraire sont capturés, vous pouvez utiliser notre API SPA interaction(). L'utilisation de l'API d'interaction catégorisera l'événement BrowserInteraction (dans l'attribut category ) comme un changement custom plutôt que route si aucun changement d'itinéraire n'est en fait détecté.

Si votre framework expose des événements qui représentent l'activité du routeur, vous pouvez utiliser instrumentation personnalisée dans ces événements. Voici un exemple utilisant notre API avec le routeur Angular :

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

Dans cet exemple, l'objet router est une instance du routeur Angular (du module @angular/router ). L'appel setName définit l'attribut de nom de l'événement BrowserInteraction sur la nouvelle URL et l'appel save garantit que l'interaction est capturée. Vous devrez adapter cela aux besoins du framework de votre propre application.

Si votre framework ne fournit pas d'événement de routage, vous pouvez ajouter ce code dans le gestionnaire d'événements de l'événement interaction d'origine tel que click) :

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

Recommandation : si vous n'avez pas accès à l'événement du routeur ni au gestionnaire d'événements interaction, implémentez-le dès que possible dans le code dont vous savez qu'il est le résultat d'un utilisateur interaction .

Une alternative à l’utilisation de l’API SPA consiste à capturer les itinéraires en tant qu’événement PageAction . PageAction événement peut être utilisé pour capturer toutes les données personnalisées. Nous recommandons cette option comme solution de secours au cas où l'utilisation de l'API interaction SPA ne fonctionne pas comme prévu, ou pour séparer complètement l' instrumentation personnalisée de l'événement BrowserInteraction intégré.

Ces deux solutions peuvent garantir que ces événements sont capturés, soit en tant qu'événement BrowserInteraction, soit en tant qu'événement PageAction . Cependant, ils n'aborderont pas l'enregistrement de la durée correcte et les appels AJAX associés.

Soutien

Si cette solution ne résout pas votre problème, veuillez créer un ticket d'assistance et disposer des informations suivantes :

  • Pour les situations où vous constatez la plupart des changements d'itinéraire, mais aucun pour un changement d'itinéraire particulier que vous attendez, essayez d'évaluer la différence dans l'implémentation du code pour cet itinéraire particulier. Y a-t-il quelque chose de non standard ou d’unique dans cet itinéraire que vous pourriez fournir à notre équipe d’assistance ?
  • Documentez les frameworks et toute bibliothèques qui pourraient être intéressants. S’il s’agit d’un nouveau problème, quelque chose a-t-il changé dans votre environnement qui a conduit à ce que ces interactions ne soient soudainement plus suivies ?
  • Notez la version de l’agent de navigateur que vous utilisez. Si vous avez plus de quelques sorties de retard, nous vous recommandons de mettre à jour vers la dernière sortie, car nous avons peut-être déjà résolu un problème similaire.
  • Sachez qu’en raison de la complexité du diagnostic de ces problèmes, l’équipe aura probablement besoin d’accéder à un environnement et à un code qui démontrent le problème à des fins de test et de recherche.

Cause

L'agent de navigateur tente d'être indépendant framework et de prendre en charge les bonnes pratiques de codage. Cependant, il existe souvent des cas limites qui seront manqués et qui vous empêcheront de collecter les modifications d'itinéraire attendues. L'implémentation est basée sur les API de navigateur asynchrones instrumentées les plus courantes. Il existe des cas où une application Web utilise une API asynchrone ou utilise du code personnalisé ou tiers que nous n'instrumentons pas, ce qui peut entraîner des modifications d'itinéraire inexactes ou manquées.

Droits d'auteur © 2025 New Relic Inc.

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