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.
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.
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:
- Sono necessari eventi e metriche personalizzati.
- È necessario controllare il flusso dei dati di telemetria.
- La strumentazione automatica non è disponibile, in genere a causa delle limitazioni della lingua o della piattaforma.
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)
- Azure Macchine virtuali e Azure set di scalabilità di macchine virtuali
- Servizio app di Azure
- Funzioni di Azure
- Azure Spring Apps
- Azure Servizi cloud, inclusi ruoli Web e di lavoro
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
- ILogger
- Log4Net, NLog o System.Diagnostics.Trace
- Log4J, Logback o java.util.logging
- Plug-in LogStash
- Monitoraggio di Azure
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:
- Richieste HTTP.
- Dipendenze. Chiamate ai database SQL, chiamate HTTP a servizi esterni, Azure Cosmos DB, Archiviazione tabelle di Azure, Archiviazione BLOB di Azure e Archiviazione code di Azure.
- Eccezioni e analisi dello stack.
- Contatori delle prestazioni: se si usa l'agente di Application Insights di Monitoraggio di Azure, il monitoraggio di Azure per le macchine virtuali o i set di scalabilità di macchine virtuali o il writer raccolto di Application Insights.
- Metrica ed eventi personalizzati codificati.
- Log di traccia se si configura l'agente di raccolta appropriato.
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.