Configurer des paramètres supplémentaires d'injection d'agent de navigateur APM

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

Mettre à jour le fichier ProbeConfig.acml

Dans le fichier ProbeConfig.acml, il existe une section appelée INJECTION avec des paramètres supplémentaires disponibles pour ajuster le mode d'injection de l'agent de navigateur si nécessaire. Chaque paramètre a 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 les pages auxquelles l'agent de navigateur doit ou ne doit pas être injecté.

  • Emplacement de la page dans laquelle 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 pour 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.

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

    Si la balise est manquante, elle sera ajoutée à la fin du fichier. Il est contrôlé par le paramètre inject_mode.

  • Seuls les types MIME " text/html " et " application/xhtml+xml " seront considérés comme injectables.

    Il 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 d'agent de navigateur.

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

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

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

Mettre à jour BrowserAgentTemplate.txt

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

Le comportement par défaut pour APM Agent 1.3 et versions supérieures 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 de @@ sont remplacées avant l'injection et sont des valeurs 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, reportez-vous à la section Hide Personally Identifiable Information.

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 doit toujours contenir "text/html". Il ne devrait y avoir aucun problème/problème lorsque cet en-tête est correctement défini.

Cependant, certaines applications répondent avec un type mime incorrect ou aucun type mime. Lorsqu'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éterminer les actions à effectuer. La valeur par défaut de ce paramètre est définie sur "text/plain". Par conséquent, l'injection ne se produira pas dans tous les cas où l'en-tête est manquant.

Si vous souhaitez une injection dans ce cas, vous devez remplacer le paramètre "default_mime_type" par "text/html" pour que cette injection soit 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 d'analyse de contenu basé sur une signature/heuristique sophistiqué pour décider de l'injection ou non. Si nous déterminons que le contenu doit être de type non HTML, nous n'injecterons rien dans le flux.