Dépannage de l'injection d'agent de navigateur APM
Les utilisateurs peuvent rencontrer diverses erreurs lors de la configuration de l'injection de l'agent de navigateur APM. Les causes et les actions recommandées pour ces erreurs sont répertoriées ci-après.
La page n'est pas automatiquement injectée avec l'agent du navigateur
Causes possibles :
-
L'injection d'agent de navigateur APM n'est pas activée correctement.
Action : vérifiez comment activer la fonction. Pour plus de détails, reportez-vous à la section Enable APM Browser Agent Injection.
-
Le serveur d'applications n'est pas pris en charge par APM.
Action : confirmez que le serveur d'applications est pris en charge en consultant la matrice de certification OCI APM.
-
La page n'est pas prise en charge par le serveur d'applications sur lequel l'agent APM est exécuté.
Action : vérifiez si la page est réellement traitée par le serveur d'applications sur lequel l'agent APM est exécuté.-
Si la page est utilisée à partir d'un cache (par exemple, CDN) ou d'un serveur Web (par exemple, Oracle HTTP Server ou Apache), le serveur de contenu doit disposer de la page injectée.
-
Si la page est mise en cache par le navigateur, essayez d'effectuer une actualisation complète (par exemple, Maj et Recharger) ou effacez le cache de votre navigateur.
-
-
Vérifiez si la page HTML contient du code HTML "valide". Le consortium W3C comporte de nombreuses règles et validateurs que vous pouvez vérifier la validité de la page.
Action : Voici quelques méthodes simples de vérification :-
Dans votre navigateur, affichez la source de la page et vérifiez qu'elle commence par "
<html
", "<!--
" ou "<!doctype html
".S'il commence par une autre balise et que vous devez forcer l'injection, vous pouvez ajouter cette balise au paramètre "
valid_html_start
" dans le fichierProbeConfig.acml
. -
A l'aide des outils de développement de votre navigateur, vérifiez si l'en-tête "Content-Type" de la réponse HTTP contient "text/html".
-
- Si aucun message d'erreur clair n'est disponible, vous pouvez effectuer les opérations suivantes :
-
Définissez le niveau de journalisation sur
DEBUG
dans le fichierAgentConfig.properties
en ajoutant le paramètre com.oracle.apm.agent.logging.level=DEBUG.Ensuite, rechargez la page dans le navigateur et recherchez les messages dans le fichier
Agent.log
contenant la chaîne "DEBUG <Filter>". -
Vérifiez le fichier
ProbeConfig.acml
et assurez-vous qu'il n'atteint aucun des paramètres d'exclusion sous la sectionINJECTION
. Examinez en particulier les paramètres configurables suivants :excluded_extensions
excluded_context_roots
excluded_patterns
-
- Informations complémentaires sur les fonctionnalités :
-
Le HTML doit être généré par un servlet ou une page JSP où l'agent Java APM est en cours d'exécution. Si vous générez du HTML dans un filtre ou via un autre mécanisme, il est peu probable qu'il fonctionne.
-
Le servlet doit passer un appel à
getOutputStream()
et écrire le HTML dans unServletOutputStream
valide OU passer un appel àgetWriter()
et écrire le HTML dans unPrintWriter
valide.Oracle InjectionFilter doit faire partie de la chaîne de servlet (ajoutée automatiquement à la chaîne de filtre de l'application). Si un autre filtre est utilisé pour le contourner, l'injection ne sera pas possible.
-
Code de transfert. L'agent doit pouvoir intercepter et injecter avant que le flux de réponse HTML ne soit transformé par :
- Transfert-Encodage : découpé en bloc.
- Transfer-Encoding : compresser.
- Transfer-Encoding : déflate.
- Transfer-Encoding : gzip.
-
Le rendu de la page a échoué
Action : commencez par désactiver l'injection de l'agent de navigateur APM à l'aide du fichier AgentConfig.properties
. Pour plus de détails, reportez-vous à la section Disable APM Browser Agent Injection. Ensuite, attendez environ une minute et réessayez la page en question. Vous n'avez pas besoin de redémarrer le serveur d'applications.