Dépannage de l'injection d'agent de navigateur APM

Les utilisateurs peuvent rencontrer diverses erreurs lors de la configuration d'injection de l'agent de navigateur APM. Les causes de ces erreurs et les actions recommandées sont listées ci-dessous.

La page n'est pas injectée automatiquement avec l'agent de navigateur

Causes possibles :

  • L'injection de l'agent du navigateur APM n'est pas activée correctement.

    Action : Vérifiez comment activer la fonction. Pour plus de détails, voir Activer l'injection d'agent de navigateur APM.

  • Le serveur d'applications n'est pas pris en charge par APM.

    Action : Vérifiez que le serveur d'applications est pris en charge en vérifiant la matrice de certification OCI APM.

  • La page n'est pas desservie par le serveur d'applications sur lequel s'exécute l'agent APM.

    Action : Vérifiez si la page est réellement servie par le serveur d'applications où l'agent APM est en cours d'exécution.
    • Si la page est desservie à partir d'un cache (par exemple, CDN) ou d'un serveur Web (par exemple, Oracle HTTP Server ou Apache), le serveur de contenu doit avoir la page injectée.

    • Si la page est mise en mémoire cache par le navigateur, essayez d'effectuer une actualisation complète (par exemple, Maj et rechargement) 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 façons simples de vérifier :
    • Dans votre navigateur, consultez la source de la page et vérifiez qu'elle commence par "<html", "<!--" ou "<!doctype html".

      Si elle commence par une autre balise et que vous devez toujours forcer l'injection, vous pouvez ajouter cette balise au paramètre "valid_html_start" dans le fichier ProbeConfig.acml.

    • À l'aide des outils de développement de votre navigateur, vérifiez si l'en-tête "Content-Type" dans la réponse HTTP contient "text/html".

  • Si aucun message d'erreur clair n'est disponible, vous pouvez effectuer les opérations suivantes :
    • Réglez le niveau de journalisation à DEBUG dans le fichier AgentConfig.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'a pas atteint les paramètres d'exclusion dans la section INJECTION. Examinez en particulier les paramètres configurables suivants :
      • excluded_extensions
      • excluded_context_roots
      • excluded_patterns
  • Informations supplémentaires sur les fonctionnalités :
    1. Le code 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 code HTML dans un filtre ou via un autre mécanisme, il est peu probable qu'il fonctionne.

    2. Le servlet doit effectuer un appel à getOutputStream() et écrire le HTML dans un fichier ServletOutputStream valide OU il doit effectuer un appel à getWriter() et écrire le HTML dans un fichier PrintWriter valide.

      Oracle InjectionFilter doit faire partie de la chaîne de servlets (ajoutée automatiquement à la chaîne de filtres de l'application). Si un autre filtre est utilisé pour le contourner, l'injection ne sera pas possible.

    3. Codage de transfert. L'agent doit pouvoir intercepter et injecter avant que le flux de réponse HTML ne soit transformé par :
      • Transfert-Encoding : fragmenté.
      • Transfert-Encoding : compress.
      • Transfer-Encoding : déflate.
      • Transfert-Encoding : gzip.

Le rendu de la page a échoué

Action : Essayez d'abord de désactiver l'injection d'agent de navigateur APM à l'aide du fichier AgentConfig.properties. Pour plus de détails, voir Désactiver l'injection d'agent de navigateur APM. Après cela, attendez environ une minute et réessayez la page en question. Il n'est pas nécessaire de redémarrer le serveur d'applications.