Condividi tramite


Risolvere i problemi di Application Insights Profiler

Questo articolo illustra i passaggi e le informazioni per la risoluzione dei problemi relativi all'uso di Azure Application Insights Profiler.

Assicurarsi di usare l'endpoint profiler appropriato

Attualmente, le uniche aree che richiedono modifiche dell'endpoint sono Azure per enti pubblici e Azure Cina.

Impostazione dell'app Cloud per enti pubblici degli Stati Uniti China Cloud
ApplicationInsightsProfilerEndpoint https://profiler.monitor.azure.us https://profiler.monitor.azure.cn
ApplicationInsightsEndpoint https://dc.applicationinsights.us https://dc.applicationinsights.azure.cn

Assicurarsi che l'app venga eseguita nella versione corretta

Profiler è supportato in .NET Framework dopo la versione 4.6.2.

Se l'app Web è un'applicazione ASP.NET Core, deve essere in esecuzione nel runtime ASP.NET Core più recente supportato.

Assicurarsi di usare il piano di servizio di Azure corretto

Profiler non è attualmente supportato nei piani di servizio app gratuiti o condivisi. Eseguire l'aggiornamento a uno dei piani di base per il funzionamento di Profiler.

Nota

Il piano a consumo di Funzioni di Azure non è supportato. Per altre informazioni, vedere Profilare l'app Funzioni di Azure dinamica con Application Insights.

Assicurarsi di cercare i dati del profiler entro l'intervallo di tempo corretto

Se i dati che si tenta di visualizzare sono più vecchi di un paio di settimane, provare a limitare il filtro temporale e riprovare. Le tracce vengono eliminate dopo sette giorni.

Assicurarsi di poter accedere al gateway

Verificare che i proxy o un firewall non blocchino l'accesso a https://gateway.azureserviceprofiler.net.

Verificare che il profiler sia in esecuzione o che non sia scad stato eseguito

I dati di profilatura vengono caricati solo quando possono essere collegati a una richiesta che si verifica mentre Profiler è in esecuzione. Il profiler raccoglie i dati per due minuti ogni ora. È anche possibile attivare profiler avviando una sessione di profilatura.

Profiler scrive messaggi di traccia ed eventi personalizzati nella risorsa di Application Insights. È possibile usare questi eventi per visualizzare l'esecuzione di Profiler.

Per cercare i messaggi di traccia e gli eventi personalizzati inviati da Profiler alla risorsa di Application Insights, seguire questa procedura:

  1. Nella risorsa di Application Insights selezionare Cerca nella barra dei menu superiore.

    Screenshot della selezione del pulsante di ricerca dalla risorsa di Application Insights.

  2. Usare la stringa stopprofiler OR startprofiler OR upload OR ServiceProfilerSample di ricerca per trovare i dati pertinenti.

    Screenshot dei risultati della ricerca della stringa di ricerca di cui sopra.

    I risultati della ricerca precedenti includono due esempi di ricerche da due risorse di intelligenza artificiale:

    • Se l'applicazione non riceve richieste mentre Profiler è in esecuzione, il messaggio spiega che il caricamento viene annullato a causa di nessuna attività.

    • Profiler avvia e invia eventi personalizzati quando rileva le richieste che si verificano durante l'esecuzione di Profiler. Se viene visualizzato l'evento ServiceProfilerSample personalizzato, significa che viene acquisito un profilo ed è disponibile nel riquadro Prestazioni di Application Insights .

    Se non vengono visualizzati record, Profiler non è in esecuzione o ha impiegato troppo tempo per rispondere. Verificare che Profiler sia abilitato nel servizio di Azure.

Conteggio doppio in thread paralleli

Quando due o più thread paralleli sono associati a una richiesta, la metrica del tempo totale nel visualizzatore dello stack può essere superiore alla durata della richiesta. In tal caso, il tempo totale del thread è maggiore del tempo trascorso effettivo.

Ad esempio, un thread potrebbe attendere il completamento dell'altro. Il visualizzatore tenta di rilevare questa situazione e omette questa attesa. In questo caso, potrebbe visualizzare informazioni eccessive anziché ignorare le informazioni potenzialmente critiche.

Quando vengono visualizzati thread paralleli nelle tracce, determinare quali thread sono in attesa in modo da poter identificare il percorso attivo per la richiesta. In genere, il thread che entra rapidamente in uno stato di attesa è semplicemente in attesa sugli altri thread. Concentrarsi sugli altri thread e ignorare il tempo nei thread in attesa.

Risolvere i problemi di Profiler nel servizio di Azure specifico

Servizio app di Azure

Per il corretto funzionamento di Profiler, verificare quanto segue:

  • L'app Web ha Application Insights abilitato con le impostazioni corrette.

  • Il processo Web ApplicationInsightsProfiler3 è in esecuzione. Per controllare il processo Web, seguire questa procedura:

    1. Accedere al servizio Kudu.

      Nel portale di Azure passare al servizio app. Selezionare Strumenti avanzati dal menu a sinistra e quindi selezionare Vai.

    2. Nel menu in alto selezionare Strumenti>Dashboard processi Web. Verrà visualizzato il riquadro Processi Web .

      Se ApplicationInsightsProfiler3 non viene visualizzato, riavviare l'applicazione del servizio app.

      Screenshot del riquadro Processi Web, che visualizza il nome, lo stato e l'ultima esecuzione dei processi.

    3. Per visualizzare i dettagli del processo Web, incluso il log, selezionare il collegamento ApplicationInsightsProfiler3 . Verrà visualizzato il riquadro Dettagli processo Web continuo .

      Screenshot del riquadro Dettagli processo Web continuo.

Se Profiler non funziona ancora, è possibile scaricare il log e inviare un ticket di supporto di Azure.

Controllare la pagina dello stato dell'estensione del sito Servizi di diagnostica

Se Profiler è stato abilitato tramite il riquadro Application Insights nel portale, viene gestito dall'estensione del sito Servizi di diagnostica. È possibile controllare la pagina di stato di questa estensione passando a https://<site-name>.scm.azurewebsites.net/DiagnosticServices.

Nota

Il dominio del collegamento alla pagina di stato varia a seconda del cloud. Questo dominio sarà lo stesso del sito di gestione Kudu per il servizio app.

La pagina di stato mostra lo stato di installazione degli agenti Profiler e Snapshot Debugger . Se si verifica un errore imprevisto, verrà visualizzata la pagina di stato e verrà illustrato come correggere l'errore.

È possibile usare il sito di gestione Kudu per il servizio app per ottenere l'URL di base di questa pagina di stato. A tal fine, attenersi alla seguente procedura:

  1. Aprire l'applicazione del servizio app dal portale di Azure.

  2. Selezionare Strumenti> avanzatiVai.

  3. Una volta nel sito di gestione Kudu, aggiungere /DiagnosticServices all'URL e premere INVIO.

    Terminerà come segue: https://<kudu-url>/DiagnosticServices. Verrà visualizzata una pagina di stato simile alla seguente:

    Screenshot della pagina Stato di Servizi di diagnostica.

Nota

L'installazione senza codice di Application Insights Profiler segue i criteri di supporto di .NET Core. Per altre informazioni sui runtime supportati, vedere Criteri di supporto di .NET Core.

Installazione manuale

Quando si configura Profiler, gli aggiornamenti vengono applicati alle impostazioni dell'app Web. Se necessario, è possibile applicare gli aggiornamenti manualmente.

Troppe sessioni di profilatura attive

Nel servizio app di Azure esiste un limite di una sola sessione di profilatura alla volta. Questo limite viene applicato a livello di macchina virtuale in tutte le applicazioni e gli slot di distribuzione in esecuzione in un piano di servizio app.

Questo limite si applica anche alle sessioni di profilatura avviate tramite Diagnosticare e risolvere i problemi, Kudu e Application Insights Profiler.

Se Profiler tenta di avviare una sessione quando un'altra è già in esecuzione, viene registrato un errore nel log applicazioni e anche nel log continuo del processo Web per ApplicationInsightsProfiler3.

È possibile che venga visualizzato uno dei messaggi seguenti nei log:

  • Microsoft.ServiceProfiler.Exceptions.TooManyETWSessionException
  • Error: StartProfiler failed. Details: System.Runtime.InteropServices.COMException (0xE111005E): Exception from HRESULT: 0xE111005E

Il codice 0xE111005E di errore indica che non è stato possibile avviare una sessione di profilatura perché è già in esecuzione un'altra sessione.

Per evitare l'errore, spostare alcune app Web in un piano di servizio app diverso o disabilitare Profiler in alcune applicazioni. Se si usano slot di distribuzione, assicurarsi di arrestare eventuali slot inutilizzati.

Errore di distribuzione: Directory non vuota 'D:\home\site\wwwroot\App_Data\jobs'

Se si ridistribuisce l'app Web in una risorsa app Web con Profiler abilitato, potrebbe essere visualizzato il messaggio seguente:

Directory non vuota 'D:\home\site\wwwroot\App_Data\jobs'

Questo errore si verifica se si esegue Distribuzione Web da script o Azure Pipelines. Per risolvere questo problema, aggiungere i parametri di distribuzione seguenti all'attività Distribuzione Web:

  • -skip:Directory='.*\\App_Data\\jobs\\continuous\\ApplicationInsightsProfiler.*'

  • -skip:skipAction=Delete,objectname='dirPath',absolutepath='.*\\App_Data\\jobs\\continuous$'

  • -skip:skipAction=Delete,objectname='dirPath',absolutepath='.*\\App_Data\\jobs$'

  • -skip:skipAction=Delete,objectname='dirPath',absolutepath='.*\\App_Data$'

Questi parametri eliminano la cartella usata da Application Insights Profiler e sbloccano il processo di ridistribuzione. Non influiscono sull'istanza di Profiler attualmente in esecuzione.

Il profiler è in esecuzione?

Profiler viene eseguito come processo Web continuo nell'app Web. È possibile aprire la risorsa dell'app Web nel portale di Azure. Nel riquadro Processi Web controllare lo stato di ApplicationInsightsProfiler. Se non è in esecuzione, aprire Log per ottenere altre informazioni.

Macchine virtuali e servizi cloud

Per verificare se Profiler è configurato correttamente da Diagnostica di Azure, seguire questa procedura:

  1. Verificare che il contenuto della configurazione di Diagnostica di Azure distribuita sia quello previsto.

  2. Assicurarsi che Diagnostica di Azure passi il valore appropriato iKey nella riga di comando di Profiler.

  3. Controllare il file di log di Profiler per verificare se Profiler è stato eseguito ma ha restituito un errore.

Per controllare le impostazioni usate per configurare Diagnostica di Azure, seguire questa procedura:

  1. Accedere alla macchina virtuale.

  2. Aprire il file di log in questo percorso. La versione del plug-in potrebbe essere più recente nel computer.

    • Per le macchine virtuali:

      C:\WindowsAzure\logs\Plugins\Microsoft.Azure.Diagnostics.PaaSDiagnostics\1.11.3.12\DiagnosticsPlugin.log

    • Per i servizi cloud:

      C:\logs\Plugins\Microsoft.Azure.Diagnostics.PaaSDiagnostics\1.11.3.12\DiagnosticsPlugin.log

  3. Nel file cercare la stringa WadCfg per trovare le impostazioni passate alla macchina virtuale per configurare Diagnostica di Azure.

  4. Controllare se l'oggetto iKey usato dal profiler è corretto.

  5. Controllare la riga di comando che avvia Profiler. Gli argomenti della riga di comando si trovano nel file seguente (l'unità potrebbe essere c: o d: e la directory potrebbe essere nascosta):

    • Per le macchine virtuali:

      C:\ProgramData\ApplicationInsightsProfiler\config.json

    • Per i servizi cloud:

      D:\ProgramData\ApplicationInsightsProfiler\config.json

  6. Verificare che nella iKey riga di comando di Profiler sia corretto.

  7. Usando il percorso trovato nel file di config.json precedente, controllare il file di log di Profiler, denominato BootstrapN.log. Vengono visualizzate le informazioni seguenti:

    • Informazioni di debug che indicano le impostazioni in uso da Profiler.
    • Messaggi di stato e di errore da Profiler.

    È possibile trovare il file dalle indicazioni seguenti:

    • Per le macchine virtuali:

      C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics\1.17.0.6\ApplicationInsightsProfiler

    • Per i servizi cloud:

      C:\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics\1.17.0.6\ApplicationInsightsProfiler

  8. Se Profiler è in esecuzione mentre l'applicazione riceve richieste, viene visualizzato il messaggio "Attività rilevata da iKey".

  9. Quando la traccia viene caricata, viene visualizzato il messaggio "Avvia caricamento traccia".

Modificare le regole del proxy di rete o del firewall

Se l'applicazione si connette a Internet tramite un proxy o un firewall, potrebbe essere necessario aggiornare le regole per comunicare con il servizio Profiler.

Gli INDIRIZZI IP usati da Application Insights Profiler sono inclusi nel tag del servizio Monitoraggio di Azure. Per altre informazioni, vedere la documentazione relativa ai tag del servizio.

Se tutto il resto ha esito negativo

Inviare un ticket di supporto nel portale di Azure. Includere l'ID di correlazione dal messaggio di errore.

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.