Condividi tramite


Rilevamento della dipendenza in Application Insights

Una dipendenza è un componente chiamato dall'applicazione. In genere è un servizio chiamato tramite il protocollo HTTP oppure un database o un file system. Application Insights misura la durata delle chiamate di dipendenza e se ha esito negativo o no, e raccoglie informazioni come il nome della dipendenza. È possibile analizzare chiamate di dipendenza specifiche e correlarle a richieste ed eccezioni.

Dipendenze rilevate automaticamente

Questa sezione si collega agli elenchi delle chiamate di dipendenza che vengono rilevate automaticamente come dipendenze senza richiedere alcun'altra modifica al codice dell'applicazione. Queste dipendenze sono visualizzate nelle viste Mappa delle applicazioni e Diagnostica delle transazioni di Application Insights.

Se la dipendenza non è presente nell'elenco, è comunque possibile tenerne traccia manualmente, vedere Tenere traccia manualmente delle dipendenze.

Per un elenco di tutte le dipendenze raccolte automaticamente, vedere le schede specifiche della lingua in Aggiungere e modificare OpenTelemetry di Monitoraggio di Azure per le applicazioni.NET, Java, Node.js e Python.

Come funziona il monitoraggio automatico delle dipendenze?

Le dipendenze vengono raccolte automaticamente usando una delle tecniche seguenti, a seconda del metodo di raccolta dei dati di telemetria.

  • Le librerie di strumentazione OpenTelemetry vengono usate per raccogliere automaticamente le dipendenze, ad esempio le chiamate HTTP, SQL e Azure SDK. Queste librerie si associano a framework e librerie client supportati usando DiagnosticSource o meccanismi equivalenti.

  • Negli ambienti supportati, ad esempio Servizi app di Azure, la strumentazione automatica è disponibile e abilitata per impostazione predefinita, inserendo gli agenti di raccolta dati di telemetria in fase di esecuzione senza modifiche al codice.

  • In altri ambienti gli sviluppatori possono configurare manualmente la strumentazione usando i pacchetti Azure.Monitor.OpenTelemetry.* e le API OpenTelemetry per controllare quali dipendenze vengono rilevate e come vengono arricchite o filtrate.

Tenere traccia manualmente delle dipendenze

È possibile tenere traccia manualmente delle dipendenze quando la raccolta automatica non soddisfa le esigenze.

Suggerimento

Per i nuovi progetti, è consigliabile usare OpenTelemetry per migliorare la flessibilità e la compatibilità futura.

Per informazioni su come tenere traccia manualmente delle dipendenze, vedere Aggiungere e modificare OpenTelemetry di Monitoraggio di Azure per le applicazioni .NET, Java, Node.jse Python.

Dove trovare i dati sulle dipendenze

Gli strumenti e le viste seguenti in Application Insights semplificano l'esplorazione e l'analisi dei dati di telemetria delle dipendenze:

Visualizzazioni Descrizione
Mappa delle applicazioni Offre una rappresentazione visiva delle dipendenze dell'applicazione e delle relative relazioni con i servizi esterni.
Diagnostica delle transazioni Visualizza i dettagli delle transazioni end-to-end, correlando operazioni lato server con chiamate di dipendenza.
Scheda Browser nelle visualizzazioni di errori e prestazioni Evidenzia le chiamate AJAX dai browser client.
Scheda Server nelle visualizzazioni di errori e prestazioni Consente di analizzare le richieste del server lente o non riuscite ed esaminare le chiamate di dipendenza correlate.

Vedere esempi per tracciare le richieste alle dipendenze e le richieste non riuscite associate alle chiamate non riuscite alle dipendenze.
Log di Monitoraggio di Azure Abilita query e analisi avanzate sui dati di telemetria delle dipendenze.

Vedere esempi per tenere traccia delle dipendenze usando KQL.

Diagnosticare le richieste lente

Ogni evento di richiesta è associato alle chiamate alle dipendenze, alle eccezioni e ad altri eventi registrati durante l’elaborazione della richiesta. Se quindi alcune richieste non vengono eseguite correttamente, è possibile capire se il problema è causato dalle risposte lente da una dipendenza.

Tracciare dalle richieste alle dipendenze

Selezionare la scheda Prestazioni a sinistra e selezionare la scheda Dipendenze nella parte superiore.

Selezionare un nome di dipendenza in Generale. Dopo aver selezionato una dipendenza, viene visualizzato un grafico della distribuzione delle durate della dipendenza.

Screenshot che mostra la scheda Dipendenze aperta per selezionare un nome di dipendenza nel grafico.

Selezionare il pulsante Esempi in basso a destra. Selezionare quindi un esempio per visualizzare i dettagli delle transazioni end-to-end.

Screenshot che mostra la selezione di un esempio per visualizzare i dettagli delle transazioni end-to-end.

Profilatura del sito live

. NET Profiler traccia le chiamate HTTP al sito live e mostra le funzioni nel codice che hanno richiesto più tempo.

Richieste non riuscite

Le richieste non riuscite possono anche essere associate a chiamate non riuscite a dipendenze.

Selezionare la scheda Errori a sinistra e quindi selezionare la scheda Dipendenze nella parte superiore.

Screenshot che mostra la selezione del grafico delle richieste non riuscite.

Qui viene visualizzato il conteggio delle dipendenze non riuscito. Per ottenere altre informazioni su un'occorrenza non riuscita, selezionare un nome di dipendenza nella tabella inferiore. Selezionare il pulsante Dipendenze in basso a destra per visualizzare i dettagli delle transazioni end-to-end.

Log (Analisi)

È possibile tenere traccia delle dipendenze nel linguaggio di query Kusto. Ecco alcuni esempi.

  • Trovare eventuali chiamate alle dipendenze non riuscite:

    dependencies | where success != "True" | take 10
    
  • Trovare le chiamate AJAX:

    dependencies | where client_Type == "Browser" | take 10
    
  • Trovare le chiamate alle dipendenze associate alle richieste:

    dependencies
    | where timestamp > ago(1d) and  client_Type != "Browser"
    | join (requests | where timestamp > ago(1d))
        on operation_Id  
    
  • Trovare le chiamate AJAX associate alle visualizzazioni di pagina:

    dependencies
    | where timestamp > ago(1d) and  client_Type == "Browser"
    | join (browserTimings | where timestamp > ago(1d))
        on operation_Id
    

SDK open source

Analogamente a ogni SDK di Application Insights, il modulo di raccolta delle dipendenze è anche open source. Leggere e contribuire al codice o segnalare i problemi nel repository GitHub ufficiale.

Passaggi successivi