Supervisión de dependencias, excepciones detectadas y tiempos de ejecución del método en aplicaciones web de JavaMonitor dependencies, caught exceptions, and method execution times in Java web apps

Importante

El enfoque recomendado para supervisar aplicaciones Java es utilizar la instrumentación automática sin cambiar el código.The recommended approach to monitor Java applications is to use the auto-instrumentation without changing the code. Siga las instrucciones para el agente de Java 3.0 de Application Insights.Please follow the guidelines for Application Insights Java 3.0 agent.

Si ha instrumentado la aplicación web de Java con el SDK de Application Insights, puede usar el agente de Java para obtener información más detallada, sin tener que realizar cambios de código:If you have instrumented your Java web app with Application Insights SDK, you can use the Java Agent to get deeper insights, without any code changes:

  • Dependencias: datos sobre las llamadas realizadas por la aplicación a otros componentes, por ejemplo:Dependencies: Data about calls that your application makes to other components, including:

    • Se capturan las llamadas HTTP salientes realizadas a través de Apache HttpClient, OkHttp y java.net.HttpURLConnection.Outgoing HTTP calls made via Apache HttpClient, OkHttp, and java.net.HttpURLConnection are captured.
    • Se capturan las llamadas Redis realizadas a través del cliente de Jedis.Redis calls made via the Jedis client are captured.
    • Consultas JDBC: en el caso de MySQL y PostgreSQL, si la llamada tarda más de 10 segundos, el agente notifica el plan de consulta.JDBC queries - For MySQL and PostgreSQL, if the call takes longer than 10 seconds, the agent reports the query plan.
  • Registro de aplicaciones: puede capturar y poner en correlación los registros de aplicaciones con solicitudes HTTP y otra telemetría.Application logging: Capture and correlate your application logs with HTTP requests and other telemetry

    • Log4j 1.2Log4j 1.2
    • Log4j2Log4j2
    • LogbackLogback
  • Nomenclatura mejorada para las opciones: (se usa para la agregación de solicitudes en el portal).Better operation naming: (used for aggregation of requests in the portal)

    • Spring: se basa en @RequestMapping.Spring - based on @RequestMapping.
    • JAX-RS: se basa en @Path.JAX-RS - based on @Path.

Para usar el agente de Java, debe instalarlo en el servidor.To use the Java agent, you install it on your server. Las aplicaciones web deben instrumentarse con el SDK de Application Insights para Java.Your web apps must be instrumented with the Application Insights Java SDK.

Instalación del agente de Application Insights para JavaInstall the Application Insights agent for Java

  1. Descargue el agenteen la máquina que ejecuta el servidor de Java.On the machine running your Java server, download the agent. Asegúrese de descargar la misma versión del agente de Java que los paquetes web y principales del SDK de Application Insights para Java.Please ensure to download the same version of Java Agent as Application Insights Java SDK core and web packages.

  2. Edite el script de inicio del servidor de aplicaciones y agregue el siguiente argumento de JVM:Edit the application server startup script, and add the following JVM argument:

    -javaagent:<full path to the agent JAR file>

    Por ejemplo, en Tomcat en un equipo Linux:For example, in Tomcat on a Linux machine:

    export JAVA_OPTS="$JAVA_OPTS -javaagent:<full path to agent JAR file>"

  3. Reinicie el servidor de aplicaciones.Restart your application server.

Configuración del agenteConfigure the agent

Cree un archivo denominado AI-Agent.xml y colóquelo en la misma carpeta que el archivo JAR del agente.Create a file named AI-Agent.xml and place it in the same folder as the agent JAR file.

Establezca el contenido del archivo XML.Set the content of the xml file. Edite el ejemplo siguiente para incluir u omitir las características que desee.Edit the following example to include or omit the features you want.

<?xml version="1.0" encoding="utf-8"?>
<ApplicationInsightsAgent>
   <Instrumentation>
      <BuiltIn enabled="true">

         <!-- capture logging via Log4j 1.2, Log4j2, and Logback, default is true -->
         <Logging enabled="true" />

         <!-- capture outgoing HTTP calls performed through Apache HttpClient, OkHttp,
              and java.net.HttpURLConnection, default is true -->
         <HTTP enabled="true" />

         <!-- capture JDBC queries, default is true -->
         <JDBC enabled="true" />

         <!-- capture Redis calls, default is true -->
         <Jedis enabled="true" />

         <!-- capture query plans for JDBC queries that exceed this value (MySQL, PostgreSQL),
              default is 10000 milliseconds -->
         <MaxStatementQueryLimitInMS>1000</MaxStatementQueryLimitInMS>

      </BuiltIn>
   </Instrumentation>
</ApplicationInsightsAgent>

Configuración adicional (Spring Boot)Additional config (Spring Boot)

java -javaagent:/path/to/agent.jar -jar path/to/TestApp.jar

Para Azure App Service, haga lo siguiente:For Azure App Services, do the following:

  • Seleccione Configuración > Configuración de la aplicación.Select Settings > Application Settings
  • En Configuración de la aplicación, agregue un nuevo par clave-valor:Under App Settings, add a new key value pair:

Clave: JAVA_OPTS Valor: -javaagent:D:/home/site/wwwroot/applicationinsights-agent-2.5.0.jarKey: JAVA_OPTS Value: -javaagent:D:/home/site/wwwroot/applicationinsights-agent-2.5.0.jar

Para conocer la última versión del agente de Java, consulte aquí las versiones.For the latest version of the Java agent, check the releases here.

El agente debe estar empaquetado como un recurso en el proyecto de forma que termine en el directorio D:/home/site/wwwroot/.The agent must be packaged as a resource in your project such that it ends up in the D:/home/site/wwwroot/ directory. Para confirmar que el agente está en el directorio correcto de App Service, vaya a Herramientas de desarrollo > Herramientas avanzadas > Consola de depuración y examine el contenido del directorio del sitio.You can confirm that your agent is in the correct App Service directory by going to Development Tools > Advanced Tools > Debug Console and examining the contents of the site directory.

  • Guarde la configuración y reinicie la aplicación.Save the settings and Restart your app. (Estos pasos solo se aplican a las instancias de App Services que se ejecutan en Windows).(These steps only apply to App Services running on Windows.)

Nota

AI-Agent.xml y el archivo jar del agente deben estar en la misma carpeta.AI-Agent.xml and the agent jar file should be in the same folder. A menudo se colocan juntos en la carpeta /resources del proyecto.They are often placed together in the /resources folder of the project.

Habilitación del seguimiento distribuido de W3CEnable W3C distributed tracing

Agregue lo siguiente al archivo AI-Agent.xml:Add the following to AI-Agent.xml:

<Instrumentation>
   <BuiltIn enabled="true">
      <HTTP enabled="true" W3C="true" enableW3CBackCompat="true"/>
   </BuiltIn>
</Instrumentation>

Nota

El modo de compatibilidad con versiones anteriores está habilitado de forma predeterminada, y el parámetro enableW3CBackCompat es opcional y debe usarse solo cuando quiera desactivarlo.Backward compatibility mode is enabled by default and the enableW3CBackCompat parameter is optional and should be used only when you want to turn it off.

Lo ideal sería cuando todos los servicios se han actualizado a la versión más reciente de los SDK compatibles con el protocolo W3C.Ideally this would be the case when all your services have been updated to newer version of SDKs supporting W3C protocol. Se recomienda encarecidamente pasar a la versión más reciente de los SDK con compatibilidad con W3C lo antes posible.It is highly recommended to move to newer version of SDKs with W3C support as soon as possible.

Asegúrese de que las configuraciones (del agente) tanto entrantes como salientes sean exactamente iguales.Make sure that both incoming and outgoing (agent) configurations are exactly same.

Visualización de los datosView the data

En el recurso de Application Insights, aparecen tiempos de ejecución agregados de métodos y dependencias remotos en el icono Rendimiento.In the Application Insights resource, aggregated remote dependency and method execution times appear under the Performance tile.

Para buscar instancias individuales de informes de dependencia, excepción y método, abra Buscar.To search for individual instances of dependency, exception, and method reports, open Search.

Más información sobre diagnósticos de problemas de dependencia.Diagnosing dependency issues - learn more.

¿Tiene preguntas?Questions? ¿Tiene problemas?Problems?