Solución de problemas de inyección del agente del explorador APM

Los usuarios pueden encontrar varios errores durante la configuración de inyección del agente de explorador de APM. A continuación se muestran las causas y las acciones recomendadas para estos errores.

La página no se inyecta automáticamente con el agente del explorador

Causas Posibles:

  • La inyección del agente del explorador de APM no está activada correctamente.

    Acción: revise cómo activar la función. Para obtener más información, consulte Activar inyección de agente de explorador de APM.

  • APM no admite el servidor de aplicaciones.

    Acción: confirme que el servidor de aplicaciones está soportado comprobando la matriz de certificación de APM de OCI.

  • El servidor de aplicaciones donde se ejecuta el agente de APM no sirve la página.

    Acción: compruebe si la página es realmente servida por el servidor de aplicaciones donde se ejecuta el agente de APM.
    • Si la página se sirve desde una caché (por ejemplo, CDN) o un servidor web (por ejemplo, Oracle HTTP Server o Apache), el servidor de contenidos debe tener la página inyectada.

    • Si el explorador almacena en caché la página, intente realizar un refrescamiento permanente (por ejemplo, Mayús y recarga) o borre la caché del explorador.

  • Compruebe si la página HTML contiene HTML "válido". El consorcio W3C tiene muchas reglas y validadores que puede comprobar la validez de la página.

    Acción: algunas formas sencillas de comprobar son las siguientes:
    • En el explorador, visualice el origen de página y compruebe que empieza por "<html", "<!--" o "<!doctype html".

      Si comienza con otra etiqueta y todavía necesita forzar la inyección, puede agregar esa etiqueta al parámetro "valid_html_start" en el archivo ProbeConfig.acml.

    • Mediante las herramientas de desarrollo del explorador, compruebe si la cabecera "Tipo de Contenido" de la respuesta HTTP contiene "texto/html".

  • Si no hay ningún mensaje de error claro disponible, puede hacer lo siguiente:
    • Defina el nivel de log en DEBUG en el archivo AgentConfig.properties agregando el parámetro com.oracle.apm.agent.logging.level=DEBUG.

      Después, vuelva a cargar la página en el explorador y busque mensajes en el archivo Agent.log que contenga la cadena "DEBUG <Filter>".

    • Revise el archivo ProbeConfig.acml y asegúrese de que no alcance ninguno de los valores de exclusión en la sección INJECTION. En particular, revise la siguiente configuración configurable:
      • excluded_extensions
      • excluded_context_roots
      • excluded_patterns
  • Información de funcionalidad adicional:
    1. El HTML debe ser generado por un servlet o una JSP en el que se está ejecutando el agente de Java de APM. Si genera HTML en un filtro o a través de algún otro mecanismo, es poco probable que funcione.

    2. El servlet debe realizar una llamada a getOutputStream() y escribir el HTML en un ServletOutputStream válido O bien, debe realizar una llamada a getWriter() y escribir el HTML en un PrintWriter válido.

      Oracle InjectionFilter debe formar parte de la cadena de servlet (agregada automáticamente a la cadena de filtro de la aplicación). Si se utiliza cualquier otro filtro para omitirlo, entonces la inyección no será posible.

    3. Codificación de Transferencia. El agente debe poder interceptar e inyectar antes de que el flujo de respuesta HTML se transforme mediante:
      • Transfer-Encoding: fragmentado.
      • Codificación de Transferencia: Compresión.
      • Transfer-Encoding: deflate.
      • Codificación de Transferencia: gzip.

La página no se ha presentado correctamente

Acción: primero, intente desactivar la inyección del agente de explorador de APM mediante el archivo AgentConfig.properties. Para obtener más información, consulte Desactivar inyección de agente de explorador de APM. Después de hacerlo, espere aproximadamente un minuto y vuelva a intentar la página en cuestión. No debe reiniciar Application Server.