Risolvere i problemi di app Azure lication 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 ad 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 ad Azure Application 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 della compilazione o del checksum
Se l'elemento versione> dipendenza <usa un criterio 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.4
esempio .
Nessun dato
Application Insights è stato aggiunto correttamente ed è stata eseguita l'app, ma i dati non sono mai stati visualizzati nel portale
Attendere circa un minuto e quindi selezionare Aggiorna. I grafici si aggiornano autonomamente periodicamente, ma è anche possibile aggiornare manualmente. L'intervallo di aggiornamento dipende dall'intervallo di tempo del grafico.
Assicurarsi di aver definito una chiave di strumentazione nel file di ApplicationInsights.xml (nella cartella resources del progetto) o configurata 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 osservare la mappa dello stato dei servizi. Se sono presenti alcune indicazioni di avviso, attendere che non tornino a OK e quindi chiudere e riaprire il pannello dell'applicazione Application Insights.
Attivare la registrazione aggiungendo un< elemento SDKLogger> nel 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 di ApplicationInsights.xml corretto sia stato caricato correttamente da Java SDK. Controllare i messaggi di output della console per un'istruzione "Il file di configurazione è stato trovato correttamente".
Se il file di configurazione non viene trovato, controllare i messaggi di output per vedere dove viene cercato il file di configurazione. Assicurarsi che il ApplicationInsights.xml si trovi in una di queste posizioni di ricerca. In linea di massima, il file di configurazione può essere salvato accanto ai file JAR di Application Insights SDK. Ad esempio, in Tomcat la cartella sarà WEB-INF/classi. 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 dei componenti di base, Web, agente e appender di registrazione di Application Insights per evitare eventuali problemi di conflitto di versione.
Note
Questo articolo è stato aggiornato di recente per usare il termine log di Monitoraggio di Azure anziché Log Analytics. I dati di log vengono ancora archiviati in un'area di lavoro Log Analytics e vengono comunque raccolti e analizzati dallo stesso servizio Log Analytics. La terminologia viene aggiornata per riflettere meglio il ruolo dei log in Monitoraggio di Azure. Per informazioni dettagliate, vedere Modifiche della terminologia di Monitoraggio di Azure.
Ho usato per visualizzare i dati, ma è stato arrestato
È stata raggiunta la quota mensile relativa ai punti dati? Per informazioni, aprire Impostazioni>Quota e Prezzi. In questo caso, è possibile aggiornare il piano o pagare per una maggiore capacità. Per altre informazioni, vedere il piano tariffario.
L'SDK è stato aggiornato di recente? Assicurarsi che all'interno della directory del progetto siano presenti solo i file JAR dell'SDK univoco. Non dovrebbero essere presenti due versioni diverse dell'SDK.
È stata considerata la risorsa AI corretta? Assicurarsi di associare l'iKey dell'applicazione alla risorsa in cui si prevede la telemetria. I valori devono corrispondere.
Non sono presenti tutti i dati previsti
Aprire la pagina Utilizzo e costi stimati e verificare se il campionamento è in esecuzione. La trasmissione al 100% indica che il campionamento non è in funzione. Il servizio Application Insights può essere impostato in modo da accettare solo una frazione dei dati di telemetria ricevuti dall'app. Questa impostazione consente di rimanere entro la quota mensile dei dati di telemetria.
Il campionamento dell'SDK è attivo? In caso affermativo, i dati potrebbero essere campionati alla frequenza specificata per tutti i tipi applicabili.
Si esegue una versione precedente dell'SDK di Java? 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 un numero eccessivo di dati di telemetria ha causato la limitazione. Se si attiva la registrazione INFO, verrà visualizzato un messaggio di log "App is throttled" (L'app è limitata). Il limite corrente è di circa 32.000 elementi di telemetria al secondo.
Java Agent non è in grado di acquisire i dati delle dipendenze
L'agente Java è stato configurato?
Assicurarsi che il file JAR dell'agente Java e il file AI-Agent.xml siano posizionati nella stessa cartella.
Assicurarsi che la dipendenza che si sta tentando di raccogliere automaticamente sia supportata per la raccolta automatica. Attualmente è supportato solo MySQL, Microsoft SQL Server, Oracle DB e cache di Azure per Redis raccolta di dipendenze.
Dati di utilizzo non presenti
I dati relativi alle richieste e ai tempi di risposta non sono visualizzati, browser o dati utente
L'app è stata correttamente configurata per inviare dati di telemetria dal server. 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 altro dispositivo, è possibile inviare i dati di telemetria da tali dispositivi.
Usare la chiave di strumentazione per impostare la telemetria sia sul client che sul server. I dati verranno visualizzati nella stessa risorsa di Application Insights e sarà possibile correlare gli eventi dal client e dal server.
Disabilitare telemetria
In che modo è 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 sotto il nodo radice:
<DisableTelemetry>true</DisableTelemetry>
Se si utilizza il metodo XML, è necessario riavviare l'applicazione quando si modifica il valore.
Modificare la destinazione
In che modo è possibile modificare la risorsa di Azure che riceve i dati del progetto?
Se Application Insights è stato aggiunto al progetto usando Azure Toolkit for Eclipse, fare clic con il pulsante destro del mouse sul progetto Web, scegliere Configura 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 la nuova iKey.
In caso contrario, aggiornare la chiave in ApplicationInsights.xml nella cartella resources per il progetto.
Debug dei dati dall'SDK
Come ottenere informazioni sulle attività dell'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 restituire 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 Initializer
Per abilitare la registrazione dell'SDK con le app spring boot usando l'utilità di avvio 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 errori standard:
java -Dapplicationinsights.logger.console.level=trace -jar MyApp.jar
Schermata iniziale di Azure
Guardando nel portale di Azure. la mappa contiene informazioni sull'app?
No, la mappa visualizza lo stato di integrità dei server Azure nelle varie parti del mondo.
Ricerca per categorie trovare i dati sull'app dalla scheda iniziale di Azure (schermata iniziale)?
Supponendo di configurare l'app per Application Insights, selezionare Sfoglia>Application Insights e quindi selezionare la risorsa dell'app creata per l'app. Per arrivarci più velocemente in futuro, aggiungere l'app alla scheda iniziale.
Server Intranet
È possibile monitorare un server nella Intranet?
Sì, purché il server possa inviare dati di telemetria al portale di Application Insights tramite la rete Internet pubblica.
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 vengono conservati i dati nel portale? Tale conservazione è sicura?
Vedere Conservazione dei dati e privacy.
Registrazione del debug
Application Insights usa org.apache.http
. Questo spazio dei nomi viene rilocato all'interno dei file JAR principali 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 della stessa org.apache.http
in una codebase.
Note
Se si abilita DEBUG
la registrazione a livello di livello per tutti gli spazi dei nomi nell'app, verrà rispettata da tutti i moduli in esecuzione (incluso org.apache.http
quello rinominato come com.microsoft.applicationinsights.core.dependencies.http
). Application Insights non sarà in grado di applicare il filtro per queste chiamate perché la chiamata di log viene effettuata dalla libreria Apache. DEBUG
La registrazione a livello di livello produce una notevole quantità di dati di log e non è consigliata per le istanze di produzione in tempo reale.
Passaggi successivi
Application Insights è stato correttamente impostato per l'app server Java. Cos'altro è possibile fare?
Come 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.