Azure Monitor OpenTelemetry inschakelen voor .NET-, Node.js-, Python- en Java-toepassingen

In dit artikel wordt beschreven hoe u gegevensverzameling op basis van OpenTelemetry inschakelt en configureert om de ervaringen in Azure Monitor Application Insights mogelijk te maken. We doorlopen hoe u de Azure Monitor OpenTelemetry Distro installeert. De Azure Monitor OpenTelemetry Distro biedt een OpenTelemetry-distributie met ondersteuning voor functies die specifiek zijn voor Azure Monitor. De distributie maakt automatische telemetrie mogelijk door openTelemetry-instrumentatiebibliotheken op te halen voor het verzamelen van traceringen, metrische gegevens, logboeken en uitzonderingen, en het verzamelen van aangepaste telemetrie. U kunt ook de functie Live Metrics in de Distro gebruiken om meer telemetrie van live webtoepassingen in productie te bewaken en te verzamelen. Zie Waarom zou ik de veelgestelde vragen over Azure Monitor OpenTelemetry Distro gebruiken voor meer informatie over de voordelen van het gebruik van azure Monitor OpenTelemetry Distro.

Zie deveelgestelde vragen over het verzamelen van gegevens met behulp van OpenTelemetry voor meer informatie over het verzamelen van gegevens met behulp van OpenTelemetry.

Releasestatus van OpenTelemetry

OpenTelemetry-aanbiedingen zijn beschikbaar voor .NET-, Node.js-, Python- en Java-toepassingen.

Notitie

Zie de veelgestelde vragen voor een functie-by-feature-releasestatus.

Aan de slag

Volg de stappen in deze sectie om uw toepassing te instrumenteren met OpenTelemetry.

Vereisten

De clientbibliotheek installeren

Installeer het nieuwste NuGet-pakket Azure.Monitor.OpenTelemetry.AspNetCore :

dotnet add package Azure.Monitor.OpenTelemetry.AspNetCore 

Azure Monitor Application Insights inschakelen

Als u Azure Monitor Application Insights wilt inschakelen, moet u een kleine wijziging aanbrengen in uw toepassing en uw 'Verbinding maken ion String' instellen. De Verbinding maken ion-tekenreeks vertelt uw toepassing waar de telemetrie moet worden verzonden die de distributie verzamelt. Deze is uniek voor u.

Uw toepassing wijzigen

Voeg deze UseAzureMonitor() toe aan het opstarten van uw toepassing, die zich in uw program.cs klasse bevindt.

// Import the Azure.Monitor.OpenTelemetry.AspNetCore namespace.
using Azure.Monitor.OpenTelemetry.AspNetCore;

// Create a new WebApplicationBuilder instance.
var builder = WebApplication.CreateBuilder(args);

// Add OpenTelemetry and configure it to use Azure Monitor.
builder.Services.AddOpenTelemetry().UseAzureMonitor();

// Build the application.
var app = builder.Build();

// Run the application.
app.Run();

Kopieer de Verbinding maken iontekenreeks uit uw Application Insights-resource

Tip

Als u er nog geen hebt, is het nu een goed moment om een Application Insights-resource te maken. Dit is het moment waarop u wordt aangeraden een nieuwe Application Insights-resource te maken en een bestaande resource te gebruiken.

Uw unieke Verbinding maken iontekenreeks kopiëren:

Schermopname van application Insights-overzicht en verbindingsreeks.

  1. Ga naar het deelvenster Overzicht van uw Application Insights-resource.
  2. Zoek uw Verbinding maken iontekenreeks.
  3. Beweeg de muisaanwijzer over de verbindingsreeks en selecteer het pictogram Kopiëren naar klembord.

Plak de Verbinding maken iontekenreeks in uw omgeving

Als u de Verbinding maken iontekenreeks wilt plakken, selecteert u een van de volgende opties:

A. Instellen via omgevingsvariabele (aanbevolen)

Vervang <Your Connection String> in de volgende opdracht door uw unieke verbindingsreeks.

APPLICATIONINSIGHTS_CONNECTION_STRING=<Your Connection String>

B. Instellen via configuratiebestand - Alleen Java (aanbevolen)

Maak een configuratiebestand met de naam applicationinsights.jsonen plaats het in dezelfde map als applicationinsights-agent-3.5.1.jar met de volgende inhoud:

{
  "connectionString": "<Your Connection String>"
}

Vervang <Your Connection String> in de voorgaande JSON door uw unieke verbindingsreeks.

C. Instellen via Code- ASP.NET Core, Node.js en Alleen Python (niet aanbevolen)

Zie Verbinding maken ion String Configuration voor een voorbeeld van het instellen van Verbinding maken ion String via code.

Notitie

Als u de verbindingsreeks op meer dan één plaats instelt, houden we ons aan de volgende prioriteit:

  1. Code
  2. Omgevingsvariabele
  3. Configuratiebestand

Bevestigen dat de gegevens stromen

Voer uw toepassing uit en open het tabblad Application Insights Resource in Azure Portal. Het kan enkele minuten duren voordat gegevens worden weergegeven in de portal.

Schermopname van het tabblad Overzicht van Application Insights met serveraanvragen en reactietijd van de server gemarkeerd.

Application Insights is nu ingeschakeld voor uw toepassing. Alle volgende stappen zijn optioneel en maken verdere aanpassingen mogelijk.

Belangrijk

Als u twee of meer services hebt die telemetrie verzenden naar dezelfde Application Insights-resource, moet u cloudrolnamen instellen om deze correct weer te geven op het toepassingsoverzicht.

Als onderdeel van het gebruik van Application Insights-instrumentatie verzamelen en verzenden we diagnostische gegevens naar Microsoft. Met deze gegevens kunnen we Application Insights uitvoeren en verbeteren. Zie Statsbeat in Azure-toepassing Insights voor meer informatie.

Voorbeelden

Azure Monitor OpenTelemetry-voorbeeldtoepassingen zijn beschikbaar voor alle ondersteunde talen.

Volgende stappen

Veelgestelde vragen

In deze sectie vindt u antwoorden op veelgestelde vragen.

Wat is OpenTelemetry?

Het is een nieuwe opensource-standaard voor waarneembaarheid. Meer informatie vindt u op OpenTelemetry.

Waarom investeert Microsoft Azure Monitor in OpenTelemetry?

Microsoft is een van de grootste bijdragers aan OpenTelemetry.

De belangrijkste waardeproposities van OpenTelemetry zijn dat het leverancierneutraal is en consistente API's/SDK's in verschillende talen biedt.

In de loop van de tijd denken we dat OpenTelemetry azure Monitor-klanten in staat stelt toepassingen te observeren die zijn geschreven in talen die buiten onze ondersteunde talen zijn geschreven. Het breidt ook de typen gegevens uit die u kunt verzamelen via een uitgebreide set instrumentatiebibliotheken. Bovendien zijn OpenTelemetry SDK's meestal beter presterend op schaal dan hun voorgangers, de Application Insights SDK's.

Ten slotte sluit OpenTelemetry aan bij de strategie van Microsoft om open source te omarmen.

Wat is de status van OpenTelemetry?

Zie openTelemetry-status.

Wat is de 'Azure Monitor OpenTelemetry Distro'?

U kunt het beschouwen als een dunne wrapper die alle OpenTelemetry-onderdelen bundelt voor een eersteklas ervaring in Azure. Deze wrapper wordt ook wel een distributie genoemd in OpenTelemetry.

Waarom zou ik de 'Azure Monitor OpenTelemetry Distro' gebruiken?

Er zijn verschillende voordelen voor het gebruik van de Azure Monitor OpenTelemetry Distro over systeemeigen OpenTelemetry van de community:

In de geest van OpenTelemetry hebben we de distributie ontworpen om open en uitbreidbaar te zijn. U kunt bijvoorbeeld het volgende toevoegen:

  • Een OTLP-exporteur (OpenTelemetry Protocol) en tegelijkertijd naar een tweede bestemming verzenden
  • Andere instrumentatiebibliotheken die niet zijn opgenomen in de distributie

Omdat de distributie een OpenTelemetry-distributie biedt, ondersteunt de distro alles wat wordt ondersteund door OpenTelemetry. U kunt bijvoorbeeld meer telemetrieprocessors, exporteurs of instrumentatiebibliotheken toevoegen als OpenTelemetry deze ondersteunt.

Notitie

De distributie stelt de sampler in op een aangepaste, vaste-rate sampler voor Application Insights. U kunt dit wijzigen in een andere sampler, maar als u dit doet, kunnen sommige van de meegeleverde mogelijkheden van distro worden uitgeschakeld. Zie de sectie Sampling inschakelen van Azure Monitor OpenTelemetry voor meer informatie over de ondersteunde sampler.

Voor talen zonder een ondersteunde zelfstandige OpenTelemetry-exporteur is Azure Monitor OpenTelemetry Distro de enige ondersteunde manier om OpenTelemetry te gebruiken met Azure Monitor. Voor talen met een ondersteunde zelfstandige OpenTelemetry-exporteur hebt u de mogelijkheid om de Azure Monitor OpenTelemetry Distro of de juiste zelfstandige OpenTelemetry-exporteur te gebruiken, afhankelijk van uw telemetriescenario. Zie Wanneer moet ik de Azure Monitor OpenTelemetry-exporteur gebruiken? voor meer informatie.

Hoe kan ik de Azure Monitor OpenTelemetry Distro testen?

Bekijk onze inschakelingsdocumenten voor .NET, Java, JavaScript (Node.js) en Python.

Moet ik OpenTelemetry of de Application Insights SDK gebruiken?

We raden u aan de OpenTelemetry Distro te gebruiken, tenzij u een functie nodig hebt die alleen beschikbaar is met formele ondersteuning in de Application Insights SDK.

Het gebruik van OpenTelemetry voorkomt nu dat ze op een later tijdstip moeten worden gemigreerd.

Wanneer moet ik de Azure Monitor OpenTelemetry-exporteur gebruiken?

Voor ASP.NET Core, Java, Node.js en Python wordt u aangeraden de Azure Monitor OpenTelemetry Distro te gebruiken. Het is één regel code om aan de slag te gaan.

Voor alle andere .NET-scenario's, waaronder klassieke ASP.NET, console-apps, enzovoort, raden we u aan om de .NET Azure Monitor OpenTelemetry-exporteur te gebruiken: Azure.Monitor.OpenTelemetry.Exporter.

Voor complexere Python-telemetriescenario's waarvoor geavanceerde configuratie is vereist, raden we u aan de Python Azure Monitor OpenTelemetry Exporter te gebruiken.

Wat is de huidige releasestatus van functies in de Azure Monitor OpenTelemetry Distro?

In de volgende grafiek wordt ondersteuning voor OpenTelemetry-functies voor elke taal uitgesplitst.

Functie .NET Node.js Python Java
Gedistribueerde tracering
Aangepaste meetwaarden
Metrische standaardgegevens (nauwkeurigheid die momenteel wordt beïnvloed door steekproeven)
Steekproeven met vaste frequentie
Offlineopslag en automatische nieuwe pogingen
Uitzonderingsrapportage
Logboekverzameling ⚠️
Aangepaste gebeurtenissen ⚠️ ⚠️ ⚠️
Microsoft Entra-verificatie
Live metrische gegevens
Resourcecontext detecteren voor VM/VMSS en App Service
Resourcecontext voor AKS en functies detecteren
Spanfiltering voor beschikbaarheidstests
Automatische inpopulatie van gebruikers-id, geverifieerde gebruikers-id en gebruikers-IP
Bewerkingsnaam, gebruikers-id of geverifieerde gebruikers-id handmatig overschrijven/instellen
Adaptieve steekproeven
Profiler ⚠️
Snapshot Debugger

Code

Kan OpenTelemetry worden gebruikt voor webbrowsers?

Ja, maar we raden het niet aan en Azure biedt geen ondersteuning voor het. OpenTelemetry JavaScript is sterk geoptimaliseerd voor Node.js. In plaats daarvan raden we u aan de JavaScript SDK van Application Insights te gebruiken.

Wanneer kunnen we verwachten dat de OpenTelemetry SDK beschikbaar is voor gebruik in webbrowsers?

De OpenTelemetry-web-SDK heeft geen bepaalde beschikbaarheidstijdlijn. We zijn waarschijnlijk enkele jaren verwijderd van een browser-SDK die een levensvatbaar alternatief is voor de Application Insights JavaScript SDK.

Kan ik OpenTelemetry vandaag testen in een webbrowser?

De OpenTelemetry-web-sandbox is een fork die is ontworpen om OpenTelemetry in een browser te laten werken. Het is nog niet mogelijk om telemetrie te verzenden naar Application Insights. De SDK definieert geen algemene clientevenementen.

Wordt Application Insights uitgevoerd naast concurrerende agents zoals AppDynamics, DataDog en NewRelic?

Nee Deze procedure is niet van plan om te testen of te ondersteunen, hoewel met onze distributies u kunt exporteren naar een OTLP-eindpunt naast Azure Monitor tegelijk.

Kan ik preview-functies gebruiken in productieomgevingen?

We raden het niet aan. Zie aanvullende gebruiksvoorwaarden voor Microsoft Azure Previews.

Wat is het verschil tussen handmatige en automatische instrumentatie?

Zie het Overzicht van OpenTelemetry.

Kan ik de OpenTelemetry Collector gebruiken?

Sommige klanten gebruiken de OpenTelemetry Collector als een alternatief voor agents, ook al ondersteunt Microsoft nog geen op agents gebaseerde benadering voor toepassingsbewaking. Ondertussen heeft de opensource-community bijgedragen aan een OpenTelemetry Collector Azure Monitor Exporter die sommige klanten gebruiken om gegevens naar Azure Monitor Application Insights te verzenden. Dit wordt niet ondersteund door Microsoft.

Wat is het verschil tussen OpenCensus en OpenTelemetry?

OpenCensus is de voorloper van OpenTelemetry. Microsoft heeft OpenTracing en OpenCensus samengebracht om OpenTelemetry te maken, één waarneembaarheidsstandaard voor de wereld. De huidige door productie aanbevolen Python SDK voor Azure Monitor is gebaseerd op OpenCensus. Microsoft streeft ernaar Om Azure Monitor te maken op basis van OpenTelemetry.

Probleemoplossing

Werkt het niet? Bekijk de pagina voor probleemoplossing voor ASP.NET Core.

Ondersteuning

Selecteer een tabblad voor de taal van uw keuze om ondersteuningsopties te ontdekken.

Feedback over OpenTelemetry

Feedback geven: