Avec l'agent Ruby , vous pouvez injecter l'agent monitoring des navigateurs dans vos pages Web automatiquement ou manuellement. Par défaut, si l'agent Ruby détecte Javascript, il installe automatiquement .
Si vous préférez ajouter monitoring des navigateurs manuellement ou souhaitez en savoir plus sur les options d'installation de l'agent du navigateur, consultez le guide d'installation de l'agent du navigateur.
Exigences
L'instrumentation automatique du navigateur est disponible pour toutes les versions prises en charge de l'agent Ruby. Pour vous assurer que votre environnement est prêt pour instrumentation automatique, consultez le guide de compatibilité et des exigencesmonitoring des navigateurs.
Utiliser l'auto-instrumentation
configuration par défaut de New Relic permet monitoring auto-instrumentation des navigateurs :
browser_monitoring: auto_instrument: true
C'est le moyen le plus simple de monitorer l'utilisateur final. L'agent Ruby examine chaque page de votre application lors de son chargement et injecte automatiquement le JavaScript du navigateur dans l'en-tête. L'auto-instrumentation fonctionne pour les environnements utilisant Rack. Pour des raisons de performances, l'agent analyse uniquement les 50 000 premières lignes de la réponse de votre application pour le point d'instrumentation d'en-tête. Dans les cas où une tag méta X-UA-Compatible
est présente et que la tag <head>
est plus longue que 50 ko, auto-instrumentation échouera normalement.
l'auto-instrumentation recherche une tag méta X-UA-Compatible
et insère le JavaScript directement après celle-ci. Si l'auto-instrumentation ne trouve pas de tag méta X-UA-Compatible
, elle l'insérera après la tag head d'ouverture. Si ce n'est pas possible, il l'insérera après la tag d'ouverture du corps. Si l'une de ces balises est enveloppée dans des conditions ou des commentaires, l'auto-instrumentation est susceptible d'échouer.
l'auto-instrumentation ne se produira pas sur les pages avec une pièce jointe « Content-Type » ou lorsqu'elle détecte requests de streaming.
Si auto-instrumentation ne parvient pas à instrumenter correctement les pages de votre application, vous devrez instrumentmanuellement à l'aide de l'API de l'agent.
Instrumenter manuellement via API d' agent
Vous pouvez configurer manuellement monitoring finale de l'utilisateur en incluant un script approprié dans vos pages. Utilisez l'API de l'agent Ruby New Relic pour générer le script. L'API injecte ce script dans vos pages.
Par exemple, pour modifier le modèle de votre application pour appeler l'agent, utilisez :
<head> <%= ::NewRelic::Agent.browser_timing_header rescue "" %> # existing template code ...</head>
Prise en charge des nonces CSP
Si la politique de sécurité du contenu est définie sur « unsafe-inline », vous pouvez automatiquement instrumenter l'agent du navigateur. Si vous souhaitez utiliser un CSP Nonce, vous devrez peut-être ajouter une configuration manuelle.
Rails CSP Nonce
Les versions Rails 5.2+ incluent une fonctionnalité permettant de définir un nonce CSP à l'aide d'une API. Sur les versions 9.10.0+ de l'agent Ruby, le nonce Rails CSP sera automatiquement détecté et appliqué au script d'injection de l'agent du navigateur.
Vous pouvez désactiver cette fonctionnalité en mettant à jour votre newrelic.yml
comme suit :
browser_monitoring: content_security_policy_nonce: false
Ou définissez la variable d’environnement, NEW_RELIC_BROWSER_MONITORING_CONTENT_SECURITY_POLICY=false
.
appel d'API
Vous pouvez transmettre un nonce CSP à l'API NewRelic::Agent.browser_timing_header
dans les versions 7.1.0+ de l'agent Ruby.
Lorsque vous passez un nonce à cette méthode, vous devez désactiver monitoring de auto-instrumentation des navigateurs et utiliser instrumentation manuelle via l'API de l'agent.
Mettez à jour votre newrelic.yml
pour :
browser_monitoring: auto_instrument: false
Ou définissez la variable d’environnement, NEW_RELIC_BROWSER_MONITORING_AUTO_INSTRUMENT=false
.
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. Par exemple, NewRelic::Agent.browser_timing_header(nonce)
.
Dépannage
Si les données du navigateur ne sont pas signalées, affichez la source HTML et confirmez que deux blocs de script similaires à ceux suivants se trouvent dans votre en-tête HTML :
<script type="text/javascript"> window.NREUM||(NREUM={});...</script>
Si ces éléments ne sont pas présents, vérifiez :
- Les paramètres d'auto-instrumentation
- Le placement de l'instrumentation manuelle dans vos fichiers modèles
- La façon dont vous appliquez un nonce
Désactiver l'auto-instrumentation
La valeur par défaut de auto-instrument
est true
(même lorsqu'elle n'est pas spécifiée). Pour désactiver l'auto-instrumentation, définissez cet indicateur sur false
.
browser_monitoring: auto_instrument: false
Pour désactiver auto-instrumentation uniquement pour certains contrôleurs ou actions de contrôleur, utilisez newrelic_ignore_enduser
. L'instrumentation côté serveur n'est pas affectée par cet appel.