Avec l'agent Python , vous pouvez ajouter monitoring des navigateurs à vos pages Web automatiquement ou manuellement. Pour activer dans l'interface utilisateur, suivez les procédures d'installation de l'agent de navigateur. Suivez ensuite les procédures de cette section pour configurer l’agent Python.
Pour utiliser l'agent navigateur avec votre agent Python , assurez-vous d'avoir la dernière version. Pour plus d'informations, consultez les instructions d'installation de l'agent.
Prise en charge de l'instrumentation automatique
L'agent Python prend uniquement en charge l'instrumentation automatique pour les applications WSGI hébergées directement sur un serveur WSGI dédié avec une interface WSGI native, et où l'application WSGI renvoie la réponse de la page HTML via un itérable/générateur.
L'instrumentation automatique nécessite un serveur WSGI dédié.
- Les serveurs WSGI tels que Apache/mod_wsgi, gunicorn et uWSGI sont pris en charge.
- L'utilisation d'adaptateurs WSGI sur le framework Tornado ou Twisted n'est pas prise en charge.
L'agent Python ne prend pas en charge l'insertion d'instrumentation lors de l'utilisation du rappel write()
renvoyé par la fonction WSGI start_response()
pour réécrire la réponse de la page HTML. Pour plus d'informations sur les exigences relatives à instrumentation automatique, consultez dépannage navigateur instrumentation en Python.
Utiliser une instrumentation automatique
L'agent Python peut ajouter automatiquement l'agent JavaScript du navigateur à toutes les réponses de page HTML. Pour les applications WSGI, l'agent utilise un middleware WSGI installé dans le pipeline de requête. Étant donné que le middleware est au niveau WSGI , instrumentation automatique devrait fonctionner pour n'importe quelle application WSGI , quel que soit le framework Web que vous utilisez, y compris les frameworks Web Python populaires tels que Django, Flask et Pyramid.
Désactiver l'instrumentation pour des pages spécifiques
Si vous souhaitez utiliser instrumentation automatique, mais que vous avez une réponse de page HTML que vous ne souhaitez pas instrumenter, vous pouvez désactiver instrumentation pour cette requête. Ajoutez cet appel d’API d’agent Python dans le code de ce gestionnaire de requêtes :
newrelic.agent.disable_browser_autorum()
Si vous utilisez un serveur WSGI qui autorise configuration par requête, comme Apache/mod_wsgi, vous pouvez également désactiver instrumentation automatique en définissant la clé newrelic.disable_browser_autorum
pour cette requête dans le dictionnaire d'environnement WSGI transmis à votre application de monitoring.
Par exemple, si vous utilisez Apache/mod_wsgi, vous pouvez désactiver l'instrumentation automatique en filtrant sur l'URL :
<Location /login>SetEnv newrelic.disable_browser_autorum true</Location>
Activer manuellement monitoring des navigateurs pour des pages spécifiques
Vous pouvez ajouter manuellement une instrumentation de navigateur à des pages spécifiques. Cela est utile, par exemple, si l'instrumentation automatique n'est pas possible pour votre application, si vous utilisez une politique de sécurité de contenu non ced ou si vous souhaitez collecter des données de navigateur uniquement pour des pages spécifiques.
Les appels dans cette procédure doivent être placés sur la requête every que vous souhaitez monitorer. Vous cannot appelez ces fonctions une fois au niveau global et mettez en cache le résultat pour une utilisation ultérieure.
Important
À partir de la version 9.4.0+ de Python Agent, l'API get_browser_timing_footer
est obsolète et renvoie toujours une chaîne vide. La fonctionnalité précédente de get_browser_timing_footer()
est désormais incluse dans get_browser_timing_header()
.
Sur les anciennes versions de l'agent, le pied de page est requis pour charger l'agent du navigateur.
Désactiver l'instrumentation automatique : Dans le fichier newrelic.ini , définissez
browser_monitoring.auto_instrument
surfalse
.Redémarrez votre application.
Placez ces appels dans le gestionnaire de requêtes de la page every que vous souhaitez monitorer :
import newrelic.agentheader = newrelic.agent.get_browser_timing_header()# The footer is required on Python Agent versions 9.3.0 and below.footer = newrelic.agent.get_browser_timing_footer()Transmettez les variables
header
et éventuellementfooter
à la réponse HTML.Sur la page correspondante, insérez la variable
header
dans l'élément<head>
. Placez la variableheader
après n'importe quelle propriétécharset
ou n'importe quelle balise méta pourhttp-equiv
avec une valeur deX-UA-Compatible
.Si nécessaire, insérez la variable
footer
avant la fin de l'élément<body>
.
Attendez quelques minutes, puis vérifiez les données monitoring de vos navigateurs. Si aucune donnée n'apparaît après quelques minutes d'attente, consultez dépannage navigateur instrumentation en Python.
Prise en charge des nonces CSP
L'utilisation de CSP Nonce dans notre instrumentation de navigateur est prise en charge dans la version 9.4.0+ de l'agent Python. Pour utiliser un nonce avec l'instrumentation du navigateur, vous devez désactiver monitoring de l'auto-instrumentation des navigateurs et utiliser l'instrumentation manuelle via l'API de l'agent.
Vous pouvez désormais transmettre un nonce en tant qu’argument dans la méthode API pour permettre à l’agent d’insérer le nonce dans l’instrumentation du navigateur.
Désactiver l'instrumentation automatique : Dans le fichier
newrelic.ini
, définissezbrowser_monitoring.auto_instrument
surfalse
.Redémarrez votre application.
Placez ces appels dans le gestionnaire de requêtes de la page every que vous souhaitez monitorer, en remplaçant « NONCE » par votre nonce CSP :
import newrelic.agentheader = newrelic.agent.get_browser_timing_header("NONCE")Transmettez la variable
header
à la réponse HTML.Sur la page correspondante, insérez la variable
header
dans l'élément<head>
. Placez la variableheader
après n'importe quelle propriétécharset
ou n'importe quelle balise méta pourhttp-equiv
avec une valeur deX-UA-Compatible
.