Panoramica di Application Insights

Application Insights è un'estensione di Monitoraggio di Azure e offre funzionalità di monitoraggio delle prestazioni delle applicazioni . Gli strumenti di APM sono utili per monitorare le applicazioni dallo sviluppo, durante il test e nell'ambiente di produzione nei modi seguenti:

  • Comprendere in modo proattivo le prestazioni di un'applicazione.
  • Esaminare in modo reattivo i dati di esecuzione dell'applicazione per determinare la causa di un evento imprevisto.

Screenshot che mostra Application Insights nel portale di Azure.

Oltre alla raccolta di metriche e dati di telemetria dell'applicazione, che descrivono le attività e l'integrità dell'applicazione, è possibile usare Application Insights per raccogliere e archiviare i dati di registrazione delle tracce delle applicazioni.

La traccia del log è associata ad altri dati di telemetria per fornire una visualizzazione dettagliata dell'attività. L'aggiunta della registrazione di traccia alle app esistenti richiede solo la fornitura di una destinazione per i log. Raramente è necessario modificare il framework di registrazione.

Application Insights offre altre funzionalità, tra cui:

  • Metriche attive: osservare l'attività dell'applicazione distribuita in tempo reale senza alcun effetto sull'ambiente host.
  • Disponibilità: noto anche come monitoraggio delle transazioni sintetiche. Eseguire il probe degli endpoint esterni delle applicazioni per testare la disponibilità complessiva e la velocità di risposta nel tempo.
  • Integrazione di GitHub o Azure DevOps: creare elementi di lavoro GitHub o Azure DevOps nel contesto dei dati di Application Insights.
  • Utilizzo: informazioni sulle funzionalità più diffuse con gli utenti e sul modo in cui gli utenti interagiscono e usano l'applicazione.
  • Rilevamento intelligente: rilevare automaticamente errori e anomalie tramite l'analisi proattiva dei dati di telemetria.

Application Insights supporta la traccia distribuita, nota anche come correlazione dei componenti distribuiti. Questa funzionalità consente di cercare e visualizzare un flusso end-to-end di un'esecuzione o di una transazione specifica. La possibilità di tracciare l'attività da fine a fine è importante per le applicazioni compilate come componenti distribuiti o microservizi.

La mappa delle applicazioni consente una visualizzazione di alto livello e dall'alto verso il basso dell'architettura dell'applicazione e riferimenti visivi a colpo d'occhio all'integrità e alla velocità di risposta dei componenti.

Per comprendere il numero di risorse di Application Insights necessarie per coprire l'applicazione o i componenti negli ambienti, vedere la guida alla pianificazione della distribuzione di Application Insights.

Diagramma che mostra il percorso dei dati mentre scorre attraverso i livelli del servizio Application Insights.

Le impostazioni del firewall devono essere modificate per consentire ai dati di raggiungere gli endpoint di inserimento. Per altre informazioni, vedere Indirizzi IP usati da Monitoraggio di Azure.

Come si usa Application Insights?

Application Insights viene abilitato tramite la strumentazione automatica (agente) o aggiungendo Application Insights SDK o la distribuzione OpenTelemetry di Monitoraggio di Azure al codice dell'applicazione. Sono supportate molte lingue . Le applicazioni possono trovarsi in Azure, in locale o ospitate da un altro cloud. Per capire quale tipo di strumentazione è più adatto, vedere Ricerca per categorie instrumentare un'applicazione?.

L'agente di Application Insights o l'SDK pre-elabora i dati di telemetria e le metriche prima di inviare i dati ad Azure. Viene quindi inserita ed elaborata ulteriormente prima che venga archiviata nei log di Monitoraggio di Azure (Log Analytics). Per questo motivo, è necessario un account Azure per usare Application Insights.

Il modo più semplice per iniziare a usare Application Insights consiste nell'usare le portale di Azure e le esperienze visive predefinite. Gli utenti avanzati possono eseguire query sui dati sottostanti direttamente per creare visualizzazioni personalizzate tramite dashboard e cartelle di lavoro di Monitoraggio di Azure.

È consigliabile iniziare con la mappa delle applicazioni per una visualizzazione di alto livello. Usare l'esperienza di ricerca per limitare rapidamente i dati di telemetria e i dati in base al tipo e alla data.time. In alternativa, è possibile eseguire ricerche all'interno dei dati (ad esempio, con tracce di log) e filtrare in base a una determinata operazione correlata di interesse.

Due visualizzazioni sono particolarmente utili:

  • Visualizzazione delle prestazioni: ottenere informazioni approfondite sulle prestazioni dell'applicazione o dell'API e delle dipendenze downstream. È anche possibile trovare un esempio rappresentativo per esplorare end-to-end.
  • Visualizzazione errori: comprendere quali componenti o azioni generano errori ed errori e eccezioni. Le viste predefinite sono utili per tenere traccia dell'integrità dell'applicazione in modo proattivo e per l'analisi reattiva della causa radice.

Creare avvisi di Monitoraggio di Azure per segnalare potenziali problemi nel caso in cui le parti dell'applicazione o dei componenti siano diverse dalla baseline stabilita.

I prezzi di Application Insights si basano sull'utilizzo. Si paga solo per le risorse usate. Per altre informazioni sui prezzi, vedere:

Ricerca per categorie instrumentare un'applicazione?

La strumentazione automatica è il metodo di strumentazione preferito. Non richiede investimenti per sviluppatori ed elimina il sovraccarico futuro correlato all'aggiornamento dell'SDK. È anche l'unico modo per instrumentare un'applicazione in cui non si ha accesso al codice sorgente.

È necessario installare Application Insights SDK solo se:

Per usare l'SDK, installare un piccolo pacchetto di strumentazione nell'app e quindi instrumentare l'app Web, tutti i componenti in background e JavaScript all'interno delle pagine Web. L'app e i relativi componenti non devono necessariamente essere ospitati in Azure.

La strumentazione monitora l'app e indirizza i dati di telemetria a una risorsa di Application Insights usando un token univoco. L'effetto sulle prestazioni dell'app è ridotto. Le chiamate di rilevamento non bloccano e vengono inviate in batch in un thread separato.

La strumentazione automatica integrata è disponibile per Servizio app di Azure .NET, Servizio app di Azure .NET Core, Funzioni di Azure e Azure Macchine virtuali.

L'agente di Application Insights di Monitoraggio di Azure è disponibile per i carichi di lavoro in esecuzione in macchine virtuali locali.

Per una visualizzazione dettagliata di tutti gli ambienti, le lingue e i provider di risorse supportati da strumentazione automatica, vedere Che cos'è l'strumentazione automatica per Application Insights di Monitoraggio di Azure?.

Per altri scenari, è necessario Application Insights SDK .

È disponibile anche un'offerta OpenTelemetry .


Linguaggi supportati

Questa sezione descrive gli scenari supportati.

Piattaforme e framework supportati

Questa sezione elenca tutte le piattaforme e i framework supportati.

Integrazione del servizio di Azure (abilitazione del portale, distribuzioni di Azure Resource Manager)

Strumentazione automatica (abilitare senza modifiche al codice)

Strumentazione manuale/SDK (alcune modifiche al codice necessarie)

Nota

La strumentazione basata su OpenTelemetry è disponibile per C#, Node.js e Python. Esaminare le limitazioni indicate all'inizio della documentazione ufficiale di ogni lingua. Se è necessaria un'esperienza di funzionalità completa, usare gli SDK di Application Insights esistenti.

Framework di registrazione

Esportazione e analisi dei dati

SDK non supportati

Esistono diversi altri SDK di Application Insights supportati dalla community. Monitoraggio di Azure offre supporto solo quando si usano le opzioni di strumentazione supportate elencate in questo articolo.

Stiamo valutando costantemente le opportunità per espandere il supporto per altre lingue. Per le ultime notizie sull'SDK, vedere Aggiornamenti di Azure per Application Insights.


Domande frequenti

Questa sezione fornisce risposte alle domande comuni.

Quali dati di telemetria vengono raccolti da Application Insights?

Da app Web del server:

Dalle pagine Web client:

  • Eccezioni non rilevate nell'app, incluse le informazioni su

    • Analisi dello stack
    • Dettagli dell'eccezione e messaggio che accompagnano l'errore
    • Numero & di colonna riga di errore
    • URL in cui è stato generato l'errore
  • Le richieste di dipendenza di rete effettuate dall'app XHR e fetch (la raccolta di recupero è disabilitata per impostazione predefinita), includono informazioni su:

    • URL dell'origine delle dipendenze
    • Metodo Command & usato per richiedere la dipendenza
    • Durata della richiesta
    • Codice risultato e stato di esito positivo della richiesta
    • ID (se presente) dell'utente che effettua la richiesta
    • Contesto di correlazione (se disponibile) in cui viene effettuata la richiesta
  • Informazioni sull'utente (ad esempio, Percorso, rete, IP)

  • Informazioni sul dispositivo (ad esempio Browser, sistema operativo, versione, lingua, modello)

  • Informazioni sulla sessione

    Nota

    Per alcune applicazioni, ad esempio applicazioni a pagina singola, la durata potrebbe non essere registrata e il valore predefinito è 0.

    Per altre informazioni, vedere Raccolta, conservazione e archiviazione di dati in Application Insights.

Da altre origini, se sono configurate:

Come è possibile gestire le risorse di Application Insights con PowerShell?

È possibile scrivere script di PowerShell usando Monitoraggio risorse di Azure per:

  • Creare e aggiornare risorse di Application Insights.
  • Impostare il piano tariffario.
  • Ottenere la chiave di strumentazione.
  • Aggiungere un avviso di metrica.
  • Aggiungere un test di disponibilità.

Non è possibile configurare un report esplora metriche o configurare l'esportazione continua.

Come è possibile eseguire query sulla telemetria di Application Insights?

Usare l'API REST per eseguire query di Log Analytics .

È possibile inviare dati di telemetria al portale di Application Insights?

È consigliabile usare gli SDK e usare l'API SDK. Sono disponibili varianti dell'SDK per diverse piattaforme. Questi SDK gestiscono processi come buffering, compressione, limitazione e tentativi. Tuttavia, lo schema di inserimento e il protocollo di endpoint sono pubblici.

Quanto tempo occorre per raccogliere i dati di telemetria?

Quasi tutti i dati di Application Insights hanno una latenza inferiore a 5 minuti. Alcuni dati possono richiedere più tempo, che è tipico per i file di log di dimensioni maggiori. Vedere il contratto a livello di servizio di Application Insights.

Risoluzione dei problemi

Vedere articoli dedicati sulla risoluzione dei problemi per Application Insights.

Guida e supporto

Supporto tecnico di Azure

Per supporto tecnico di Azure problemi, aprire un ticket di supporto tecnico di Azure.

Forum delle domande di Microsoft Q&A

Pubblicare domande generali nel forum delle risposte di Microsoft Q&A.

Stack Overflow

Pubblicare domande di codifica in Stack Overflow usando un tag di Application Insights.

Community di commenti e suggerimenti

Lasciare il feedback del prodotto per il team di progettazione nella community dei commenti e suggerimenti.

Passaggi successivi