Condividi tramite


Raccogliere dati di telemetria con OpenTelemetry in Application Insights

Prima di poter monitorare l'applicazione, è necessario strumentarla. Nelle sezioni seguenti vengono illustrate alcune nozioni di base sulla raccolta dati di Azure Monitor Application Insights.

La strumentazione di applicazioni con OpenTelemetry (OTel) in Application Insights consente la raccolta di dati di telemetria standardizzata tra piattaforme. Ciò migliora l'osservabilità, semplifica il monitoraggio delle prestazioni e supporta la traccia distribuita, le metriche e l'analisi dei log.

Nota

Per le app per le funzioni di Azure, vedere Usare OpenTelemetry con Funzioni di Azure.

Approcci di strumentazione per Application Insights: OpenTelemetry e altro ancora

A livello di base, la "strumentazione" consente semplicemente a un'applicazione di acquisire i dati di telemetria.

Esistono due metodi per instrumentare l'applicazione:

La strumentazione automatica abilita la raccolta di dati di telemetria tramite la configurazione senza toccare il codice dell'applicazione. Anche se è più conveniente, tende a essere meno configurabile. Non è disponibile anche in tutte le lingue. Consulta Ambienti e lingue supportati per l'autostrumentazione. Quando l'autoinstrumentazione è disponibile, è il modo più semplice per abilitare Azure Monitor Application Insights.

La strumentazione manuale sta codificando in base all'API Application Insights o OpenTelemetry. Nel contesto di un utente, si riferisce in genere all'installazione di un SDK specifico del linguaggio in un'applicazione. Ciò significa che è necessario gestire gli aggiornamenti alla versione più recente del pacchetto manualmente. È possibile usare questa opzione se si ha bisogno di effettuare chiamate di dipendenza personalizzate o chiamate API che non vengono acquisite per impostazione predefinita con l'autoinstrumentazione. Sono disponibili due opzioni per la strumentazione manuale:

Anche se si vede OpenTelemetry come direzione futura, non è previsto di interrompere la raccolta dei dati dagli SDK meno recenti. Abbiamo ancora strada da fare prima che le distribuzioni di Azure OpenTelemetry raggiungano la parità delle funzionalità con gli SDK di Application Insights. In molti casi, i clienti continuano a scegliere di usare gli SDK di Application Insights per molto tempo.

Importante

"Manuale" non significa che sarà necessario scrivere codice complesso per definire intervalli per le tracce distribuite, anche se rimane un'opzione. Le librerie di strumentazione inserite nelle distribuzioni consentono di acquisire facilmente i segnali di telemetria in framework e librerie comuni. Microsoft sta lavorando attivamente per strumentare gli SDK dei servizi di Azure più diffusi usando OpenTelemetry, in modo che questi segnali siano disponibili per i clienti che usano la distribuzione OpenTelemetry di Monitoraggio di Azure.

Tipi di dati di telemetria

I dati di telemetria raccolti per osservare l'applicazione possono essere suddivisi in tre tipi o "pilastri":

  • Traccia distribuita
  • Metriche
  • Log

Una storia di osservabilità completa include tutti e tre i pilastri e Application Insights suddivide ulteriormente questi pilastri in tabelle basate sul modello di dati. Gli SDK di Application Insights o le distribuzioni OpenTelemetry di Monitoraggio di Azure includono tutto ciò che è necessario per Application Performance Monitoring in Azure. Il pacchetto stesso è gratuito per l'installazione e si paga solo per i dati inseriti in Monitoraggio di Azure.

Le fonti seguenti illustrano i tre pilastri:

Routing dei dati di telemetria

Esistono due modi per inviare i dati a Monitoraggio di Azure (o a qualsiasi fornitore):

  • Tramite un utilità di esportazione diretta
  • Tramite un agente

Un esportatore diretto invia i dati di telemetria in-process (dal codice dell'applicazione) direttamente all'endpoint di inserimento di Azure Monitor. Il vantaggio principale di questo approccio è l'onboarding della semplicità.

Gli SDK di Application Insights attualmente disponibili e le distribuzioni OpenTelemetry di Monitoraggio di Azure si basano su un'utilità di esportazione diretta.

Nota

Per la posizione di Monitoraggio di Azure in OpenTelemetry-Collector, vedere le domande frequenti su OpenTelemetry.

Suggerimento

Se si prevede di usare OpenTelemetry-Collector per il campionamento o l'elaborazione dati aggiuntiva, è possibile ottenere queste stesse funzionalità predefinite in Monitoraggio di Azure. Le risorse di Application Insights basate sull'area di lavoro traggono vantaggio dalle trasformazioni in fase di inserimento. Per abilitare, seguire i dettagli dell'esercitazione, ignorando il passaggio che illustra come configurare un'impostazione di diagnostica perché con Application Insights incentrato sull'area di lavoro è già configurata. Se si filtrano meno di 50% del volume complessivo, non sono previsti costi aggiuntivi. Dopo il 50%, c'è un costo, ma molto meno del costo standard per GB.

OpenTelemetry

Microsoft è lieta di adottare OpenTelemetry come futuro della strumentazione dei dati di telemetria. I clienti hanno chiesto la strumentazione indipendente dal fornitore e siamo lieti di collaborare con la community OpenTelemetry per creare API e SDK coerenti in tutte le lingue.

Microsoft ha collaborato con gli stakeholder del progetto di due progetti di telemetria open source più diffusi, OpenCensus e OpenTracing. Insieme, abbiamo contribuito a creare un singolo progetto, OpenTelemetry. OpenTelemetry include contributi di tutti i principali fornitori di cloud e Application Performance Management (APM) e vive all'interno di Cloud Native Computing Foundation (CNCF). Microsoft è un membro Platinum del CNCF.

Per la terminologia, vedere il glossario nelle specifiche OpenTelemetry.

Alcuni termini legacy in Application Insights risultano confusi a causa della convergenza dell'industria verso OpenTelemetry. Nella tabella seguente vengono evidenziate queste differenze. I termini openTelemetry sostituiscono i termini di Application Insights.

Approfondimenti sulle Applicazioni OpenTelemetry
Agenti di raccolta automatici Librerie di strumentazione
Canale Esportatore
Senza codice/basato su agente Strumentazione automatica
Tracce Log
Richieste Intervalli di server
Dipendenze Altri tipi di intervalli (client, interno e così via)
ID operazione ID della traccia
ID o ID padre dell'operazione ID intervallo

Passaggi successivi

Per ulteriori informazioni, consultare le Domande frequenti su Azure Monitor Application Insights e le Domande frequenti su OpenTelemetry.

Selezionare l'approccio di abilitazione: