Application Insights per le applicazioni web Java che sono già live

Se è disponibile un'applicazione Web già in esecuzione nel server J2EE, è possibile avviare il monitoraggio con Application Insights senza dover apportare modifiche al codice o ricompilare il progetto. Con questa opzione è possibile ottenere informazioni sulle richieste HTTP inviate al server, le eccezioni non gestite e i contatori delle prestazioni.

È necessaria una sottoscrizione di Microsoft Azure.

Nota

La procedura in questa pagina consente di aggiungere il SDK all'applicazione web in fase di esecuzione. La strumentazione del runtime è utile se non si vuole aggiornare o ricompilare il codice sorgente. Ma se possibile, è consigliabile aggiungere l’SDK al codice sorgente invece. Che offre ulteriori opzioni, ad esempio la scrittura di codice per tenere traccia delle attività dell'utente.

1. Ottenere una chiave di strumentazione di Application Insights

  1. Accedere al portale di Microsoft Azure
  2. Creare una nuova risorsa di Application Insights e configurare il tipo di applicazione su applicazione Web Java.

    Inserire un nome, scegliere l'app Web Java e fare clic su Crea

    La risorsa viene creata in pochi secondi.

  3. Aprire la nuova risorsa e ottenere la rispettiva chiave di strumentazione. Questa chiave dovrà a breve essere incollata nel progetto di codice.

    Nella panoramica della nuova risorsa, fare clic su Proprietà e copiare la chiave di strumentazione

2. Scaricare l'SDK

  1. Scaricare Application Insights SDK per Java.
  2. Sul server, estrarre i contenuti SDK nella directory da cui vengono caricati i file binari del progetto. Se si usa Tomcat, la directory si trova in genere inwebapps/<your_app_name>/WEB-INF/lib

Si noti che è necessario ripetere questo passaggio per ogni istanza del server e per ogni app.

3. Aggiungere un file XML di Application Insights

Creare ApplicationInsights.xml nella cartella in cui è stato aggiunto il SDK. Copiarvi il seguente file XML.

Sostituire la chiave di strumentazione recuperata dal portale di Azure.


    <?xml version="1.0" encoding="utf-8"?>
    <ApplicationInsights xmlns="http://schemas.microsoft.com/ApplicationInsights/2013/Settings" schemaVersion="2014-05-30">


      <!-- The key from the portal: -->

      <InstrumentationKey>** Your instrumentation key **</InstrumentationKey>


      <!-- HTTP request component (not required for bare API) -->

      <TelemetryModules>
        <Add type="com.microsoft.applicationinsights.web.extensibility.modules.WebRequestTrackingTelemetryModule"/>
        <Add type="com.microsoft.applicationinsights.web.extensibility.modules.WebSessionTrackingTelemetryModule"/>
        <Add type="com.microsoft.applicationinsights.web.extensibility.modules.WebUserTrackingTelemetryModule"/>
      </TelemetryModules>

      <!-- Events correlation (not required for bare API) -->
      <!-- These initializers add context data to each event -->

      <TelemetryInitializers>
        <Add   type="com.microsoft.applicationinsights.web.extensibility.initializers.WebOperationIdTelemetryInitializer"/>
        <Add type="com.microsoft.applicationinsights.web.extensibility.initializers.WebOperationNameTelemetryInitializer"/>
        <Add type="com.microsoft.applicationinsights.web.extensibility.initializers.WebSessionTelemetryInitializer"/>
        <Add type="com.microsoft.applicationinsights.web.extensibility.initializers.WebUserTelemetryInitializer"/>
        <Add type="com.microsoft.applicationinsights.web.extensibility.initializers.WebUserAgentTelemetryInitializer"/>

      </TelemetryInitializers>
    </ApplicationInsights>
  • La chiave di strumentazione viene inviata insieme a tutti gli elementi di dati di telemetria e indica ad Application Insights di visualizzarla nella risorsa.
  • Il componente delle richieste HTTP è facoltativo. Invia automaticamente i dati di telemetria sulle richieste e tempi di risposta al portale.
  • La correlazione di eventi è un'aggiunta al componente delle richieste HTTP. Assegna un identificatore a ogni richiesta ricevuta dal server e lo aggiunge come proprietà a ogni elemento di telemetria, come proprietà "Operation.Id". Consente di correlare i dati di telemetria associati a ogni richiesta impostando un filtro in Ricerca diagnostica.

4. Aggiungere un filtro HTTP

Individuare e aprire il file web.xml nel progetto e unire il frammento di codice seguente al di sotto del nodo app-web, in cui sono configurati i filtri dell'applicazione.

Per ottenere risultati più accurati, il filtro deve essere mappato prima di tutti gli altri filtri.


    <filter>
      <filter-name>ApplicationInsightsWebFilter</filter-name>
      <filter-class>
        com.microsoft.applicationinsights.web.internal.WebRequestTrackingFilter
      </filter-class>
    </filter>
    <filter-mapping>
       <filter-name>ApplicationInsightsWebFilter</filter-name>
       <url-pattern>/*</url-pattern>
    </filter-mapping>

5. Verificare le eccezioni del firewall

Potrebbe essere necessario impostare le eccezioni per l'invio dei dati in uscita.

6. Riavviare la propria app web.

7. Visualizzare i dati di telemetria in Application Insights

Tornare alla risorsa di Application Insights nel portale di Microsoft Azure.

I dati di telemetria delle richieste HTTP vengono visualizzati nel pannello Panoramica. Se non sono visualizzati, attendere alcuni secondi e quindi fare clic su Aggiorna.

dati di esempio

Fare clic su qualsiasi grafico per visualizzare metriche più dettagliate.

E quando si visualizzano le proprietà di una richiesta, è possibile visualizzare gli eventi di telemetria associati, ad esempio le richieste e le eccezioni.

Altre informazioni sulle metriche.

Passaggi successivi