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.4
esempio .
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
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?
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 DEBUG
la 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.
DEBUG
La 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.