Monitorare dipendenze, eccezioni e tempi di esecuzione nelle app Web JavaMonitor dependencies, exceptions and execution times in Java web apps

Se l'app Web Java è stata instrumentata con Application Insights, sarà possibile usare l'agente Java per ottenere informazioni più dettagliate, senza modificare il codice:If you have instrumented your Java web app with Application Insights, you can use the Java Agent to get deeper insights, without any code changes:

  • Dipendenze: dati sulle chiamate effettuate dall'applicazione ad altri componenti, tra cui:Dependencies: Data about calls that your application makes to other components, including:
    • Chiamate REST eseguite tramite HttpClient, OkHttp e RestTemplate (Spring).REST calls made via HttpClient, OkHttp, and RestTemplate (Spring).
    • Redis effettuate tramite il client Jedis.Redis calls made via the Jedis client. Se la chiamata dura più di 10s, l'agente recupera anche gli argomenti della chiamata.If the call takes longer than 10s, the agent also fetches the call arguments.
    • Chiamate JDBC: MySQL, SQL Server, PostgreSQL, SQLite, Oracle DB o Apache Derby DB.JDBC calls - MySQL, SQL Server, PostgreSQL, SQLite, Oracle DB or Apache Derby DB. Sono supportate le chiamate "executeBatch"."executeBatch" calls are supported. Per MySQL e PostgreSQL, se la chiamata dura più di 10s, l'agente segnala il piano di query.For MySQL and PostgreSQL, if the call takes longer than 10s, the agent reports the query plan.
  • Eccezioni rilevate: dati sulle eccezioni gestite dal codice.Caught exceptions: Data about exceptions that are handled by your code.
  • Tempo di esecuzione dei metodi: dati sul tempo necessario per eseguire metodi specifici.Method execution time: Data about the time it takes to execute specific methods.

Per usare l'agente Java, installarlo nel server.To use the Java agent, you install it on your server. Le app Web devono essere instrumentate con Application Insights Java SDK.Your web apps must be instrumented with the Application Insights Java SDK.

Installare l'agente di Application Insights per JavaInstall the Application Insights agent for Java

  1. Scaricare l'agente sul computer che esegue il server Java.On the machine running your Java server, download the agent.
  2. Modificare lo script di avvio del server applicazioni e aggiungere il codice JVM seguente:Edit the application server startup script, and add the following JVM:

    javaagent:percorso completo del file JAR dell'agentejavaagent:full path to the agent JAR file

    Ad esempio, in Tomcat su un computer Linux:For example, in Tomcat on a Linux machine:

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

  3. Riavviare il server applicazioni.Restart your application server.

Configurare l'agenteConfigure the agent

Creare un file detto AI-Agent.xml e inserirlo nella stessa cartella che include il file JAR dell'agente.Create a file named AI-Agent.xml and place it in the same folder as the agent JAR file.

Configurare il contenuto del file XML.Set the content of the xml file. Modificare l'esempio seguente in modo da includere o escludere le funzionalità desiderate.Edit the following example to include or omit the features you want.


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

        <!-- Collect remote dependency data -->
        <BuiltIn enabled="true">
           <!-- Disable Redis or alter threshold call duration above which arguments are sent.
               Defaults: enabled, 10000 ms -->
           <Jedis enabled="true" thresholdInMS="1000"/>

           <!-- Set SQL query duration above which query plan is reported (MySQL, PostgreSQL). Default is 10000 ms. -->
           <MaxStatementQueryLimitInMS>1000</MaxStatementQueryLimitInMS>
        </BuiltIn>

        <!-- Collect data about caught exceptions
             and method execution times -->

        <Class name="com.myCompany.MyClass">
           <Method name="methodOne"
               reportCaughtExceptions="true"
               reportExecutionTime="true"
               />

           <!-- Report on the particular signature
                void methodTwo(String, int) -->
           <Method name="methodTwo"
              reportExecutionTime="true"
              signature="(Ljava/lang/String;I)V" />
        </Class>

      </Instrumentation>
    </ApplicationInsightsAgent>

È necessario abilitare le eccezioni dei report e la durata del metodo per i singoli metodi.You have to enable reports exception and method timing for individual methods.

Per impostazione predefinita, reportExecutionTime è true e reportCaughtExceptions è false.By default, reportExecutionTime is true and reportCaughtExceptions is false.

Visualizzare i datiView the data

Nella risorsa Application Insights vengono visualizzate le dipendenze remote aggregate e i tempi di esecuzione dei metodi nel riquadro Prestazioni.In the Application Insights resource, aggregated remote dependency and method execution times appears under the Performance tile.

Per cercare singole istanze di dipendenze, eccezioni e report sui metodi, aprire Ricerca.To search for individual instances of dependency, exception, and method reports, open Search.

Diagnosi dei problemi di dipendenza - ulteriori informazioni.Diagnosing dependency issues - learn more.

Domande?Questions? Problemi?Problems?