Abilitare il monitoraggio delle applicazioni nel servizio app Azure per applicazioni .NET, Node.js, Python e Java
Articolo
La strumentazione automatica, detta anche monitoraggio del runtime, è il modo più semplice per abilitare Application Insights per app Azure Servizio senza richiedere modifiche al codice o configurazioni avanzate. In base al proprio scenario specifico, valutare se è necessario un monitoraggio più avanzato tramite la strumentazione manuale.
Nota
Il 31 marzo 2025, il supporto per l'inserimento delle chiavi di strumentazione terminerà. L'inserimento delle chiavi di strumentazione continuerà a funzionare, ma non saranno più garantiti aggiornamenti o supporto per la funzionalità. Eseguire la transizione alle stringhe di connessione per sfruttare le nuove funzionalità.
Se vengono rilevati sia il monitoraggio automatico che la strumentazione manuale basata su SDK, vengono rispettate solo le impostazioni di strumentazione manuale. Questa disposizione impedisce l'invio di dati duplicati. Per altre informazioni, vedere Risoluzione dei problemi.
Nota
Sono supportate solo le versioni LTS (Long Term Support) di .NET Core.
Selezionare Application Insights nel menu di spostamento a sinistra del servizio app e quindi selezionare Abilita.
Creare una nuova risorsa o selezionare una risorsa di Application Insights esistente per questa applicazione.
Nota
Quando si seleziona OK per creare la nuova risorsa, viene richiesto Applica impostazioni di monitoraggio. La selezione di Continua collega la nuova risorsa di Application Insights al servizio app. Il servizio app viene quindi riavviato.
Dopo aver specificato la risorsa da usare, è possibile scegliere il modo in cui Application Insights deve raccogliere i dati per ogni piattaforma per l'applicazione. Le opzioni di raccolta ASP.NET Core sono Consigliate o Disabilitate.
Importante
Se vengono rilevati sia il monitoraggio automatico che la strumentazione manuale basata su SDK, vengono rispettate solo le impostazioni di strumentazione manuale. Questa disposizione impedisce l'invio di dati duplicati. Per altre informazioni, vedere Risoluzione dei problemi.
Nota
La combinazione di APPINSIGHTS_JAVASCRIPT_ENABLED e urlCompression non è supportata. Per ulteriori informazioni, vedere Risoluzione dei problemi.
Strumentazione automatica nel portale di Azure
Selezionare Application Insights nel menu di spostamento a sinistra del servizio app e quindi selezionare Abilita.
Creare una nuova risorsa o selezionare una risorsa di Application Insights esistente per questa applicazione.
Nota
Quando si seleziona OK per creare la nuova risorsa, viene richiesto Applica impostazioni di monitoraggio. La selezione di Continua collega la nuova risorsa di Application Insights al servizio app. Il servizio app viene quindi riavviato.
Dopo aver specificato la risorsa da usare, è possibile scegliere il modo in cui Application Insights deve raccogliere i dati per ogni piattaforma per l'applicazione. ASP.NET il monitoraggio delle app è attivato per impostazione predefinita con due diversi livelli di raccolta, Consigliato e Basic.
La tabella seguente riepiloga i dati raccolti per ogni route.
Dati
Consigliato
Di base
Aggiunge le tendenze di utilizzo della CPU, della memoria e delle operazioni di I/O
Sì
No
Raccoglie le tendenze di utilizzo e consente la correlazione dei risultati di disponibilità con le transazioni
Sì
Sì
Raccoglie le eccezioni non gestite dal processo host
Sì
Sì
Migliora la precisione delle metriche APM in condizioni di carico quando viene usato il campionamento
Sì
Sì
Mette in correlazione i microservizi attraverso i limiti di richiesta/dipendenza
Sì
No (solo funzionalità APM a istanza singola)
Nota
Con le applicazioni Spring Boot Native Image, usare il progetto di applicazione Java di Spring Boot OpenTelemetry Distro/Application Insights in Spring Boot invece della soluzione dell'agente Java di Application Insights descritta qui.
Selezionare Application Insights nel menu di spostamento a sinistra del servizio app e quindi selezionare Abilita.
Creare una nuova risorsa o selezionare una risorsa di Application Insights esistente per questa applicazione.
Nota
Quando si seleziona OK per creare la nuova risorsa, viene richiesto Applica impostazioni di monitoraggio. La selezione di Continua collega la nuova risorsa di Application Insights al servizio app. Il servizio app viene quindi riavviato.
Importante
Se vengono rilevati sia il monitoraggio automatico che la strumentazione manuale basata su SDK, vengono rispettate solo le impostazioni di strumentazione manuale. Questa disposizione impedisce l'invio di dati duplicati. Per altre informazioni, vedere la sezione Risoluzione dei problemi.
Nota
È possibile configurare l'agente collegato automaticamente usando la APPLICATIONINSIGHTS_CONFIGURATION_CONTENT variabile di ambiente nel pannello della variabile ambiente del servizio app. Per informazioni dettagliate sulle opzioni di configurazione che è possibile passare tramite questa variabile di ambiente, vedere Node.js Configurazione.
Application Insights per Node.js è integrato con il servizio app di Azure in Linux, sia basato su codice che con contenitori personalizzati e con il servizio app in Windows per le app basate su codice. L'integrazione è disponibile in anteprima pubblica.
Strumentazione automatica nel portale di Azure
Selezionare Application Insights nel menu di spostamento a sinistra del servizio app e quindi selezionare Abilita.
Creare una nuova risorsa o selezionare una risorsa di Application Insights esistente per questa applicazione.
Nota
Quando si seleziona OK per creare la nuova risorsa, viene richiesto Applica impostazioni di monitoraggio. La selezione di Continua collega la nuova risorsa di Application Insights al servizio app. Il servizio app viene quindi riavviato.
Dopo aver specificato la risorsa da usare, è tutto impostato per andare.
Usare la strumentazione automatica solo in servizio app se non si usa la strumentazione manuale di OpenTelemetry nel codice, ad esempio la distribuzione OpenTelemetry di Monitoraggio di Azure o l'utilità di esportazione OpenTelemetry di Monitoraggio di Azure. Ciò impedisce l'invio di dati duplicati. Per altre informazioni, vedere la sezione relativa alla risoluzione dei problemi in questo articolo.
Application Insights per Python si integra con il servizio app di Azure Linux basato su codice. L'integrazione è disponibile in anteprima pubblica e aggiunge Python SDK, disponibile a livello generale. Strumenti le librerie Python più diffuse nel codice, consentendo di raccogliere e correlare automaticamente dipendenze, log e metriche. Per vedere quali chiamate e metriche vengono raccolte, vedere Librerie Python
La registrazione dei dati di telemetria viene raccolta al livello del logger radice. Per altre informazioni sulla gerarchia di registrazione nativa di Python, vedere la documentazione sulla registrazione di Python.
Prerequisiti
Python versione 3.11 o precedente.
Il servizio app deve essere distribuito come codice. I contenitori personalizzati non sono supportati.
Strumentazione automatica nel portale di Azure
Selezionare Application Insights nel menu di spostamento a sinistra del servizio app e quindi selezionare Abilita.
Creare una nuova risorsa o selezionare una risorsa di Application Insights esistente per questa applicazione.
Nota
Quando si seleziona OK per creare la nuova risorsa, viene richiesto Applica impostazioni di monitoraggio. La selezione di Continua collega la nuova risorsa di Application Insights al servizio app. Il servizio app viene quindi riavviato.
Specificare la risorsa ed è pronta per l'uso.
Librerie Python
Dopo la strumentazione, si raccolgono chiamate e metriche da queste librerie Python:
Per usare la strumentazione Django OpenTelemetry, è necessario impostare la DJANGO_SETTINGS_MODULE variabile di ambiente nelle impostazioni di servizio app per puntare dalla cartella dell'app al modulo delle impostazioni.
Aggiungere una libreria di strumentazione della community
È possibile raccogliere più dati automaticamente quando si includono librerie di strumentazione della community OpenTelemetry.
Attenzione
Non è supportata né garantita la qualità delle librerie di strumentazione della community. Per suggerire una distribuzione, pubblicare o votare a favore nella community feedback. Tenere presente che alcune si basano sulle specifiche sperimentali OpenTelemetry e potrebbero introdurre modifiche di rilievo future.
Per aggiungere la community OpenTelemetry Instrumentation Library, installarla tramite il file dell'app requirements.txt. La strumentazione automatica di OpenTelemetry preleva automaticamente e strumenta tutte le librerie installate. Trovare l'elenco delle raccolte della community qui.
Aggiornare manualmente l'estensione/agente di monitoraggio
Eseguire l'aggiornamento dalle versioni 2.8.9 e successive
L'aggiornamento dalla versione 2.8.9 viene eseguito automaticamente, senza azioni aggiuntive. I nuovi bit di monitoraggio vengono recapitati in background al servizio app di destinazione e vengono prelevati al riavvio dell'applicazione.
Per verificare qual è la versione dell'estensione in esecuzione, passare a https://yoursitename.scm.azurewebsites.net/ApplicationInsights.
Eseguire l'aggiornamento dalle versioni 1.0.0 - 2.6.5
A partire dalla versione 2.8.9, viene usata l'estensione del sito preinstallata. Se si usa una versione precedente, è possibile eseguire l'aggiornamento tramite uno dei due modi seguenti:
Eseguire l'aggiornamento abilitando tramite il portale di Azure: anche se è installata l'estensione Application Insights per servizio app, l'interfaccia utente visualizza solo il pulsante Abilita. Dietro le quinte, l'estensione del sito privato precedente viene rimossa.
Impostare le impostazioni dell'applicazione per abilitare l'estensione del sito preinstallata ApplicationInsightsAgent. Per altre informazioni, vedere Abilitare tramite PowerShell.
Rimuovere manualmente l'estensione del sito privato denominata Estensione Application Insights per il Servizio app di Azure.
Se l'aggiornamento viene eseguito da una versione precedente alla 2.5.1, verificare che le ApplicationInsights DLL vengano rimosse dalla cartella bin dell'applicazione. Per ulteriori informazioni, vedere Risoluzione dei problemi.
Eseguire l'aggiornamento dalle versioni 2.8.9 e successive
L'aggiornamento dalla versione 2.8.9 viene eseguito automaticamente, senza azioni aggiuntive. I nuovi bit di monitoraggio vengono recapitati in background al servizio app di destinazione e vengono prelevati al riavvio dell'applicazione.
Per verificare qual è la versione dell'estensione in esecuzione, passare a https://yoursitename.scm.azurewebsites.net/ApplicationInsights.
Eseguire l'aggiornamento dalle versioni 1.0.0 - 2.6.5
A partire dalla versione 2.8.9, viene usata l'estensione del sito preinstallata. Se si usa una versione precedente, è possibile eseguire l'aggiornamento tramite uno dei due modi seguenti:
Eseguire l'aggiornamento abilitando tramite il portale di Azure: anche se è installata l'estensione Application Insights per servizio app, l'interfaccia utente visualizza solo il pulsante Abilita. Dietro le quinte, l'estensione del sito privato precedente viene rimossa.
Impostare le impostazioni dell'applicazione per abilitare l'estensione del sito preinstallata ApplicationInsightsAgent. Per altre informazioni, vedere Abilitare tramite PowerShell.
Rimuovere manualmente l'estensione del sito privato denominata Estensione Application Insights per il Servizio app di Azure.
Se l'aggiornamento viene eseguito da una versione precedente alla 2.5.1, verificare che le ApplicationInsights DLL vengano rimosse dalla cartella bin dell'applicazione. Per ulteriori informazioni, vedere Risoluzione dei problemi.
La versione java di Application Insights viene aggiornata automaticamente come parte degli aggiornamenti servizio app. Se si verifica un problema risolto nella versione più recente dell'agente Java di Application Insights, è possibile aggiornarlo manualmente.
Caricare il file JAR dell'agente Java in servizio app.
a. Per prima cosa, ottenere la versione più recente dell'interfaccia della riga di comando di Azure seguendo le istruzioni riportate qui.
b. Ottenere quindi la versione più recente dell'agente Java di Application Insights seguendo le istruzioni riportate qui.
c. Distribuire quindi il file JAR dell'agente Java nel servizio app usando il comando seguente: az webapp deploy --src-path applicationinsights-agent-{VERSION_NUMBER}.jar --target-path java/applicationinsights-agent-{VERSION_NUMBER}.jar --type static --resource-group {YOUR_RESOURCE_GROUP} --name {YOUR_APP_SVC_NAME}. In alternativa, è possibile usare questa guida per distribuire l'agente tramite il plug-in Maven.
Disabilitare Application Insights tramite la scheda Application Insights nel portale di Azure.
Dopo aver caricato il file JAR dell'agente, passare a Configurazioni del servizio app. Se è necessario usare il comando di avvio per Linux, includere gli argomenti JVM:
Il comando di avvio non rispetta JAVA_OPTS per JavaSE o CATALINA_OPTS per Tomcat.
Se non si usa il Comando di avvio, creare una nuova variabile di ambiente,JAVA_OPTS per JavaSE o CATALINA_OPTS per Tomcat, con il valore -javaagent:{PATH_TO_THE_AGENT_JAR}/applicationinsights-agent-{VERSION_NUMBER}.jar.
Per applicare le modifiche, riavviare l'app.
Nota
Se si imposta per JAVA_OPTS JavaSE o CATALINA_OPTS per la variabile di ambiente Tomcat, è necessario disabilitare Application Insights nel portale di Azure. In alternativa, se si preferisce abilitare Application Insights dal portale di Azure, assicurarsi di non impostare per JAVA_OPTS JavaSE o CATALINA_OPTS per la variabile Tomcat nelle impostazioni delle configurazioni di servizio app.
La versione Node.js di Application Insights viene aggiornata automaticamente come parte degli aggiornamenti servizio app e non può essere aggiornata manualmente.
La versione di Python di Application Insights viene aggiornata automaticamente come parte degli aggiornamenti servizio app e non può essere aggiornata manualmente.
Attualmente non sono disponibili opzioni per configurare l'estensione di monitoraggio per ASP.NET Core.
Per configurare il campionamento, che in precedenza era possibile controllare tramite il file applicationinsights.config, è ora possibile interagire con esso tramite le impostazioni dell'applicazione con il prefisso MicrosoftAppInsights_AdaptiveSamplingTelemetryProcessor corrispondente.
Ad esempio, per modificare la percentuale di campionamento iniziale, è possibile creare un'impostazione dell'applicazione di MicrosoftAppInsights_AdaptiveSamplingTelemetryProcessor_InitialSamplingPercentage e un valore di 100.
Per disabilitare il campionamento, impostare su MicrosoftAppInsights_AdaptiveSamplingTelemetryProcessor_MinSamplingPercentage un valore di 100.
Per l'elenco delle impostazioni e delle definizioni del processore di telemetria di campionamento adattivo supportate, vedere la documentazione sul codice e sul campionamento.
Dopo aver specificato la risorsa da usare, è possibile configurare l'agente Java. Se non si configura l'agente Java, si applicano le configurazioni predefinite.
È disponibile il set completo di configurazioni . È sufficiente incollare un file JSON valido. Escludere la stringa di connessione e tutte le configurazioni in anteprima: è possibile aggiungere gli elementi attualmente in anteprima non appena diventano disponibili a livello generale.
Dopo aver modificato le configurazioni tramite il portale di Azure, APPLICATIONINSIGHTS_CONFIGURATION_FILE la variabile di ambiente viene popolata automaticamente e visualizzata nel pannello delle impostazioni servizio app. Questa variabile contiene il contenuto JSON completo incollato nella casella di testo di configurazione portale di Azure per l'app Java.
L'agente Node.js può essere configurato tramite JSON. Impostare la variabile di ambiente APPLICATIONINSIGHTS_CONFIGURATION_CONTENT sulla stringa JSON o impostare la variabile di ambiente APPLICATIONINSIGHTS_CONFIGURATION_FILE sul percorso del file contenente il codice JSON.
Se impostato su None, disabilita la raccolta e l'esportazione dei dati di telemetria di registrazione.
OTEL_METRICS_EXPORTER
Se impostato su None, disabilita la raccolta e l'esportazione dei dati di telemetria delle metriche.
OTEL_TRACES_EXPORTER
Se impostato su None, disabilita la raccolta e l'esportazione dei dati di telemetria di traccia distribuiti.
OTEL_BLRP_SCHEDULE_DELAY
Specifica l'intervallo di esportazione della registrazione in millisecondi. Il valore predefinito è 5000.
OTEL_BSP_SCHEDULE_DELAY
Specifica l'intervallo di esportazione della traccia distribuita in millisecondi. Il valore predefinito è 5000.
OTEL_TRACES_SAMPLER_ARG
Specifica il rapporto tra i dati di telemetria di traccia distribuita da campionare. I valori accettati sono compresi tra 0 e 1. Il valore predefinito è 1.0, ovvero non viene campionata alcuna telemetria.
OTEL_PYTHON_DISABLED_INSTRUMENTATIONS
Specifica quali strumentazioni OpenTelemetry disabilitare. Se disabilitata, le strumentazioni non vengono eseguite come parte della strumentazione automatica. Accetta un elenco delimitato da virgole di nomi di librerie in minuscolo. Ad esempio, impostarlo su "psycopg2,fastapi" per disabilitare le strumentazioni Psycopg2 e FastAPI. L'impostazione predefinita è un elenco vuoto, abilitando tutte le strumentazioni supportate.
Il monitoraggio lato client è abilitato per impostazione predefinita per le app ASP.NET Core con raccolta Consigliata, indipendentemente dal fatto che sia presente l'impostazione dell'app APPINSIGHTS_JAVASCRIPT_ENABLED.
Se si vuole disabilitare il monitoraggio lato client:
Selezionare Impostazioni>Configurazione.
In Impostazioni applicazione creare un'impostazione Nuova applicazione con le informazioni seguenti:
Nome: APPINSIGHTS_JAVASCRIPT_ENABLED
Valore: false
Fare clic su Save (Salva) per salvare le impostazioni. Riavviare l'app.
Il monitoraggio lato client è un consenso esplicito per ASP.NET. Per abilitare il monitoraggio lato client:
Selezionare Impostazioni>Configurazione.
In Impostazioni applicazionecreare una nuova impostazione dell'applicazione:
Nome: immettere APPINSIGHTS_JAVASCRIPT_ENABLED.
Valore: immettere true.
Salvare le impostazioni e riavviare l'app.
Per disabilitare il monitoraggio lato client, rimuovere la coppia di valori chiave associata dalle impostazioni dell'applicazione o impostare il valore su false.
Per abilitare il monitoraggio lato client, l'agente Java può inserire browser SDK Loader (anteprima) nelle pagine HTML dell'applicazione, inclusa la configurazione del stringa di connessione appropriato.
Estensione principale, che controlla il monitoraggio del runtime.
~2 per Windows o ~3 per Linux
XDT_MicrosoftApplicationInsights_Mode
Per garantire prestazioni ottimali, in modalità predefinita sono abilitate solo le funzionalità essenziali.
disabled o recommended.
XDT_MicrosoftApplicationInsights_PreemptSdk
Solo per le app ASP.NET Core. Abilita Interop (interoperabilità) con Application Insights SDK. Carica l'estensione side-by-side con l'SDK e la usa per inviare i dati di telemetria (disabilita Application Insights SDK).
1
Definizioni delle impostazioni dell'applicazione
Nome impostazione app
Definizione
Valore
ApplicationInsightsAgent_EXTENSION_VERSION
Estensione principale, che controlla il monitoraggio del runtime.
~2
XDT_MicrosoftApplicationInsights_Mode
Per garantire prestazioni ottimali, in modalità predefinita sono abilitate solo le funzionalità essenziali.
default oppure recommended
InstrumentationEngine_EXTENSION_VERSION
Controlla se il motore InstrumentationEngine di riscrittura binaria è attivato. Questa impostazione ha implicazioni sulle prestazioni e influisce sul tempo di avvio/avvio a freddo.
~1
XDT_MicrosoftApplicationInsights_BaseExtensions
Controlla se il testo della tabella sql e di Azure vengono acquisiti insieme alle chiamate alle dipendenze. Avviso di prestazioni: il tempo di avvio dell'applicazione a freddo è interessato. Questa impostazione richiede InstrumentationEngine.
~1
Definizioni delle impostazioni dell'applicazione
Nome impostazione app
Definizione
Valore
ApplicationInsightsAgent_EXTENSION_VERSION
Estensione principale, che controlla il monitoraggio del runtime.
~2 in Windows o ~3 in Linux.
XDT_MicrosoftApplicationInsights_Java
Flag per controllare se è incluso l'agente Java.
0 o 1 (applicabile solo in Windows).
Nota
Snapshot Debugger non è disponibile per le applicazioni Java.
Definizioni delle impostazioni dell'applicazione
Nome impostazione app
Definizione
Valore
ApplicationInsightsAgent_EXTENSION_VERSION
Estensione principale, che controlla il monitoraggio del runtime.
~2 in Windows o ~3 in Linux.
XDT_MicrosoftApplicationInsights_NodeJS
Flag per controllare se è incluso l’agente Node.js.
0 o 1 (applicabile solo in Windows).
Nota
Snapshot Debugger non è disponibile per le applicazioni Node.js.
Definizioni delle impostazioni dell'applicazione
Nome impostazione app
Definizione
Valore
APPLICATIONINSIGHTS_CONNECTION_STRING
Stringa di connessioni per la risorsa di Application Insights.
Esempio: abcd1234-ab12-cd34-abcd1234abcd
ApplicationInsightsAgent_EXTENSION_VERSION
Estensione principale, che controlla il monitoraggio del runtime.
~3
Nota
Snapshot Debugger non è disponibile per le applicazioni Python.
Impostazioni dell'applicazione del servizio app con Azure Resource Manager
Le impostazioni dell'applicazione per il servizio app di Azure possono essere gestite e configurate con i modelli di Azure Resource Manager. È possibile usare questo metodo quando si distribuiscono nuove risorse del servizio app con l'automazione di Resource Manager o si modificano le impostazioni delle risorse esistenti.
Struttura di base delle impostazioni dell'applicazione JSON per una risorsa del servizio app:
Per un esempio di modello di Resource Manager con le impostazioni dell'applicazione configurate per Application Insights, questo modello può essere utile. In particolare, vedere la sezione che inizia alla riga 238.
Automatizzare la creazione di una risorsa di Application Insights e il collegamento alla risorsa del servizio app appena creata
Per creare un modello di Resource Manager con le impostazioni predefinite di Application Insights, iniziare il processo come se si intendesse creare una nuova app Web con Application Insights abilitato.
Creare una nuova risorsa del servizio app con le informazioni desiderate sull'app Web. Abilitare Application Insights nella scheda Monitoraggio.
Selezionare Rivedi e crea. Selezionare quindi Scarica un modello per l'automazione.
Questa opzione genera il modello di Resource Manager più recente con tutte le impostazioni necessarie configurate.
Nell'esempio seguente sostituire tutte le istanze di AppMonitoredSite con il nome del sito:
Nota
Se si usa Windows, impostare ApplicationInsightsAgent_EXTENSION_VERSION su ~2. Se si usa Linux, impostare ApplicationInsightsAgent_EXTENSION_VERSION su ~3.
Per abilitare il monitoraggio delle applicazioni tramite PowerShell, è necessario modificare solo le impostazioni dell'applicazione sottostanti. L'esempio seguente abilita il monitoraggio delle applicazioni per un sito Web denominato AppMonitoredSite nel gruppo di risorse AppMonitoredRG. Configura i dati da inviare alla chiave di strumentazione 012345678-abcd-ef01-2345-6789abcd.
Se si usa Windows, impostare ApplicationInsightsAgent_EXTENSION_VERSION su ~2. Se si usa Linux, impostare ApplicationInsightsAgent_EXTENSION_VERSION su ~3.
Questa sezione fornisce le risposte alle domande comuni.
Quali modifiche apporta Application Insights al progetto?
Dipende dal tipo di progetto. L'elenco seguente è un esempio per un'applicazione Web.
Aggiunge file al progetto:
ApplicationInsights.config
ai.js
Installa i pacchetti NuGet:
API di Application Insights: API di base
API di Application Insights per applicazioni Web: usata per inviare dati di telemetria dal server
API di Application Insights per applicazioni JavaScript: usata per inviare dati di telemetria dal client
Include assembly nei pacchetti:
Microsoft.ApplicationInsights
Microsoft.ApplicationInsights.Platform
Inserisce gli elementi in:
Web.config
packages.config
Inserisce frammenti nel codice client e server per inizializzarli con l'ID risorsa di Application Insights. Ad esempio, in un'app MVC il codice viene inserito nella pagina principale Views/Shared/_Layout.cshtml. Solo per i nuovi progetti, è possibile aggiungere Application Insights a un progetto esistente manualmente.
Qual è la differenza tra le metriche standard rispetto ad Application Insights e metriche del Servizio app di Azure?
Application Insights raccoglie i dati di telemetria per le richieste inviate all'applicazione. Se l'errore si verifica in WebApps/WebServer e la richiesta non ha raggiunto l'applicazione utente, Application Insights non dispone di dati di telemetria su di esso.
La durata per serverresponsetime calcolata da Application Insights non corrisponde necessariamente al tempo di risposta del server osservato dalle app Web. Questo comportamento è dovuto al fatto che Application Insights conta solo la durata quando la richiesta raggiunge effettivamente l'applicazione utente. Se la richiesta è bloccata o in coda in WebServer, il tempo di attesa viene incluso nelle metriche delle app Web, ma non nelle metriche di Application Insights.
Risoluzione dei problemi
Testare la connettività tra l'host dell'applicazione e il servizio di inserimento
Quando si crea un'app Web con i runtime ASP.NET Core nel servizio app, come sito Web iniziale viene distribuita una singola pagina HTML statica. Non è consigliabile risolvere un problema con il modello predefinito. Distribuire un'applicazione prima di risolvere un problema.
Dati di telemetria mancanti
Finestre
Verificare che l'impostazione dell'app ApplicationInsightsAgent_EXTENSION_VERSION sia impostata su un valore di ~2.
Passa a https://yoursitename.scm.azurewebsites.net/ApplicationInsights.
Verificare che lo stato dell'estensione di Application Insights sia Pre-Installed Site Extension, version 2.8.x.xxxx, is running.
Verificare che l'origine dello stato esista e abbia un aspetto simile a Status source D:\home\LogFiles\ApplicationInsights\status\status_RD0003FF0317B6_4248_1.json.
Se non è presente un valore simile, significa che l'applicazione non è attualmente in esecuzione o non è supportata. Per assicurarsi che l'applicazione sia in esecuzione, provare a visitare manualmente l'URL dell'applicazione/gli endpoint dell'applicazione, che consente di rendere disponibili le informazioni di runtime.
Verificare che IKeyExists sia True. Se è False, aggiungere APPINSIGHTS_INSTRUMENTATIONKEY e APPLICATIONINSIGHTS_CONNECTION_STRING con il GUID ikey alle impostazioni dell'applicazione.
Se l'applicazione fa riferimento a qualsiasi pacchetto di Application Insights, l'abilitazione dell'integrazione servizio app potrebbe non essere effettiva e i dati potrebbero non essere visualizzati in Application Insights. Un esempio è se in precedenza è stato instrumentato o si è tentato di instrumentare l'app con ASP.NET Core SDK. Per risolvere il problema, nella portale di Azure attivare Interoperabilità con Application Insights SDK.
Importante
Questa funzionalità è in anteprima.
I dati vengono inviati usando un approccio senza codice, anche se Application Insights SDK è stato originariamente usato o ha tentato di usarli.
Importante
Se l'applicazione usa Application Insights SDK per inviare dati di telemetria, questi saranno disabilitati. In altre parole, i dati di telemetria personalizzati (ad esempio, qualsiasi metodo Track*()) e le impostazioni personalizzate (ad esempio il campionamento) verranno disabilitate.
Linux
Verificare che l'impostazione dell'app ApplicationInsightsAgent_EXTENSION_VERSION sia impostata su un valore di ~3.
Passa a https://your site name.scm.azurewebsites.net/ApplicationInsights.
All'interno del sito confermare:
L'origine dello stato esiste e ha un aspetto simile a Status source /var/log/applicationinsights/status_abcde1234567_89_0.json.
Viene visualizzato il valore Auto-Instrumentation enabled successfully. Se non è presente un valore simile, significa che l'applicazione non è in esecuzione o non è supportata. Per assicurarsi che l'applicazione sia in esecuzione, provare a visitare manualmente l'URL dell'applicazione/gli endpoint dell'applicazione, che consente di rendere disponibili le informazioni di runtime.
IKeyExists è True. Se è False, aggiungere APPINSIGHTS_INSTRUMENTATIONKEY e APPLICATIONINSIGHTS_CONNECTION_STRING con il GUID ikey alle impostazioni dell'applicazione.
Il sito Web predefinito distribuito con le app Web non supporta il monitoraggio lato client automatico
Quando si crea un'app Web con i runtime di ASP.NET Core nel servizio app, viene distribuita una singola pagina HTML statica come sito Web iniziale. La pagina Web statica carica anche una web part gestita da ASP.NET in IIS. Questo comportamento consente di testare il monitoraggio lato server senza codice, ma non supporta il monitoraggio lato client automatico.
Se si vuole testare il server senza codice e il monitoraggio lato client per ASP.NET Core in un'app Web servizio app, è consigliabile seguire le guide ufficiali per la creazione di un'app Web ASP.NET Core. Successivamente, usare le istruzioni nell'articolo corrente per abilitare il monitoraggio.
PHP e WordPress non sono supportati
I siti PHP e WordPress non sono supportati. Attualmente non è disponibile alcun SDK/agente supportato ufficialmente per il monitoraggio lato server di questi carichi di lavoro. Per tenere traccia delle transazioni lato client in un sito PHP o WordPress, aggiungere javaScript sul lato client alle pagine Web usando JavaScript SDK.
La tabella seguente fornisce una spiegazione del significato di questi valori, delle cause sottostanti e delle correzioni consigliate.
Valore del problema
Spiegazione
Fix
AppAlreadyInstrumented:true
Questo valore indica che l'estensione ha rilevato alcuni aspetti dell'SDK già presenti nell'applicazione e che esegue il back off. Un riferimento a Microsoft.ApplicationInsights.AspNetCore o Microsoft.ApplicationInsights può causare questo valore.
Rimuovere i riferimenti. Alcuni di questi riferimenti vengono aggiunti per impostazione predefinita da determinati modelli di Visual Studio. Le versioni precedenti di Visual Studio fanno riferimento a Microsoft.ApplicationInsights.
AppAlreadyInstrumented:true
Anche la presenza di Microsoft.ApplicationsInsights DLL nella cartella dell'app da una distribuzione precedente può causare questo valore.
Pulire la cartella dell'app per assicurarsi che queste DLL vengano rimosse. Controllare sia la directory bin dell'app locale che la directory wwwroot nel servizio app. (Per controllare la directory wwwroot dell'app Web del servizio app, selezionare Strumenti avanzati (Kudu) >Console di debug>CMD>home\site\wwwroot).
IKeyExists:false
Questo valore indica che la chiave di strumentazione non è presente nell'impostazione dell'app APPINSIGHTS_INSTRUMENTATIONKEY. Le possibili cause includono la rimozione accidentale dei valori o l'aver dimenticato di impostare i valori nello script di automazione.
Assicurarsi che l'impostazione sia presente nelle impostazioni per l'applicazione del servizio app.
Nota
Quando si crea un'app Web con i runtime ASP.NET nel servizio app, come sito Web iniziale viene distribuita una singola pagina HTML statica. Non è consigliabile risolvere un problema con un modello predefinito. Distribuire un'applicazione prima di risolvere un problema.
Dati di telemetria mancanti
Verificare che l'impostazione dell'app ApplicationInsightsAgent_EXTENSION_VERSION sia impostata su un valore di ~2.
Passa a https://yoursitename.scm.azurewebsites.net/ApplicationInsights.
Verificare che Application Insights Extension Status sia Pre-Installed Site Extension, version 2.8.x.xxxx e sia in esecuzione.
Verificare che l'origine dello stato esista e abbia un aspetto simile a Status source D:\home\LogFiles\ApplicationInsights\status\status_RD0003FF0317B6_4248_1.json.
Se non è presente un valore simile, significa che l'applicazione non è attualmente in esecuzione o non è supportata. Per assicurarsi che l'applicazione sia in esecuzione, provare a visitare manualmente l'URL dell'applicazione/gli endpoint dell'applicazione, che consente di rendere disponibili le informazioni di runtime.
Verificare che IKeyExists sia true.
In caso contrario, aggiungere APPINSIGHTS_INSTRUMENTATIONKEY e APPLICATIONINSIGHTS_CONNECTION_STRING con il GUID della chiave di strumentazione alle impostazioni dell'applicazione.
Verificare che non siano presenti voci per AppAlreadyInstrumented, AppContainsDiagnosticSourceAssembly e AppContainsAspNetTelemetryCorrelationAssembly.
Se una di queste voci esiste, rimuovere i pacchetti seguenti dall'applicazione: Microsoft.ApplicationInsights, System.Diagnostics.DiagnosticSource e Microsoft.AspNet.TelemetryCorrelation.
Il sito Web predefinito distribuito con le app Web non supporta il monitoraggio lato client automatico
Quando si crea un'app Web con i runtime di ASP.NET in servizio app, viene distribuita una singola pagina HTML statica come sito Web iniziale. La pagina Web statica carica anche una web part gestita da ASP.NET in IIS. Questa pagina consente di testare il monitoraggio lato server senza codice, ma non supporta il monitoraggio lato client automatico.
Per testare il server senza codice e il monitoraggio lato client per ASP.NET in un'app Web servizio app, è consigliabile seguire le guide ufficiali per la creazione di un'app Web ASP.NET Framework. Successivamente, usare le istruzioni nell'articolo corrente per abilitare il monitoraggio.
APPINSIGHTS_JAVASCRIPT_ENABLED e urlCompressione non supportata
Se si usa APPINSIGHTS_JAVASCRIPT_ENABLED=true nei casi in cui viene codificato il contenuto, è possibile che vengano visualizzati errori come:
Errore di riscrittura URL 500.
Errore del modulo di riscrittura URL 500.53 con il messaggio "Non è possibile applicare le regole di riscrittura in uscita quando il contenuto della risposta HTTP è codificato ('gzip')."
Si verifica un errore perché l'impostazione dell'applicazione APPINSIGHTS_JAVASCRIPT_ENABLED è impostata su true e la codifica del contenuto è presente contemporaneamente. Questo scenario non è ancora supportato. La soluzione alternativa consiste nel rimuovere APPINSIGHTS_JAVASCRIPT_ENABLED dalle impostazioni dell'applicazione. Sfortunatamente, se la strumentazione JavaScript sul lato client/browser è ancora necessaria, per le pagine Web sono necessari riferimenti manuali all'SDK. Seguire le istruzioni per la strumentazione manuale con JavaScript SDK.
Per le informazioni più recenti sull'agente/estensione di Application Insights, vedere le note sulla versione.
PHP e WordPress non sono supportati
I siti PHP e WordPress non sono supportati. Attualmente non è disponibile alcun SDK/agente supportato ufficialmente per il monitoraggio lato server di questi carichi di lavoro. Per tenere traccia delle transazioni lato client in un sito PHP o WordPress, aggiungere javaScript sul lato client alle pagine Web usando JavaScript SDK.
La tabella seguente fornisce una spiegazione del significato di questi valori, delle cause sottostanti e delle correzioni consigliate.
Valore del problema
Spiegazione
Fix
AppAlreadyInstrumented:true
Questo valore indica che l'estensione ha rilevato alcuni aspetti dell'SDK già presenti nell'applicazione e che esegue il back off. Un riferimento a System.Diagnostics.DiagnosticSource, Microsoft.AspNet.TelemetryCorrelationo Microsoft.ApplicationInsights può causare questo valore.
Rimuovere i riferimenti. Alcuni di questi riferimenti vengono aggiunti per impostazione predefinita da determinati modelli di Visual Studio. Le versioni precedenti di Visual Studio potrebbero aggiungere riferimenti a Microsoft.ApplicationInsights.
AppAlreadyInstrumented:true
Anche la presenza delle DLL precedenti nella cartella dell'app da una distribuzione precedente può causare questo valore.
Pulire la cartella dell'app per assicurarsi che queste DLL vengano rimosse. Controllare sia la directory bin dell'app locale che la directory wwwroot nella risorsa del servizio app. (Per controllare la directory wwwroot dell'app Web del servizio app, selezionare Strumenti avanzati (Kudu) >Console di debug>CMD>home\site\wwwroot).
Questo valore indica che l'estensione ha rilevato riferimenti a Microsoft.AspNet.TelemetryCorrelation nell'applicazione e che esegue il back-off.
Rimuovere il riferimento.
AppContainsDiagnosticSourceAssembly**:true
Questo valore indica che l'estensione ha rilevato riferimenti a System.Diagnostics.DiagnosticSource nell'applicazione e che esegue il back-off.
Per ASP.NET rimuovere il riferimento.
IKeyExists:false
Questo valore indica che la chiave di strumentazione non è presente nell'impostazione dell'app APPINSIGHTS_INSTRUMENTATIONKEY. Le possibili cause potrebbero essere che i valori sono stati rimossi accidentalmente oppure si è dimenticato di impostare i valori nello script di automazione.
Assicurarsi che l'impostazione sia presente nelle impostazioni per l'applicazione del servizio app.
System.IO.FileNotFoundException dopo l'aggiornamento della versione 2.8.44
La versione 2.8.44 di strumentazione automatica aggiorna Application Insights SDK alla versione 2.20.0. Application Insights SDK ha un riferimento indiretto a System.Runtime.CompilerServices.Unsafe.dll tramite System.Diagnostics.DiagnosticSource.dll. Se l'applicazione ha il reindirizzamento dell'associazione per System.Runtime.CompilerServices.Unsafe.dll e se questa libreria non è presente nella cartella dell'applicazione, potrebbe generare System.IO.FileNotFoundException.
Per risolvere questo problema, rimuovere la voce di reindirizzamento dell'associazione per System.Runtime.CompilerServices.Unsafe.dll dal file web.config. Se l'applicazione vuole usare System.Runtime.CompilerServices.Unsafe.dll, impostare il reindirizzamento dell'associazione come illustrato di seguito:
Come soluzione alternativa temporanea, è possibile impostare l'impostazione dell'app ApplicationInsightsAgent_EXTENSION_VERSION su un valore di 2.8.37. Questa impostazione attiva servizio app per usare l'estensione di Application Insights precedente. Le mitigazioni temporanee devono essere usate solo come provvisorio.
Dati di telemetria mancanti
Verificare che ApplicationInsightsAgent_EXTENSION_VERSION l'impostazione dell'app sia impostata su un valore di ~2 in Windows, ~3 in Linux
Esaminare il file di log per verificare che l'agente sia stato avviato correttamente: passare a https://yoursitename.scm.azurewebsites.net/, in SSH passare alla directory radice, il file di log si trova in LogFiles/ApplicationInsights.
Dopo aver abilitato il monitoraggio delle applicazioni per l'app Java, è possibile verificare che l'agente funzioni esaminando le metriche attive; anche prima di distribuire l’app nel servizio app verranno visualizzate alcune richieste dall'ambiente. Tenere presente che il set completo di dati di telemetria è disponibile solo quando l'app è stata distribuita ed eseguita.
Impostare la APPLICATIONINSIGHTS_SELF_DIAGNOSTICS_LEVEL variabile di ambiente su debug se non vengono visualizzati errori e non sono presenti dati di telemetria.
Dati di telemetria mancanti
Finestre
Verificare che ApplicationInsightsAgent_EXTENSION_VERSION l'impostazione dell'app sia impostata su un valore pari ~2a .
Passa a https://yoursitename.scm.azurewebsites.net/ApplicationInsights.
Verificare che Application Insights Extension Status sia Pre-Installed Site Extension, version 2.8.x.xxxx, is running.
Se SDKPresent è true, significa che l'estensione ha rilevato che alcuni aspetti dell'SDK sono già presenti nell'applicazione e eseguiranno il back-off.
Linux
Verificare che ApplicationInsightsAgent_EXTENSION_VERSION l'impostazione dell'app sia impostata su un valore pari ~3a .
Passare a /var/log/applicationinsights/ e aprire status.json.
Verificare che SDKPresent sia impostato su false, AgentInitializedSuccessfully su true e IKey per avere un iKey valido.
Se SDKPresent è true, significa che l'estensione ha rilevato che alcuni aspetti dell'SDK sono già presenti nell'applicazione e eseguiranno il back-off.
Dati di telemetria duplicati
Usare la strumentazione automatica solo in servizio app se non si usa la strumentazione manuale di OpenTelemetry nel codice, ad esempio la distribuzione OpenTelemetry di Monitoraggio di Azure o l'utilità di esportazione OpenTelemetry di Monitoraggio di Azure.
L'uso della strumentazione automatica sopra la strumentazione manuale potrebbe causare dati di telemetria duplicati e aumentare il costo. Per usare l'installazione automatica di OpenTelemetry del servizio app, rimuovere prima di tutto la strumentazione manuale di OpenTelemetry dal codice.
Dati di telemetria mancanti
Se mancano i dati di telemetria, seguire questa procedura per verificare che la strumentazione automatica sia abilitata correttamente.
Verificare che l'installazione automatica sia abilitata nell'esperienza di Application Insights nella risorsa servizio app.
Verificare che l'impostazione dell'app ApplicationInsightsAgent_EXTENSION_VERSION sia impostata su un valore di ~3 e che APPLICATIONINSIGHTS_CONNECTION_STRING punti alla risorsa di Application Insights appropriata.
Controllare la diagnostica di strumentazione automatica e i log di stato.
a. Passare a /var/log/applicationinsights/ e aprire status_*.json.
b. Verificare che AgentInitializedSuccessfully sia impostato su true e che IKey abbia una chiave iKey valida.
Il file applicationinsights-extension.log nella stessa cartella può mostrare altre diagnostiche utili.
App Django
Se l'app usa Django e non viene avviata o usa impostazioni non corrette, assicurarsi di impostare la variabile di ambiente DJANGO_SETTINGS_MODULE. Per informazioni dettagliate, vedere la sezione strumentazione Django.
Questa sezione contiene le note sulla versione per app Azure Servizio basato sulla versione ANT per la strumentazione di runtime con Application Insights.
Per trovare la versione dell'estensione attualmente in uso, passare a https://<yoursitename>.scm.azurewebsites.net/ApplicationInsights.
Separare il pacchetto .NET/.NET Core, Java e Node.js in un'estensione del sito Windows diversa servizio app.
2.8.42
Sono state aggiunte distribuzioni autonome e supporto di .NET 6.0 con .NET Startup Hook.
2.8.41
Rimozione della versione non supportata (2.1). Sono supportate le versioni 3.1 e 5.0.
2.8.39
Aggiunta del supporto di .NET Core 5.0.
2.8.38
Rimosse le versioni non supportate (2.0, 2.2, 3.0). Sono supportate le versioni 2.1 e 3.1.
2.8.37
Estensione di Windows AppSvc: .NET Core funziona con qualsiasi versione di System.Diagnostics.DiagnosticSource.dll.
2.8.36
Estensione di Windows AppSvc: abilitata per l'interazione tra operazioni con AI SDK in .NET Core.
2.8.35
Estensione di Windows AppSvc: aggiunta del supporto di .NET Core 3.1.
2.8.33
Agenti .NET, .NET Core, Java e Node.js ed estensione Windows: supporto per cloud sovrani. Le stringhe di connessione possono essere usate per inviare dati ai cloud sovrani.
2.8.31
Nell'agente ASP.NET Core è stato risolto un problema con Application Insights SDK. Se il runtime carica la versione non corretta di System.Diagnostics.DiagnosticSource.dll, l'estensione senza codice non arresta l'applicazione ed esegue il backoff. Per risolvere il problema, i clienti devono rimuovere System.Diagnostics.DiagnosticSource.dll dalla cartella bin o usare la versione precedente dell'estensione impostando ApplicationInsightsAgent_EXTENSIONVERSION=2.8.24. In caso contrario, il monitoraggio delle applicazioni non è abilitato.
2.8.26
Correzione del problema relativo all'SDK di Application Insights aggiornato. L'agente non tenta di caricare AiHostingStartup se ApplicationInsights.dll è già presente nella cartella bin. Risolve i problemi relativi alla riflessione tramite Assembly<AiHostingStartup>.GetTypes().
Problemi noti: è possibile generare un'eccezione System.IO.FileLoadException: Could not load file or assembly 'System.Diagnostics.DiagnosticSource, Version=4.0.4.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' se viene caricata un'altra versione della DLL DiagnosticSource. Può verificarsi, ad esempio, se System.Diagnostics.DiagnosticSource.dll è presente nella cartella di pubblicazione. Come mitigazione, usare la versione precedente dell'estensione configurando le impostazioni dell'app nei servizi app: ApplicationInsightsAgent_EXTENSIONVERSION=2.8.24.
2.8.24
Nuovo pacchetto della versione 2.8.21.
2.8.23
Aggiunta del supporto per il monitoraggio senza codice di ASP.NET Core 3.0.
Aggiornamento di ASP.NET Core SDK alla versione 2.8.0 per le versioni di runtime 2.1, 2.2 e 3.0. Le app destinate a .NET Core 2.0 continuano a usare la versione 2.1.1 dell'SDK.
2.8.14
Aggiornamento di ASP.NET Core SDK dalla versione 2.3.0 alla versione più recente (2.6.1) per le app destinate a .NET Core 2.1, 2.2. Le app destinate a .NET Core 2.0 continuano a usare la versione 2.1.1 dell'SDK.
2.8.12
Supporto per le app ASP.NET Core 2.2.
Correzione di un bug nell'estensione ASP.NET Core che causa l'inserimento dell'SDK anche quando è già stata eseguita la strumentazione dell'applicazione con l'SDK. Per le app 2.1 e 2.2, la presenza di ApplicationInsights.dll nella cartella dell'applicazione ora causa il backoff dell'estensione. Per le app 2.0, viene eseguito il backoff dell'estensione solo se ApplicationInsights è abilitato con una chiamata a UseApplicationInsights().
Correzione permanente per la risposta HTML incompleta per le app ASP.NET Core. Questa correzione è ora estesa per funzionare con le app .NET Core 2.2.
Aggiunta del supporto per disattivare l'inserimento JavaScript per le app ASP.NET Core (APPINSIGHTS_JAVASCRIPT_ENABLED=false appsetting). Per ASP.NET Core, l'inserimento JavaScript è in modalità di "rifiuto esplicito" per impostazione predefinita, a meno che non sia esplicitamente disattivato. L'impostazione predefinita viene eseguita per mantenere il comportamento corrente.
Correzione di un bug dell'estensione ASP.NET Core che causava l'inserimento anche se la chiave di strumentazione non era presente.
Correzione di un bug nella logica del prefisso della versione dell'SDK che causava una versione non corretta dell'SDK nei dati di telemetria.
Aggiunta del prefisso della versione dell'SDK per le app ASP.NET Core per identificare il modo in cui sono stati raccolti i dati di telemetria.
Correzione della pagina SCM- ApplicationInsights per visualizzare correttamente la versione dell'estensione preinstallata.
2.8.10
Correzione per la risposta HTML incompleta per le app ASP.NET Core.
Separare il pacchetto .NET/.NET Core, Java e Node.js in un'estensione del sito Windows diversa servizio app.
2.8.33
Agenti .NET, .NET Core, Java e Node.js ed estensione Windows: supporto per cloud sovrani. Le stringhe di connessione possono essere usate per inviare dati ai cloud sovrani.
2.8.24
Nuovo pacchetto della versione 2.8.21.
2.8.43
Separare il pacchetto .NET/.NET Core, Java e Node.js in un'estensione del sito Windows diversa servizio app.
2.8.42
Aggiornamento all'agente Java 3.2.0 dalla versione 2.5.1.
2.8.40
Aggiornamento all'agente Java 3.1.1 (GA) dalla versione 3.0.2.
2.8.38
Aggiornamento all'agente Java 3.0.2 (GA) dalla versione 2.5.1.
2.8.33
Agenti .NET, .NET Core, Java e Node.js ed estensione Windows: supporto per cloud sovrani. Le stringhe di connessione possono essere usate per inviare dati ai cloud sovrani.
2.8.24
Nuovo pacchetto della versione 2.8.21.
2.8.43
Separare il pacchetto .NET/.NET Core, Java e Node.js in un'estensione del sito Windows diversa servizio app.
2.8.42
Aggiornamento di AI SDK alla versione 2.1.8 dalla versione 2.1.7. Aggiunta del supporto per le identità gestite di Microsoft Entra assegnate dall'utente e dal sistema.
2.8.41
Aggiornamento di AI SDK alla versione 2.1.7 dalla versione 2.1.3.
2.8.40
Aggiornamento di AI SDK alla versione 2.1.3 dalla versione 1.8.8.
2.8.38
Aggiornamento di AI SDK alla versione 1.8.8 dalla versione 1.8.7.
2.8.33
Agenti .NET, .NET Core, Java e Node.js ed estensione Windows: supporto per cloud sovrani. Le stringhe di connessione possono essere usate per inviare dati ai cloud sovrani.
2.8.24
Nuovo pacchetto della versione 2.8.21.
Le note sulla versione per Python verranno visualizzate qui.