Aktivera Azure Monitor OpenTelemetry för .NET-, Node.js-, Python- och Java-program

Den här artikeln beskriver hur du aktiverar och konfigurerar OpenTelemetry-baserad datainsamling för att driva funktionerna i Azure Monitor Application Insights. Vi går igenom hur du installerar Azure Monitor OpenTelemetry Distro. Azure Monitor OpenTelemetry Distro tillhandahåller en OpenTelemetry-distribution som innehåller stöd för funktioner som är specifika för Azure Monitor. Distributionen möjliggör automatisk telemetri genom att inkludera OpenTelemetry-instrumentationsbibliotek för insamling av spårningar, mått, loggar och undantag, och tillåter insamling av anpassad telemetri. Du kan också använda funktionen Live Metrics som ingår i distributionen för att övervaka och samla in mer telemetri från webbprogram i produktion i realtid. Mer information om fördelarna med att använda Azure Monitor OpenTelemetry Distro finns i Varför ska jag använda "Azure Monitor OpenTelemetry Distro"? i Vanliga frågor och svar om OpenTelemetry.

Mer information om hur du samlar in data med OpenTelemetry finns i Vanliga frågor och svar om datainsamling eller OpenTelemetry.

OpenTelemetry- versionsstatus

OpenTelemetry-erbjudanden är tillgängliga för .NET-, Node.js-, Python- och Java-program.

Kommentar

En funktionsspecifik versionsstatus finns i Vanliga frågor och svar.

Kom igång

Följ stegen i det här avsnittet för att instrumentera ditt program med OpenTelemetry.

Förutsättningar

Installera klientbiblioteket

Installera det senaste Azure.Monitor.OpenTelemetry.AspNetCore NuGet-paketet:

dotnet add package Azure.Monitor.OpenTelemetry.AspNetCore 

Aktivera Azure Monitor Application Insights

Om du vill aktivera Azure Monitor Application Insights gör du en mindre ändring i ditt program och anger din "Anslut ionssträng". Anslut ionssträngen talar om för ditt program var du ska skicka telemetrin som distributionen samlar in, och den är unik för dig.

Ändra ditt program

Lägg till UseAzureMonitor() i programstarten, som finns i din program.cs klass.

// 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();

Kopiera Anslut ionssträngen från application insights-resursen

Dricks

Om du inte redan har en är det dags att skapa en Application Insights-resurs. Här rekommenderar vi att du skapar en ny Application Insights-resurs jämfört med en befintlig resurs.

Så här kopierar du din unika Anslut ionssträng:

Skärmbild som visar Översikt över Application Insights och anslutningssträng.

  1. Gå till fönstret Översikt för din Application Insights-resurs.
  2. Hitta din Anslut ionssträng.
  3. Hovra över anslutningssträng och välj ikonen Kopiera till Urklipp.

Klistra in Anslut ionssträngen i din miljö

Om du vill klistra in Anslut ionssträngen väljer du bland följande alternativ:

A. Ange via miljövariabel (rekommenderas)

Ersätt <Your Connection String> i följande kommando med din unika anslutningssträng.

APPLICATIONINSIGHTS_CONNECTION_STRING=<Your Connection String>

B. Ange via konfigurationsfil – Endast Java (rekommenderas)

Skapa en konfigurationsfil med namnet applicationinsights.jsonoch placera den i samma katalog som applicationinsights-agent-3.5.1.jar med följande innehåll:

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

Ersätt <Your Connection String> i föregående JSON med din unika anslutningssträng.

C. Ange via Kod – ASP.NET Core, Node.js och Endast Python (rekommenderas inte)

Se Anslut ion String Configuration (Anslut ion String Configuration) för ett exempel på hur du ställer in Anslut ionssträng via kod.

Kommentar

Om du anger anslutningssträng på fler än en plats följer vi följande prioritet:

  1. Kod
  2. Miljövariabel
  3. Konfigurationsfil

Bekräfta att data flödar

Kör ditt program och öppna fliken Application Insights-resurs i Azure-portalen. Det kan ta några minuter innan data visas i portalen.

Skärmbild av fliken Översikt för Application Insights med serverbegäranden och serverns svarstid markerad.

Application Insights är nu aktiverat för ditt program. Alla följande steg är valfria och möjliggör ytterligare anpassning.

Viktigt!

Om du har två eller flera tjänster som genererar telemetri till samma Application Insights-resurs måste du ange molnrollnamn för att representera dem korrekt på programkartan.

Som en del av användningen av Application Insights-instrumentation samlar vi in och skickar diagnostikdata till Microsoft. Dessa data hjälper oss att köra och förbättra Application Insights. Mer information finns i Statsbeat i Azure Application Insights.

Exempel

Azure Monitor OpenTelemetry-exempelprogram är tillgängliga för alla språk som stöds.

Nästa steg

Vanliga frågor och svar

Det här avsnittet innehåller svar på vanliga frågor.

Vad är OpenTelemetry?

Det är en ny standard med öppen källkod för observerbarhet. Läs mer på OpenTelemetry.

Varför investerar Microsoft Azure Monitor i OpenTelemetry?

Microsoft är bland de största bidragsgivarna till OpenTelemetry.

De viktigaste värdeförslagen för OpenTelemetry är att det är leverantörsneutralt och ger konsekventa API:er/SDK:er mellan olika språk.

Med tiden tror vi att OpenTelemetry gör det möjligt för Azure Monitor-kunder att observera program som skrivits på språk utöver våra språk som stöds. Den utökar också de typer av data som du kan samla in via en omfattande uppsättning instrumentationsbibliotek. Dessutom tenderar OpenTelemetry SDK:er att vara mer högpresterande i stor skala än sina föregångare, Application Insights SDK:er.

Slutligen överensstämmer OpenTelemetry med Microsofts strategi att ta till sig öppen källkod.

Vad är statusen för OpenTelemetry?

Se Status för OpenTelemetry.

Vad är "Azure Monitor OpenTelemetry Distro"?

Du kan se det som en tunn omslutning som buntar ihop alla OpenTelemetry-komponenter för en förstklassig upplevelse i Azure. Den här omslutningen kallas även för en distribution i OpenTelemetry.

Varför ska jag använda "Azure Monitor OpenTelemetry Distro"?

Det finns flera fördelar med att använda Azure Monitor OpenTelemetry Distro över inbyggd OpenTelemetry från communityn:

I OpenTelemetrys anda utformade vi distributionen så att den var öppen och utökningsbar. Du kan till exempel lägga till:

  • En OpenTelemetry Protocol-exportör (OTLP) och skicka till ett andra mål samtidigt
  • Andra instrumentationsbibliotek som inte ingår i distributionen

Eftersom Distro tillhandahåller en OpenTelemetry-distribution stöder distributionen allt som stöds av OpenTelemetry. Du kan till exempel lägga till fler telemetriprocessorer, exportörer eller instrumentationsbibliotek om OpenTelemetry stöder dem.

Kommentar

Distributionen anger sampler till en anpassad, fast frekvensexempel för Application Insights. Du kan ändra detta till en annan provtagare, men om du gör det kan du inaktivera några av distributionsfunktionerna. Mer information om exempelprogrammet som stöds finns i avsnittet Aktivera sampling i Konfigurera Azure Monitor OpenTelemetry.

För språk utan en fristående OpenTelemetry-exportör som stöds är Azure Monitor OpenTelemetry Distro det enda sättet att använda OpenTelemetry med Azure Monitor. För språk med en fristående OpenTelemetry-exportör som stöds kan du använda antingen Azure Monitor OpenTelemetry Distro eller lämplig fristående OpenTelemetry-exportör beroende på ditt telemetriscenario. Mer information finns i När ska jag använda Azure Monitor OpenTelemetry-exportören?.

Hur kan jag testa Azure Monitor OpenTelemetry Distro?

Kolla in våra aktiveringsdokument för .NET, Java, JavaScript (Node.js) och Python.

Ska jag använda OpenTelemetry eller Application Insights SDK?

Vi rekommenderar att du använder OpenTelemetry Distro om du inte behöver en funktion som endast är tillgänglig med formell support i Application Insights SDK.

Att använda OpenTelemetry förhindrar nu att du behöver migrera vid ett senare tillfälle.

När ska jag använda Azure Monitor OpenTelemetry-exportören?

För ASP.NET Core, Java, Node.js och Python rekommenderar vi att du använder Azure Monitor OpenTelemetry Distro. Det är en kodrad för att komma igång.

För alla andra .NET-scenarier, inklusive klassiska ASP.NET, konsolappar osv., rekommenderar vi att du använder .NET Azure Monitor OpenTelemetry-exportören: Azure.Monitor.OpenTelemetry.Exporter.

För mer komplexa Python-telemetriscenarier som kräver avancerad konfiguration rekommenderar vi att du använder Python Azure Monitor OpenTelemetry Exporter.

Vad är det aktuella versionstillståndet för funktioner i Azure Monitor OpenTelemetry Distro?

Följande diagram delar upp funktionsstöd för OpenTelemetry för varje språk.

Funktion .NET Node.js Python Java
Distribuerad spårning
Anpassade mått
Standardmått (noggrannhet som för närvarande påverkas av sampling)
Sampling med fast frekvens
Offlinelagring och automatiska återförsök
Undantagsrapportering
Loggsamling ⚠️
Anpassade händelser ⚠️ ⚠️ ⚠️
Microsoft Entra-autentisering
Live-mått
Identifiera resurskontext för virtuell dator/VMSS och App Service
Identifiera resurskontext för AKS och funktioner
Filtrering av tillgänglighetstestintervall
Automatisk inpopulation av användar-ID, autentiserat användar-ID och användar-IP
Åsidosätt/ange åtgärdsnamn, användar-ID eller autentiserat användar-ID manuellt
Adaptiv sampling
Profilerare ⚠️
Felsökning av ögonblicksbild

Tangent

  • ✅ Den här funktionen är tillgänglig för alla kunder med formell support.
  • ⚠️ Den här funktionen är tillgänglig som en offentlig förhandsversion. Se Kompletterande användningsvillkor för Förhandsversioner av Microsoft Azure.
  • ❌ Den här funktionen är inte tillgänglig eller är inte tillämplig.

Kan OpenTelemetry användas för webbläsare?

Ja, men vi rekommenderar det inte och Azure stöder det inte. OpenTelemetry JavaScript är mycket optimerat för Node.js. I stället rekommenderar vi att du använder Application Insights JavaScript SDK.

När kan vi förvänta oss att OpenTelemetry SDK ska vara tillgängligt för användning i webbläsare?

OpenTelemetry-webb-SDK:t har ingen fastställd tillgänglighetstidslinje. Vi är förmodligen flera år från en webbläsar-SDK som är ett genomförbart alternativ till Application Insights JavaScript SDK.

Kan jag testa OpenTelemetry i en webbläsare idag?

OpenTelemetry-webbsandlådan är en förgrening som utformats för att få OpenTelemetry att fungera i en webbläsare. Det går ännu inte att skicka telemetri till Application Insights. SDK:t definierar inte allmänna klienthändelser.

Stöds application insights tillsammans med konkurrerande agenter som AppDynamics, DataDog och NewRelic?

Nej. Den här metoden är inte något som vi planerar att testa eller stödja, även om våra distributioner gör att du kan exportera till en OTLP-slutpunkt tillsammans med Azure Monitor samtidigt.

Kan jag använda förhandsversionsfunktioner i produktionsmiljöer?

Vi rekommenderar det inte. Se Kompletterande användningsvillkor för Förhandsversioner av Microsoft Azure.

Vad är skillnaden mellan manuell och automatisk instrumentering?

Se Översikt över OpenTelemetry.

Kan jag använda OpenTelemetry Collector?

Vissa kunder använder OpenTelemetry Collector som ett agentalternativ, även om Microsoft inte officiellt stöder en agentbaserad metod för programövervakning ännu. Under tiden bidrog communityn med öppen källkod med en OpenTelemetry Collector Azure Monitor-exportör som vissa kunder använder för att skicka data till Azure Monitor Application Insights. Detta stöds inte av Microsoft.

Vad är skillnaden mellan OpenCensus och OpenTelemetry?

OpenCensus är föregångaren till OpenTelemetry. Microsoft hjälpte till att samla OpenTracing och OpenCensus för att skapa OpenTelemetry, en enda observerbarhetsstandard för världen. Den aktuella produktionsrekommenderade Python SDK :t för Azure Monitor baseras på OpenCensus. Microsoft har åtagit sig att göra Azure Monitor baserat på OpenTelemetry.

Felsökning

Fungerar det inte? Kolla in felsökningssidan för ASP.NET Core.

Support

Välj en flik för det språk du väljer för att identifiera supportalternativ.

Feedback om OpenTelemetry

Så här ger du feedback: