Esempio: Usare OpenTelemetry con Monitoraggio di Azure e Application Insights
Sono disponibili molti sistemi APM (Application Performance Management) commerciali tra cui scegliere. In Azure il prodotto principale di monitoraggio delle applicazioni è Application Insights, che fa parte di Monitoraggio di Azure. Uno dei vantaggi di un prodotto APM integrato è che può correlare le diverse origini dati di osservabilità. Application Insights offre visualizzazioni avanzate e funzionalità di analisi.
1. Aggiunta della distribuzione di Application Insights
Per semplificare l'esperienza di ASP.NET con Monitoraggio di Azure, viene fornito un pacchetto wrapper (denominato distribuzione in linguaggio OTel) che esegue la maggior parte della configurazione di OpenTelemetry.
Questo esempio è basato sulla procedura dettagliata DI OTLP. Seguire i passaggi da 1 a 5 per creare il codice dell'applicazione usando l'utilità di esportazione OTLP. In questo esempio il codice verrà esteso per l'invio di dati ad Application Insights.
Eseguire lo stesso progetto dal passaggio 5 e aggiungere il pacchetto NuGet seguente:
<ItemGroup>
<PackageReference Include="Azure.Monitor.OpenTelemetry.AspNetCore" Version="1.3.0-beta.1" />
</ItemGroup>
Nota
Sostituire la versione con la versione più recente disponibile
2. Configurare l'utilità di esportazione
Aggiungere il codice di inizializzazione OTel seguente prima builder.Build();
di :
if (!string.IsNullOrEmpty(builder.Configuration["APPLICATIONINSIGHTS_CONNECTION_STRING"]))
{
otel.UseAzureMonitor();
}
UseAzureMonitor()
è il tocco magico che aggiungerà le librerie di strumentazione e gli esportatori comuni per Application Insights. È sufficiente aggiungere i nomi Meter
e ActivitySource
personalizzati alla registrazione.
La stessa inizializzazione OTel funziona per OTLP di Application Insights, la differenza è l'utilità di esportazione selezionata. È possibile usare entrambi nella stessa applicazione e selezionarli definendo le variabili di ambiente appropriate.
3. Specificare il stringa di connessione
Se non si è già un clienti di Azure, è possibile creare un account gratuito all'indirizzo https://azure.microsoft.com/free/. Accedere al portale di Azure e selezionare una risorsa di Application Insights esistente o crearne una nuova con https://ms.portal.azure.com/#create/Microsoft.AppInsights.
Application Insights identifica l'istanza da usare per archiviare ed elaborare i dati tramite una chiave di strumentazione e una stringa di connessione disponibili in alto a destra nell'interfaccia utente del portale.
Se si usa il servizio app di Azure, questa stringa di connessione viene trasmessa automaticamente all'applicazione come variabile di ambiente. Per altri servizi o durante l'esecuzione in locale, è necessario passarlo usando la APPLICATIONINSIGHTS_CONNECTION_STRING
variabile di ambiente o in appsettings.json. Per l'esecuzione in locale, è più semplice aggiungere il valore a appsettings.development.json:
"AzureMonitor": {
"ConnectionString": "InstrumentationKey=12345678-abcd-abcd-abcd-12345678..."
}
Nota
Sostituire il valore con quello dell'istanza.
4. Esaminare l'app in Application Insights
Quando si esegue l'applicazione, i dati di telemetria verranno inviati ad Application Insights. Ora si dovrebbero ottenere log, metriche e tracce distribuite per la propria applicazione. Aprire la risorsa di Application Insights nel portale di Azure.