Configurer d'autres paramètres d'injection d'agent de navigateur APM

Une fois que cette fonction d'agent de navigateur APM est activée, il est possible de personnaliser les paramètres par défaut et d'en ajouter d'autres selon vos besoins.

Mettre à jour le fichier ProbeConfig.acml

Dans le fichier ProbeConfig.acml, une section nommée INJECTION contient des paramètres supplémentaires permettant d'ajuster la façon dont l'injection d'agent dans le navigateur est effectuée si nécessaire. Chaque paramètre comporte un commentaire expliquant ce qu'il fait.

INJECTION:
  ### Exclusion Settings ###
  # URLs that end in these extensions will be skipped for browser agent injection.
  excluded_extensions:
...
Vous pouvez utiliser ces paramètres pour :
  • Déterminez dans quelles pages l'agent du navigateur doit ou ne doit pas être injecté.

  • Emplacement dans lequel l'agent du navigateur doit être injecté.

  • Sachez comment répondre aux cas où le serveur d'applications ne fournit pas les informations nécessaires à l'injection de l'agent de navigateur. Par exemple : jeu de caractères et type MIME de la page.

Tous ces paramètres peuvent être mis à jour sans avoir à redémarrer le serveur d'applications.

Le comportement par défaut est le suivant :
  • L'agent du navigateur sera injecté après la balise <head> de la page HTML.

    Cela est contrôlé par les paramètres inject_location_tag et inject_before.

    Si le marqueur est manquant, il sera ajouté à la fin du fichier. Cela est contrôlé par le paramètre inject_mode.

  • Seuls les types MIME "text/html" et "application/xhtml+xml" seront pris en compte pour l'injection.

    Cela est contrôlé par le paramètre valid_mime_types.

  • Les URL qui se terminent notamment par des extensions de fichier telles que json, txt, gif et d'autres, ignorent l'injection de l'agent de navigateur.

    Cela est contrôlé par le paramètre excluded_extensions.

  • Les applications ayant des racines de contexte particulières ignorent l'injection d'agent dans le navigateur.

    Cela est contrôlé par le paramètre excluded_context_roots.

Mettre à jour BrowserAgentTemplate.txt

Ce fichier détermine le code HTML injecté dans la page.

Le comportement par défaut pour APM Agent 1.3 et version supérieure est le suivant :
<script type="application/javascript">
window.apmrum = (window.apmrum || {});
window.apmrum.serviceName='@@SERVICE_NAME@@';
window.apmrum.webApplication='@@WEB_APPLICATION@@';
window.apmrum.ociDataUploadEndpoint='@@UPLOAD_ENDPOINT@@';
window.apmrum.OracleAPMPublicDataKey='@@PUBLIC_KEY@@';
</script>
<script type="application/javascript"async crossorigin="anonymous"src="@@UPLOAD_ENDPOINT@@/static/jslib/apmrum.min.js"></script>

Les valeurs entourées par @@ sont remplacées avant l'injection et sont acquises à partir du fichier AgentConfig.properties.

Ce modèle peut être ajusté pour tenir compte des configurations côté agent du navigateur mentionnées dans les autres sections de cette documentation, telles que window.apmrum.rewriteRules. Pour plus d'informations, voir Masquer les informations d'identification personnelle.

Toute modification apportée à ce fichier sera automatiquement récupérée et ne nécessitera pas de redémarrage du serveur d'applications.

Mettre à jour les types MIME

Pour que l'injection réussisse le type MIME spécifié dans l'en-tête "Content-Type" de la réponse HTTP, il doit toujours contenir "text/html". Il ne devrait y avoir aucun problème/problème lorsque cet en-tête est défini correctement.

Cependant, certaines applications répondent avec un type mime incorrect ou aucun type mime. Lorsque aucun type MIME n'est fourni, l'injection de l'agent de navigateur utilise le paramètre "default_mime_type" dans le fichier ProbeConfig.acml pour décider de quoi faire. La valeur par défaut de ce paramètre est réglée à "text/plain". L'injection ne se produit donc pas dans tous les cas où l'en-tête est manquant.

Si vous voulez une injection dans ces cas, vous devez remplacer le paramètre "default_mime_type" par "text/html" par cette injection autorisée.

Dans le cas contraire, lorsque l'en-tête "Content-Type" de la réponse HTTP contient "text/html", mais que le contenu réel n'est pas HTML, nous utilisons un algorithme sophistiqué d'analyse de contenu basé sur la signature et leheurisme pour décider s'il faut l'injecter ou non. Si nous déterminons que le contenu est d'un type qui n'est pas HTML, nous n'injecterons rien dans le flux.