Configurar ajustes adicionales de inyección de agente de explorador de APM

Una vez activada esta función de agente de explorador de APM, es posible personalizar la configuración por defecto y agregar otras adicionales según sus requisitos.

Actualizar Archivo ProbeConfig.acml

En el archivo ProbeConfig.acml, hay una sección denominada INJECTION con una configuración adicional disponible para ajustar la forma en que se realiza la inyección del agente del explorador si lo desea. Cada configuración tiene un comentario que explica lo que hace.

INJECTION:
  ### Exclusion Settings ###
  # URLs that end in these extensions will be skipped for browser agent injection.
  excluded_extensions:
...
Puede utilizar estos valores para:
  • Determine qué páginas deben tener o no inyectado el agente del explorador.

  • Ubicación en la página en la que se debe inyectar el agente del explorador.

  • Sepa cómo responder a los casos en los que el servidor de aplicaciones no proporciona la información necesaria para la inyección del agente del explorador. Por ejemplo: charset y tipo MIME de la página.

Todos estos valores se pueden actualizar sin tener que reiniciar el servidor de aplicaciones.

El comportamiento predeterminado es el siguiente:
  • El agente del explorador se inyectará después de la etiqueta <head> de la página HTML.

    Esto se controla mediante la configuración de inject_location_tag y inject_before.

    Si falta la etiqueta, se agregará al final del archivo. Esto se controla mediante la configuración de inject_mode.

  • Solo se considerarán para inyección los tipos MIME "text/html" y "application/xhtml+xml".

    Esto se controla mediante la configuración valid_mime_types.

  • Las URL que terminan en extensiones de archivo concretas, como json, txt, gif y otras, omitirán la inyección del agente del explorador.

    Esto se controla mediante la configuración excluded_extensions.

  • Las aplicaciones con raíces de contexto específicas omitirán la inyección del agente del explorador.

    Esto se controla mediante la configuración excluded_context_roots.

Actualizar BrowserAgentTemplate.txt

Este archivo determina qué HTML se inyecta en la página.

El comportamiento por defecto para APM Agent 1.3 y la versión posterior es el siguiente:
<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>

Los valores rodeados por @@ se sustituyen antes de que se produzca la inyección y son valores adquiridos desde el archivo AgentConfig.properties.

Esta plantilla se puede ajustar para tener en cuenta las configuraciones del lado del agente del explorador mencionadas en las otras secciones de esta documentación, como window.apmrum.rewriteRules. Para obtener información, consulte Ocultar información de identificación personal.

Los cambios realizados en este archivo se seleccionarán automáticamente y no requerirán un reinicio del servidor de aplicaciones.

Actualizar tipos MIME

Para que la inyección se realice correctamente, el tipo MIME especificado en la cabecera "Tipo de Contenido" de la respuesta HTTP siempre debe contener "texto/html". No debe haber problemas/problemas cuando este encabezado se define correctamente.

Sin embargo, algunas aplicaciones responden con un tipo mime incorrecto o ningún tipo mime. Cuando no se proporciona ningún tipo mime, la inyección del agente de explorador utiliza el parámetro "default_mime_type" del archivo ProbeConfig.acml para decidir qué hacer. El valor por defecto de este parámetro se establece en "texto/cadena" por lo tanto, la inyección no se producirá en todos los casos en los que falta la cabecera.

Si desea inyectar en estos casos, debe cambiar el parámetro "default_mime_type" a "text/html" para que se permita la inyección.

En el caso contrario, cuando la cabecera "Tipo de Contenido" de la respuesta HTTP contiene "texto/html", pero el contenido real no es HTML, utilizamos un algoritmo sofisticado de análisis de contenido basado en firma/heurístico para decidir si se debe inyectar o no. Si determinamos que el contenido es de un tipo que no es HTML, no inyectaremos nada en el flujo.