Condividi tramite


Risolvere i problemi di Application Insights Profiler

Questo articolo presenta i passaggi e le informazioni per la risoluzione dei problemi per consentire l'uso di Application Insights Profiler.

Si usa l'endpoint profiler appropriato?

Attualmente, le uniche aree che richiedono modifiche agli endpoint sono Azure per enti pubblici e Microsoft Azure gestito da 21Vianet.

Impostazione app US Government Cloud Cloud per la Cina
ApplicationInsightsProfilerEndpoint https://profiler.monitor.azure.us https://profiler.monitor.azure.cn
ApplicationInsightsEndpoint https://dc.applicationinsights.us https://dc.applicationinsights.azure.cn

L'app è in esecuzione nella versione corretta?

Profiler è supportato in .NET Framework successiva alla 4.6.2.

Se l'app Web è un'applicazione ASP.NET Core, deve essere in esecuzione nell'ultimo runtime supportato ASP.NET Core.

Si usa 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 Profiler per iniziare a funzionare.

Nota

Il piano a consumo Funzioni di Azure non è supportato. Vedere Profila app live Funzioni di Azure con Application Insights.

Si stanno cercando i dati di Profiler entro l'intervallo di tempo corretto?

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

È possibile accedere al gateway?

Verificare che un firewall o proxy non blocchi l'accesso a questa pagina Web.

Vengono visualizzati timeout o è necessario verificare se Profiler è in esecuzione?

I dati di profilatura vengono caricati solo quando possono essere collegati a una richiesta che si è verificata durante l'esecuzione di Profiler. Profiler raccoglie i dati per due minuti ogni ora. È anche possibile attivare Profiler avviando una sessione di profilatura.

Profiler scrive i messaggi di analisi e gli eventi personalizzati nella risorsa di Application Insights. È possibile usare questi eventi per monitorare l'esecuzione di Profiler.

Cercare i messaggi di analisi e gli eventi personalizzati inviati da Profiler alla risorsa di Application Insights.

  1. Nella risorsa di Application Insights selezionare Cerca nel menu in alto.

    Screenshot che mostra la selezione del pulsante Cerca dalla risorsa di Application Insights.

  2. Usare la stringa di ricerca seguente per trovare i dati pertinenti:

    stopprofiler OR startprofiler OR upload OR ServiceProfilerSample
    

    Screenshot che mostra i risultati della ricerca della stringa di ricerca indicata in precedenza.

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

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

    • Profiler ha avviato e inviato eventi personalizzati quando ha rilevato richieste che si sono verificate durante l'esecuzione di Profiler. Se viene visualizzato l'evento ServiceProfilerSample personalizzato, significa che un profilo è stato acquisito ed è disponibile nel riquadro Prestazioni di Application Insights.

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

Doppio conteggio in thread paralleli

Quando due o più thread paralleli sono associati a una richiesta, la metrica del tempo totale nel visualizzatore dello stack potrebbe 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 prova a rilevare questa situazione e omette l'attesa non interessante. In questo modo, si sbaglia sul lato di visualizzare troppe informazioni invece di omettere ciò che potrebbe essere informazioni critiche.

Quando vengono visualizzati thread paralleli nelle tracce, determinare quali thread sono in attesa in modo da poter identificare il percorso critico per la richiesta. In genere, il thread che entra rapidamente in uno stato di attesa è 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

Le sezioni seguenti illustrano i passaggi per la risoluzione dei problemi relativi all'uso di Profiler nel servizio app Azure o in Azure Servizi cloud.

Servizio app di Azure

Per il corretto funzionamento di Profiler, assicurarsi di:

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

  • Il processo Web ApplicationInsightsProfiler3 è in esecuzione. Per controllare il processo Web:

    1. Passare a Kudu. Nel portale di Azure:

      1. Nell'istanza di servizio app selezionare Strumenti avanzati nel riquadro sinistro.
      2. Selezionare Vai.
    2. Nel menu in alto selezionare Strumenti>dashboard processi Web. Verrà visualizzato il riquadro WebJobs (Processi Web).

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

      Screenshot che mostra il riquadro Processi Web, che mostra il nome, lo stato e l'ultimo runtime dei processi.

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

      Screenshot che mostra il riquadro Dettagli processo Web continuo.

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

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

Se profiler è stato abilitato tramite il riquadro Application Insights nel portale, viene gestito dall'estensione del sito di 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 è lo stesso del sito di gestione Kudu per servizio app.

La pagina di stato mostra lo stato di installazione degli agenti Profiler e Snapshot Debugger . Se si è verificato un errore imprevisto, viene visualizzato insieme alla procedura per risolverlo.

È possibile usare il sito di gestione Kudu per servizio app per ottenere l'URL di base di questa pagina di stato:

  1. Aprire l'applicazione del servizio app nel portale di Azure.
  2. Selezionare Strumenti avanzati.
  3. Selezionare Vai.
  4. Nel sito di gestione kudu:
    1. Aggiungi /DiagnosticServices all'URL.
    2. Selezionare INVIO.

Termina come https://<kudu-url>/DiagnosticServices.

Viene visualizzata una pagina di stato simile all'esempio seguente.

Screenshot che mostra la pagina relativa allo 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, vengono apportati alcuni aggiornamenti alle impostazioni dell'app Web. Se necessario, è possibile applicare manualmente gli aggiornamenti.

Troppe sessioni di profilatura attive

Nel servizio app Azure è previsto 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 ugualmente alle sessioni di profilatura avviate tramite Diagnostica e risoluzione dei problemi, Kudu e Application Insights Profiler. Se Profiler tenta di avviare una sessione quando un altro è già in esecuzione, viene registrato un errore nel registro applicazioni e anche il log continuo del processo Web per ApplicationInsightsProfiler3.

Nei log potrebbe essere visualizzato uno dei messaggi seguenti:

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

Il codice di errore 0xE111005E 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 gli slot di distribuzione, assicurarsi di arrestare eventuali slot inutilizzati.

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

Se si sta ridistribuendo l'app Web a una risorsa di App Web con Profiler abilitato, può 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 da Azure Pipelines. Risolvere il problema aggiungendo 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.

Application Insights 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 WebJobs controllare lo stato di ApplicationInsightsProfiler. Se non è in esecuzione, aprire Log per altre informazioni.

Macchine virtuali e Servizi cloud di Azure

Per verificare se Profiler è configurato correttamente da Diagnostica di Azure:

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

  2. Assicurarsi Diagnostica di Azure passa la chiave iKey corretta nella riga di comando del profiler.

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

Per controllare le impostazioni usate per configurare Diagnostica di Azure:

  1. Accedere alla macchina virtuale (VM).

  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 Azure 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. Verificare se la chiave iKey usata dal sink del profiler è corretta.

  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 Azure Servizi cloud:

    D:\ProgramData\ApplicationInsightsProfiler\config.json
    
  6. Assicurarsi che la chiave di strumentazione nella riga di comando di Profiler sia corretta.

  7. Usando il percorso trovato nel file di config.json precedente, controllare il file di log del profiler, denominato BootstrapN.log. Vengono visualizzati questi dati:

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

    È possibile trovare il file:

    Per le macchine virtuali:

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

    Per Azure Servizi cloud:

    C:\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics\1.17.0.6\ApplicationInsightsProfiler
    
  8. Se Profiler è in esecuzione mentre l'applicazione riceve le richieste, viene visualizzato il messaggio seguente: "Attività rilevata da iKey".

  9. Quando la traccia viene caricata, viene visualizzato il messaggio seguente: "Avviare il caricamento della traccia".

Modificare le regole proxy o firewall di rete

Se l'applicazione si connette a Internet tramite un proxy o un firewall, potrebbe essere necessario aggiornare le regole per comunicare con 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.

Supporto tecnico

Se è ancora necessaria assistenza, inviare un ticket di supporto nel portale di Azure. Includere l'ID di correlazione dal messaggio di errore.