Risolvere i problemi di applicazione Azure Insights in un progetto Web Java

Questo articolo fornisce soluzioni per la risoluzione dei problemi comuni in un formato Q&A per Application Insights Java 2.x.

Attenzione

Questo documento si applica a Application Insights Java 2.x, che non è più consigliato.

La documentazione per la versione più recente è disponibile in Application Insights Java 3.x.

Domande o problemi relativi a applicazione Azure Insights in Java? Ecco alcuni suggerimenti.

Errori di compilazione

In Eclipse o Intellij Idea, quando si aggiunge Application Insights SDK tramite Maven o Gradle, si ottengono errori di convalida di compilazione o checksum

Se l'elemento della versione> delle dipendenze< usa un modello che contiene caratteri jolly (ad esempio, <version>[2.0,)</version> in Maven o version:'2.+' in Gradle), provare a specificare una versione specifica, ad 2.6.4esempio .

Nessun dato

Application Insights è stato aggiunto correttamente ed è stata eseguita l'app, ma non sono mai stati visualizzati dati nel portale

  • Attendere circa un minuto e quindi selezionare Aggiorna. I grafici vengono aggiornati periodicamente, ma è anche possibile aggiornarli manualmente. L'intervallo di aggiornamento dipende dall'intervallo di tempo del grafico.

  • Assicurarsi di aver definito una chiave di strumentazione nel file ApplicationInsights.xml (nella cartella resources del progetto) o di aver configurato una chiave come variabile di ambiente.

  • Verificare che nel file XML non sia presente alcun <DisableTelemetry>true</DisableTelemetry> nodo.

  • Se necessario, aprire le porte TCP 80 e 443 nel firewall per il traffico in uscita verso dc.services.visualstudio.com. Vedere l'elenco completo delle eccezioni del firewall.

  • Nella schermata iniziale di Microsoft Azure esaminare la mappa dello stato del servizio. Se sono presenti alcune indicazioni di avviso, attendere che siano tornati a OK e quindi chiudere e riaprire il pannello dell'applicazione Application Insights.

  • Attivare la registrazione aggiungendo un <elemento SDKLogger> sotto il nodo radice nel file ApplicationInsights.xml (nella cartella resources del progetto). Verificare quindi la presenza di voci precedute da AI: INFO/WARN/ERROR eventuali log sospetti.

  • Assicurarsi che il file diApplicationInsights.xml corretto sia stato caricato correttamente da Java SDK. Controllare i messaggi di output della console per un'istruzione "File di configurazione trovato correttamente".

  • Se il file di configurazione non viene trovato, controllare i messaggi di output per vedere dove viene eseguita la ricerca del file di configurazione. Assicurarsi che il ApplicationInsights.xml si trovi in uno di questi percorsi di ricerca. Come regola generale, è possibile posizionare il file di configurazione vicino ai file JAR di Application Insights SDK. Ad esempio, in Tomcat la cartella sarà WEB-INF/classes. Durante lo sviluppo, è possibile inserire ApplicationInsights.xml nella cartella resources del progetto Web.

  • Controllare la pagina dei problemi di GitHub per individuare i problemi noti relativi all'SDK.

  • Assicurarsi di usare la stessa versione degli appender core, Web, agent e di registrazione di Application Insights per evitare problemi di conflitto di versione.

Nota

Questo articolo è stato aggiornato di recente per usare il termine Log di Monitoraggio di Azure anziché Log Analytics. I dati di log vengono comunque archiviati in un'area di lavoro Log Analytics e vengono comunque raccolti e analizzati dallo stesso servizio Log Analytics. La terminologia viene aggiornata in modo da riflettere meglio il ruolo dei log in Monitoraggio di Azure. Per informazioni dettagliate, vedere Modifiche alla terminologia di Monitoraggio di Azure .

Ho usato per vedere i dati, ma è arrestato

  • Hai raggiunto la quota mensile di punti dati? Aprire Impostazioni>Quota e prezzi per scoprirlo. In tal caso, è possibile aggiornare il piano o pagare per una maggiore capacità. Per altre informazioni, vedere lo schema tariffario.

  • L'SDK è stato aggiornato di recente? Assicurarsi che siano presenti solo jar di SDK univoci all'interno della directory del progetto. Non devono essere presenti due versioni diverse dell'SDK.

  • Si sta esaminando la risorsa di intelligenza artificiale corretta? Assicurarsi di associare iKey dell'applicazione alla risorsa in cui si prevede la telemetria. Dovrebbero essere uguali.

Non vengono visualizzati tutti i dati previsti

  • Aprire la pagina Utilizzo e costo stimato e verificare se il campionamento è in esecuzione. (100% trasmissione significa che il campionamento non è in funzione.) Il servizio Application Insights può essere impostato in modo da accettare solo una frazione dei dati di telemetria che arrivano dall'app. Questa impostazione consente di rimanere entro la quota mensile di dati di telemetria.

  • Il campionamento SDK è attivato? In caso affermativo, i dati verranno campionati alla frequenza specificata per tutti i tipi applicabili.

  • Si esegue una versione precedente di Java SDK? A partire dalla versione 2.0.1, è stato introdotto un meccanismo di tolleranza di errore per gestire gli errori intermittenti di rete e back-end, nonché la persistenza dei dati nelle unità locali.

  • Verificare se la telemetria eccessiva ha causato la limitazione. Se si attiva la registrazione DELLE INFORMAZIONI, verrà visualizzato un messaggio di log "App is throttled". Il limite corrente è di circa 32.000 elementi di telemetria al secondo.

L'agente Java non è in grado di acquisire i dati delle dipendenze

  • L'agente Java è stato configurato?

  • Assicurarsi che sia il file jar dell'agente Java che il file AI-Agent.xml siano inseriti nella stessa cartella.

  • Assicurarsi che la dipendenza che si sta tentando di raccogliere automaticamente sia supportata per la raccolta automatica. Attualmente sono supportano solo MySQL, Microsoft SQL Server, Oracle DB e cache di Azure per Redis raccolta di dipendenze.

Nessun dato di utilizzo

Vengono visualizzati dati sulle richieste e sui tempi di risposta, ma non vengono visualizzati dati di pagina, browser o utente

È stata configurata correttamente l'app per l'invio dei dati di telemetria dal server. Ora il passaggio successivo consiste nel configurare le pagine Web per inviare dati di telemetria dal Web browser.

In alternativa, se il client è un'app in un telefono o in un altro dispositivo, è possibile inviare dati di telemetria da qui.

Usare la stessa chiave di strumentazione per configurare i dati di telemetria sia del client che del server. I dati verranno visualizzati nella stessa risorsa di Application Insights e sarà possibile correlare gli eventi dal client e dal server.

Disabilitare i dati di telemetria

Come è possibile disabilitare la raccolta di dati di telemetria?

Seguire una di queste soluzioni:

  • Disabilitare la raccolta nel codice:

    TelemetryConfiguration config = TelemetryConfiguration.getActive();
    config.setTrackingIsDisabled(true);
    
  • Aggiornare ApplicationInsights.xml (nella cartella resources del progetto). Aggiungere l'elemento XML seguente nel nodo radice:

    <DisableTelemetry>true</DisableTelemetry>
    

    Se si usa il metodo XML, è necessario riavviare l'applicazione quando si modifica il valore.

Modificare la destinazione

Come è possibile modificare la risorsa di Azure a cui il progetto invia i dati?

  • Ottenere la chiave di strumentazione della nuova risorsa.

  • Se Application Insights è stato aggiunto al progetto usando Azure Toolkit for Eclipse, fare clic con il pulsante destro del mouse sul progetto Web, selezionareConfigura Application Insights di Azure> e quindi modificare la chiave.

  • Se la chiave di strumentazione è stata configurata come variabile di ambiente, assicurarsi di aggiornare il valore della variabile di ambiente con il nuovo iKey.

  • In caso contrario, aggiornare la chiave in ApplicationInsights.xml nella cartella resources per il progetto.

Eseguire il debug dei dati dall'SDK

Come è possibile scoprire cosa sta facendo l'SDK?

Per ottenere altre informazioni su ciò che accade nell'API, aggiungere l'elemento <SDKLogger> all'interno del nodo radice del file di configurazione ApplicationInsights.xml .

ApplicationInsights.xml

Nell'elemento SDKLogger è anche possibile indicare al logger di eseguire l'output <in un file:>

<SDKLogger type="FILE"><!-- or "CONSOLE" to print to stderr -->
    <Level>TRACE</Level>
    <UniquePrefix>AI</UniquePrefix>
    <BaseFolderPath>C:/agent/AISDK</BaseFolderPath>
</SDKLogger>

Spring Boot Starter

Per abilitare la registrazione dell'SDK con le app spring boot usando lo starter Spring Boot di Application Insights, aggiungere le righe seguenti al file application.properties :

azure.application-insights.logger.type=file
azure.application-insights.logger.base-folder-path=C:/agent/AISDK
azure.application-insights.logger.level=trace

In alternativa, è possibile stampare nel flusso di errore standard:

azure.application-insights.logger.type=console
azure.application-insights.logger.level=trace

Agente Java

Per abilitare la registrazione dell'agente JVM, aggiornare il file AI-Agent.xml:

<AgentLogger type="FILE"><!-- or "CONSOLE" to print to stderr -->
    <Level>TRACE</Level>
    <UniquePrefix>AI</UniquePrefix>
    <BaseFolderPath>C:/agent/AIAGENT</BaseFolderPath>
</AgentLogger>

Proprietà della riga di comando Java

Dalla versione 2.4.0

Per abilitare la registrazione usando le opzioni della riga di comando anziché modificare i file di configurazione, eseguire il comando seguente:

java -Dapplicationinsights.logger.file.level=trace \
    -Dapplicationinsights.logger.file.uniquePrefix=AI \
    -Dapplicationinsights.logger.baseFolderPath="C:/my/log/dir" \
    -jar MyApp.jar

In alternativa, eseguire il comando seguente per stampare nel flusso di errore standard:

java -Dapplicationinsights.logger.console.level=trace -jar MyApp.jar

Schermata iniziale di Azure

Sto guardando la portale di Azure. La mappa indica qualcosa sull'app?

No, mostra l'integrità dei server di Azure in tutto il mondo.

Ricerca per categorie trovare dati sull'app dalla schermata iniziale di Azure (schermata iniziale)?

Supponendo di aver configurato l'app per Application Insights, selezionare Sfoglia>Application Insights e quindi selezionare la risorsa dell'app creata per l'app. Per arrivare più velocemente in futuro, aggiungere l'app alla lavagna di avvio.

Server Intranet

È possibile monitorare un server nella intranet?

Sì, a condizione che il server possa inviare dati di telemetria al portale di Application Insights tramite Internet pubblico.

Potrebbe essere necessario aprire alcune porte in uscita nel firewall del server per consentire all'SDK di inviare dati al portale.

Conservazione dei dati

Per quanto tempo i dati vengono conservati nel portale? È sicuro?

Vedere Conservazione dei dati e privacy.

Eseguire il debug della registrazione

Application Insights usa org.apache.http. Questo spazio dei nomi viene rilocato all'interno dei file jar di base di Application Insights nello spazio dei nomi com.microsoft.applicationinsights.core.dependencies.http. Questa rilocazione consente ad Application Insights di gestire scenari in cui esistono versioni diverse dello stesso org.apache.http in un'unica base di codice.

Nota

Se abiliti DEBUGla registrazione a livello di per tutti gli spazi dei nomi nell'app, verrà rispettata da tutti i moduli in esecuzione (incluso org.apache.http il nome ).com.microsoft.applicationinsights.core.dependencies.http Application Insights non sarà in grado di applicare filtri per queste chiamate perché la chiamata di log viene eseguita dalla libreria Apache. DEBUGLa registrazione a livello di livello produce una notevole quantità di dati di log e non è consigliata per le istanze di produzione live.

Passaggi successivi

È stata configurata Application Insights per l'app server Java. Cos'altro posso fare?

Ottenere assistenza

Dichiarazione di non responsabilità sulle informazioni di terze parti

I prodotti di terzi citati in questo articolo sono prodotti da società indipendenti da Microsoft. Microsoft non rilascia alcuna garanzia implicita o esplicita relativa alle prestazioni o all'affidabilità di tali prodotti

Contattaci per ricevere assistenza

In caso di domande o bisogno di assistenza, creare una richiesta di supporto tecnico oppure formula una domanda nel Supporto della community di Azure. È possibile anche inviare un feedback sul prodotto al feedback della community di Azure.