Problème
Vous ne voyez pas les données AJAX pour votre application de navigateur.
Solution
Si votre application est instrumentée avec et collecte correctement les données pour d'autres fonctionnalités Pro, suivez ces étapes :
Vérifiez que la page est instrumentée
Si vous utilisez XMLHttpRequest, utilisez la console de développement de votre navigateur pour vérifier que la page a été correctement instrumentée. Entrez XMLHttpRequest
et/ou fetch
dans la console. Si l'instrumentation échoue, vous verrez quelque chose comme :
// XMLHttpRequestƒ XMLHttpRequest() { [native code] }
Si vous voyez autre chose, la vérification a réussi.
Vérifiez que l'instrumentation AJAX est activée
L'instrumentation AJAX n'est pas incluse dans l'agent Lite.
Pour vérifier l'instrumentation AJAX :
Ouvrez l’outil de développement de la console de votre navigateur et vérifiez l’objet
newrelic.initializedAgents
. Cet objet contient une entrée pour chaque agent exécuté sur la page. Il n'y a généralement qu'un seul agent sur une page.Inspectez l’objet agent initialisé pour un objet
runtime
. Cet objet contient des informations sur l'agent en cours d'exécution commeloaderType
. SiloaderType
estlite
, l’instrumentation AJAX n’est pas incluse dans l’agent utilisé.Si
loaderType
n'est paslite
, vous pouvez également vérifier l'agent initialisé pour les objetsconfig
etfeatures
.- L'objet
config
contiendra la configuration d'exécution de l'agent, y compris un objetajax
avec un booléenenabled
. - L'objet
features
doit contenir une entrée pour chaque fonctionnalité initialisée par l'agent, y compris une entréeajax
.
- L'objet
Vérifiez que cet objet AJAX contient une entrée booléenne
enabled
parmitrue
etfeatAggregate
.Si l'un de ces éléments n'est pas vrai, l'instrumentation AJAX n'a peut-être pas été initialisée en raison d'un changement de configuration dans New Relic sur l'entité du navigateur ou éventuellement d'une modification manuelle de l'objet
NREUM.init
qui a été copié et collé dans le HTML.Important
newrelic.initializedAgents
est la propriété acceptée pour vérifier l'existence de l'agent sur une page, sauf si vous utilisez une version d'agent ancienne ou non prise en charge.
Vérifier la configuration de la liste de refus
L'agent peut être configuré pour ignorer certains domaines et chemins lors de la création d'un événement AjaxRequest.
Utilisez la console de développement de votre navigateur pour vérifier les règles actuelles de la liste de refus AJAX en exécutant newrelic.init
. Recherchez une propriété ajax
contenant un éventail appelé deny_list
.
Si vous voyez des entrées dans la liste de refus qui ne vous sont pas familières ou qui entraînent le filtrage des appels AJAX, consultez la documentation de l'événement Filter AjaxRequest pour plus d'informations.
Vérifier l'accès au réseau
Si l'objet est correctement instrumenté, essayez de déclencher un appel AJAX dans votre application tout en monitoring le trafic réseau dans les outils développeurs du navigateur. Attendez jusqu'à une minute et recherchez un appel à bam.nr-data.net/jserrors
avec un paramètre xhr
. Si l’appel échoue, vérifiez les problèmes de réseau. Vous pouvez également rechercher une requête à bam.nr-data.net/events
avec une charge utile commençant par bel.7;2
.
Si vous ne voyez pas cet appel, s'il échoue avec une erreur non liée à l'accès au réseau ou s'il réussit mais que vous ne voyez toujours pas de données, continuez à parcourir la documentation de dépannage.
Découvrez comment JSONP affecte requests
Si vos requests utilisent JSONP, ces requests n'apparaîtront pas sur la page UI AJAX.
Cependant, vous pouvez les visualiser comme des actifs dans la trace de session.
Si vous utilisez monitoring SPA, vous pouvez les afficher dans l'onglet AJAX de la page Page views.
Conditions requises pour que le JSONP soit reconnu :
- Chaque requête JSONP doit utiliser une fonction de rappel unique. La bibliothèque la plus populaire (comme jQuery) génère dynamiquement une fonction de rappel unique pour chaque requête.
- La chaîne de requête contenant le nom de la fonction de rappel doit être nommée
"callback"
ou"cb"
pour être reconnue par New Relic. Il s'agit du comportement par défaut dans la plupart des bibliothèques populaires.
Conseil
Si l'une de ces étapes de dépannage échoue ou si vous rencontrez toujours des problèmes avec des données AJAX manquantes, obtenez de l'aide sur support.newrelic.com.