Condividi tramite


Guida, supporto e feedback di OpenTelemetry

Questo articolo offre opzioni di supporto, supporto e feedback per OpenTelemetry in Application Insights di Monitoraggio di Azure per .NET, Java, Node.js e app Python.

Domande frequenti

Che cos'è OpenTelemetry?

Si tratta di un nuovo standard open source per l'osservabilità. Per altre informazioni, vedere OpenTelemetry.

Perché Monitoraggio di Azure Microsoft investe in OpenTelemetry?

Microsoft sta investendo in OpenTelemetry per i motivi seguenti:

  • Garantisce la sua operatività a prescindere dal vendor e fornisce API/SDK coerenti in tutti i linguaggi.
  • Riteniamo che nel tempo OpenTelemetry consentirà ai clienti di Monitoraggio di Azure di osservare le applicazioni scritte in altri linguaggi oltre ai linguaggi supportati.
  • Espande i tipi di dati che è possibile raccogliere tramite un set completo di librerie di strumentazione.
  • OpenTelemetry Software Development Kit (SDK) tende a essere più efficiente su larga scala rispetto ai predecessori, gli SDK di Application Insights.
  • OpenTelemetry si allinea alla strategia di Microsoft, che si prefigge di adottare l'open source.

Qual è lo stato di OpenTelemetry?

Vedere Stato di OpenTelemetry.

Che cos'è la distribuzione OpenTelemetry di Monitoraggio di Azure?

Può essere considerata un wrapper sottile che aggrega tutti i componenti OpenTelemetry per un'esperienza di prima classe in Azure. In OpenTelemetry questo wrapper è detto anche distribuzione.

Perché dovrei usare la distribuzione di OpenTelemetry di Monitoraggio di Azure?

L'uso della distribuzione OpenTelemetry di Azure Monitor presenta diversi vantaggi rispetto a OpenTelemetry nativo della community:

Nello spirito di OpenTelemetry, abbiamo progettato la distribuzione in modo che sia aperta ed estendibile. Ad esempio, è possibile aggiungere:

  • Esportazione del protocollo OTLP (OpenTelemetry Protocol) e invio simultaneo a una seconda destinazione
  • Altre librerie di strumentazione non incluse nella distribuzione

Poiché la distribuzione fornisce una distribuzione OpenTelemetry, la distribuzione supporta qualsiasi elemento supportato da OpenTelemetry. Ad esempio, è possibile aggiungere altri processori di telemetria, utilità di esportazione o librerie di strumentazione, se OpenTelemetry li supporta.

Nota

La distribuzione imposta il campionatore su un campionatore personalizzato a frequenza fissa per Application Insights. È possibile passare a un campionatore diverso, ma ciò potrebbe disabilitare alcune delle funzionalità incluse della distribuzione. Per altre informazioni sul campionatore supportato, vedere la sezione Abilitare il campionamento di Configurare OpenTelemetry di Monitoraggio di Azure.

Per i linguaggi privi di un utilità di esportazione OpenTelemetry autonoma supportata, la distribuzione OpenTelemetry di Monitoraggio di Azure è l'unico modo attualmente supportato per usare OpenTelemetry con Monitoraggio di Azure. Per i linguaggi con un utilità di esportazione OpenTelemetry autonoma supportata, è possibile usare la distribuzione OpenTelemetry di Monitoraggio di Azure o l'utilità di esportazione OpenTelemetry autonoma appropriata a seconda dello scenario di telemetria. Per altre informazioni, vedere Quando usare l'utilità di esportazione OpenTelemetry di Monitoraggio di Azure?.

Come è possibile testare la distribuzione OpenTelemetry di Monitoraggio di Azure?

Consultare la documentazione di abilitazione per .NET, Java, JavaScript (Node.js) e Python.

È consigliabile usare OpenTelemetry o l'SDK Application Insights?

È consigliabile usare la distribuzione OpenTelemetry, a meno che non sia necessaria una funzionalità disponibile solo con il supporto formale nell'SDK Application Insights.

L'adozione di OpenTelemetry ora consente di non dover effettuare la migrazione in un secondo momento.

Quando è consigliabile usare l'utilità di esportazione OpenTelemetry di Monitoraggio di Azure?

Per ASP.NET Core, Java, Node.js e Python, è consigliabile usare la distribuzione OpenTelemetry di Monitoraggio di Azure. Si tratta di una riga di codice con cui iniziare.

Per tutti gli altri scenari .NET, inclusi ASP.NET classico, app console, Windows Forms (WinForms) e così via, è consigliabile usare l'utilità di esportazione OpenTelemetry di Monitoraggio di Azure .NET: Azure.Monitor.OpenTelemetry.Exporter.

Per scenari di telemetria Python più complessi che richiedono una configurazione avanzata, è consigliabile usare l'utilità di esportazione OpenTelemetry di Monitoraggio di Azure Python.

Qual è lo stato di rilascio corrente delle funzionalità della distribuzione OpenTelemetry di Monitoraggio di Azure?

Nel grafico seguente viene visualizzato il supporto delle funzionalità OpenTelemetry per ogni linguaggio.

Funzionalità .NET Node.js Python Java
Traccia distribuita
Metriche personalizzate
Metriche standard
Campionamento a frequenza fissa
Archiviazione offline e retry automatici
Segnalazione eccezioni
Raccolta di log ⚠️
Eventi personalizzati ⚠️ ⚠️ ⚠️
Autenticazione Microsoft Entra
Metriche attive
Filtro delle metriche attive
Rilevare il contesto delle risorse per macchine virtuali/set di scalabilità di macchine virtuali e servizio app
Rilevare il contesto delle risorse per servizio Azure Kubernetes e Funzioni
Eventi di test della disponibilità generati tramite l'API Traccia disponibilità
Filtrare le richieste, le dipendenze, i log e le eccezioni in base all'ID utente anonimo e all'origine sintetica
Filtrare dipendenze, log ed eccezioni in base al nome dell'operazione
Campionamento adattivo
Profiler ⚠️
Debugger di snapshot

Chiave

È possibile usare OpenTelemetry per i Web browser?

Sì, ma non è consigliabile e Azure non lo supporta. OpenTelemetry JavaScript è fortemente ottimizzato per Node.js. È invece consigliabile usare l'SDK JavaScript Application Insights.

Per quando è prevista la disponibilità dell'SDK OpenTelemetry per l'uso nei Web browser?

L'SDK Web OpenTelemetry non ha una timeline di disponibilità determinata. Probabilmente serviranno diversi anni perché un SDK browser sia una valida alternativa all'SDK JavaScript di Application Insights.

Oggi è possibile testare OpenTelemetry in un Web browser?

La sandbox Web OpenTelemetry è un fork progettato per consentire il funzionamento di OpenTelemetry in un browser. Non è ancora possibile inviare dati di telemetria ad Application Insights. L'SDK non definisce eventi client generali.

L'esecuzione di Application Insights insieme a agenti concorrenti come AppDynamics, DataDog e NewRelic è supportata?

Non sono previsti il supporto e il test di questa pratica, anche se le distribuzioni consentono di esportare simultaneamente verso un endpoint OTLP e Monitoraggio di Azure.

È possibile usare funzionalità di anteprima negli ambienti di produzione?

Non è una scelta consigliata. Vedere Condizioni per l'utilizzo supplementari per le anteprime di Microsoft Azure.

Qual è la differenza tra strumentazione manuale e automatica?

Vedere la panoramica di OpenTelemetry.

Che cos'è l'agente di raccolta OpenTelemetry?

Alcuni clienti usano l'agente di raccolta OpenTelemetry come alternativa agente, anche se al momento Microsoft non supporta ufficialmente un approccio basato su agente per il monitoraggio delle applicazioni. Nel frattempo, la community open source ha contribuito a un'utilità di esportazione di Monitoraggio di Azure dell'agente di raccolta OpenTelemetry che alcuni clienti usano per inviare dati ad Application Insights di Monitoraggio di Azure. Questo non è supportato da Microsoft.

Qual è la differenza tra OpenCensus e OpenTelemetry?

OpenCensus è il precursore di OpenTelemetry. Microsoft ha contribuito a riunire OpenTracing e OpenCensus per creare OpenTelemetry, un unico standard di osservabilità a livello globale. L'SDK Python attualmente consigliato per la produzione per Monitoraggio di Azure si basa su OpenCensus. Microsoft si impegna a rendere Monitoraggio di Azure basato su OpenTelemetry.

In Grafana, perché vedo Status: 500. Can't visualize trace events using the trace visualizer?

È possibile provare a visualizzare i log di testo non elaborati anziché le tracce OpenTelemetry.

In Application Insights la tabella 'Traces' archivia i log di testo non elaborati a scopo diagnostico. Consentono di identificare e correlare le tracce associate alle richieste degli utenti, ad altri eventi e ai report delle eccezioni. Tuttavia, la tabella 'Traces' non contribuisce direttamente alla visualizzazione delle transazioni end-to-end (grafico a cascata) negli strumenti di visualizzazione come Grafana.

Con l'adozione crescente delle procedure native del cloud, esiste un'evoluzione nella raccolta e nella terminologia dei dati di telemetria. OpenTelemetry è diventato uno standard per la raccolta e la strumentazione dei dati di telemetria. In questo contesto, il termine 'Traces' ha assunto un nuovo significato. Anziché ai log non elaborati, 'Traces' in OpenTelemetry fa riferimento a una forma più completa e strutturata di dati di telemetria che include intervalli, che rappresentano singole unità di lavoro. Questi intervalli sono fondamentali per la creazione di viste di transazioni dettagliate, consentendo un monitoraggio e una diagnostica migliori delle applicazioni native del cloud.

Risoluzione dei problemi

Passaggio 1: abilitare la registrazione diagnostica

L'utilità di esportazione del Monitoraggio di Azure utilizza EventSource per la registrazione interna. I log di esportazione sono disponibili per qualsiasi EventListener acconsentendo esplicitamente all'origine denominata OpenTelemetry-AzureMonitor-Exporter. Per conoscere i passaggi per la risoluzione dei problemi, vedere Risoluzione dei problemi OpenTelemetry su GitHub.

Passaggio 2: testare la connettività tra l'host dell'applicazione e il servizio di inserimento dati

Gli SDK (Software Development Kit) e gli agenti di Application Insights inviano dati di telemetria per essere inseriti come chiamate REST agli endpoint di inserimento. Per testare la connettività dal server Web o dal computer host dell'applicazione con gli endpoint del servizio di inserimento dati, usare i comandi cURL o le richieste REST non elaborate da PowerShell. Per altre informazioni, vedere Risolvere i problemi di dati di telemetria mancanti delle applicazioni in Application Insights per Monitoraggio di Azure.

Problemi noti

Gli elementi seguenti sono problemi noti per le utilità di esportazione OpenTelemetry di Monitoraggio di Azure:

  • Nome dell'operazione mancante nei dati di telemetria delle dipendenze. La mancanza del nome dell'operazione causa errori e influisce negativamente sull'esperienza della scheda prestazioni.

  • Modello dispositivo mancante nei dati di telemetria delle richieste e delle dipendenze. La mancanza del modello dispositivo influisce negativamente sull'analisi della coorte del dispositivo.

Supporto tecnico

Selezionare la scheda del linguaggio scelto per scoprire le opzioni di supporto.

Commenti e suggerimenti su OpenTelemetry

Per inviare un feedback: