Sdílet prostřednictvím


Povolení OpenTelemetry služby Azure Monitor pro aplikace .NET, Node.js, Python a Java

Tento článek popisuje, jak povolit a nakonfigurovat shromažďování dat založených na OpenTelemetry tak, aby umožňovalo používání služby Azure Monitor Application Insights. Projdeme si postup instalace distribuce OpenTelemetry služby Azure Monitor. Distribuce OpenTelemetry služby Azure Monitor poskytuje distribuci OpenTelemetry, která zahrnuje podporu funkcí specifických pro Azure Monitor. Distribuce umožňuje automatickou telemetrii zahrnutím knihoven instrumentace OpenTelemetry ke shromažďování trasování, metrik, protokolů a výjimek a umožňuje shromažďování vlastních telemetrických dat. Pomocí funkce Live Metrics, která je součástí distribuce, můžete také monitorovat a shromažďovat další telemetrická data z živých webových aplikací v produkčním prostředí. Další informace o výhodách používání distrou OpenTelemetry služby Azure Monitor najdete v tématu Proč mám použít distro "Azure Monitor OpenTelemetry Distro"?

Další informace o shromažďování dat pomocí OpenTelemetry najdete v tématu Základy shromažďování dat nebo Nejčastější dotazy k OpenTelemetry.

Stav vydání OpenTelemetry

Nabídky OpenTelemetry jsou k dispozici pro aplikace .NET, Node.js, Python a Java.

Poznámka:

  • Informace o stavu vydání funkcí podle funkcí najdete v nejčastějších dotazech.
  • Druhá karta tohoto článku popisuje všechny scénáře .NET, včetně klasických ASP.NET, konzolových aplikací, model Windows Forms (WinForms) atd.

Začínáme

Pomocí kroků v této části instrumentujte aplikaci pomocí OpenTelemetry.

Požadavky

Instalace klientské knihovny

Nainstalujte nejnovější Azure.Monitor.OpenTelemetry.AspNetCore balíček NuGet:

dotnet add package Azure.Monitor.OpenTelemetry.AspNetCore 

Povolení Application Insights služby Azure Monitor

Pokud chcete povolit Službu Application Insights služby Azure Monitor, provedete menší úpravy aplikace a nastavíte připojovací řetězec. Připojovací řetězec říká vaší aplikaci, kde má odesílat telemetrii, kterou distribuce shromažďuje, a je pro vás jedinečná.

Úprava aplikace

Přidejte UseAzureMonitor() do spuštění aplikace umístěné ve třídě program.cs .

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

Zkopírování připojovacího řetězce z prostředku Application Insights

Tip

Pokud ho ještě nemáte, je teď skvělý čas vytvořit prostředek Application Insights. Tady je, když doporučujeme vytvořit nový prostředek Application Insights a použít existující prostředek.

Kopírování jedinečného připojovacího řetězce:

Snímek obrazovky znázorňující přehled a připojovací řetězec Application Insights

  1. Přejděte do podokna Přehled prostředku Application Insights.
  2. Najděte připojovací řetězec.
  3. Najeďte myší na připojovací řetězec a vyberte ikonu Kopírovat do schránky.

Vložení připojovacího řetězce do prostředí

Připojovací řetězec vložíte tak, že vyberete následující možnosti:

A. Nastavení prostřednictvím proměnné prostředí (doporučeno)

Nahraďte <Your Connection String> v následujícím příkazu jedinečným připojovací řetězec.

APPLICATIONINSIGHTS_CONNECTION_STRING=<Your Connection String>

B. Nastavení prostřednictvím konfiguračního souboru – pouze Java (doporučeno)

Vytvořte konfigurační soubor s názvem applicationinsights.jsona umístěte ho do stejného adresáře jako applicationinsights-agent-3.5.3.jar s následujícím obsahem:

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

Nahraďte <Your Connection String> v předchozím kódu JSON jedinečným připojovací řetězec.

C. Nastavení prostřednictvím kódu – pouze ASP.NET Core, Node.js a Python (nedoporučuje se)

Příklad nastavení připojovacího řetězce prostřednictvím kódu najdete v části Konfigurace připojovacího řetězce.

Poznámka:

Pokud nastavíte připojovací řetězec na více než jednom místě, dodržujeme následující prioritu:

  1. Kód
  2. Proměnná prostředí
  3. Konfigurační soubor

Potvrzení toku dat

Spusťte aplikaci a otevřete kartu Prostředek Application Insights na webu Azure Portal. Zobrazení dat na portálu může trvat několik minut.

Snímek obrazovky s kartou Přehled Application Insights se zvýrazněnou žádostí o server a dobou odezvy serveru

Application Insights je teď pro vaši aplikaci povolená. Všechny následující kroky jsou volitelné a umožňují další přizpůsobení.

Důležité

Pokud máte dvě nebo více služeb, které generují telemetrii do stejného prostředku Application Insights, musíte nastavit názvy cloudových rolí tak, aby je správně představovaly na mapě aplikace.

V rámci instrumentace Application Insights shromažďujeme a odesíláme diagnostická data do Microsoftu. Tato data nám pomáhají spouštět a vylepšovat Application Insights. Další informace najdete v tématu Statsbeat v Aplikace Azure lication Insights.

Ukázky

Ukázkové aplikace Azure Monitor OpenTelemetry jsou dostupné pro všechny podporované jazyky.

Další kroky

  • Podrobnosti o přidávání a úpravách OpenTelemetry služby Azure Monitor najdete v tématu Přidání a úprava OpenTelemetry služby Azure Monitor.
  • Další konfiguraci distribuce OpenTelemetry najdete v tématu Konfigurace OpenTelemetry služby Azure Monitor.
  • Informace o zdrojovém kódu najdete v úložišti Azure Monitor AspNetCore na GitHubu.
  • Pokud chcete nainstalovat balíček NuGet, vyhledat aktualizace nebo zobrazit poznámky k verzi, podívejte se na stránku balíčku NuGet AspNetCore služby Azure Monitor.
  • Pokud se chcete seznámit se službou Azure Monitor a OpenTelemetry, podívejte se na ukázkovou aplikaci Azure Monitoru.
  • Další informace o OpenTelemetry a její komunitě najdete v úložišti OpenTelemetry .NET Na GitHubu.
  • Pokud chcete povolit používání, povolte monitorování uživatelů ve webovém nebo prohlížeči.

Nejčastější dotazy

Tato část obsahuje odpovědi na běžné otázky.

Co je OpenTelemetry?

Jedná se o nový opensourcový standard pro pozorovatelnost. Další informace najdete v OpenTelemetry.

Proč Microsoft Azure Monitor investuje do OpenTelemetry?

Microsoft je mezi největšími přispěvateli OpenTelemetry.

Návrhy klíčových hodnot OpenTelemetry jsou v tom, že jsou neutrální od dodavatele a poskytují konzistentní rozhraní API a sady SDK napříč jazyky.

V průběhu času věříme, že OpenTelemetry umožní zákazníkům služby Azure Monitor sledovat aplikace napsané v jazycích nad rámec našich podporovaných jazyků. Rozšiřuje také typy dat, které můžete shromažďovat prostřednictvím bohaté sady knihoven instrumentace. Kromě toho sady OpenTelemetry Software Development Kit (SDK) mají tendenci být výkonnější ve velkém měřítku než jejich předchůdci, sady SDK Application Insights.

Nakonec OpenTelemetry odpovídá strategii Microsoftu pro přijetí opensourcových řešení.

Jaký je stav OpenTelemetry?

Viz stav OpenTelemetry.

Co je distro "Azure Monitor OpenTelemetry"?

Můžete si ho představit jako tenký obal, který spojuje všechny komponenty OpenTelemetry pro prvotřídní prostředí v Azure. Tento obálka se také nazývá distribuce v OpenTelemetry.

Proč mám používat distro "Azure Monitor OpenTelemetry"?

Použití opentelemetry Azure Monitoru přes nativní OpenTelemetry od komunity má několik výhod:

V duchu OpenTelemetry jsme navrhli distribuci tak, aby byla otevřená a rozšiřitelná. Můžete například přidat:

  • Vývozce protokolu OTLP (OpenTelemetry Protocol) a odeslání do druhého místa určení současně
  • Jiné knihovny instrumentace, které nejsou součástí distribuce

Vzhledem k tomu, že distro poskytuje distribuci OpenTelemetry, distro podporuje cokoli, co podporuje OpenTelemetry. Pokud je OpenTelemetry podporuje, můžete například přidat další procesory telemetrie, exportéry nebo knihovny instrumentace.

Poznámka:

Distribuce nastaví sampler na vlastní vzorkovník s pevnou rychlostí pro Application Insights. Můžete to změnit na jiný sampler, ale můžete to udělat tak, že zakážete některé zahrnuté funkce distribuce. Další informace o podporovaném sampleru najdete v části Povolení vzorkování v části Konfigurace OpenTelemetry služby Azure Monitor.

Pro jazyky bez podporovaného samostatného exportéru OpenTelemetry je jediným aktuálně podporovaným způsobem použití OpenTelemetry se službou Azure Monitor. Pro jazyky s podporovaným samostatným exportérem OpenTelemetry máte možnost použít distro služby Azure Monitor OpenTelemetry nebo příslušný samostatný exportér OpenTelemetry v závislosti na vašem scénáři telemetrie. Další informace najdete v tématu Kdy mám použít exportér OpenTelemetry služby Azure Monitor?.

Jak můžu otestovat distribuci OpenTelemetry služby Azure Monitor?

Projděte si naši dokumentaci k povolení pro .NET, Java, JavaScript (Node.js) a Python.

Mám použít OpenTelemetry nebo sadu Application Insights SDK?

Pokud nepotřebujete funkci, která je dostupná pouze s formální podporou v sadě Application Insights SDK, doporučujeme používat distro OpenTelemetry.

Přijetí OpenTelemetry teď brání migraci později.

Kdy mám použít exportér OpenTelemetry služby Azure Monitor?

Pro ASP.NET Core, Javu, Node.js a Python doporučujeme použít distro OpenTelemetry služby Azure Monitor. Začněte jedním řádkem kódu.

Pro všechny ostatní scénáře .NET, včetně klasických ASP.NET, konzolových aplikací, model Windows Forms (WinForms) atd., doporučujeme použít exportér OpenTelemetry pro .NET Azure Monitor: Azure.Monitor.OpenTelemetry.Exporter.

Pro složitější scénáře telemetrie Pythonu, které vyžadují pokročilou konfiguraci, doporučujeme použít exportér OpenTelemetry služby Python Azure Monitor.

Jaký je aktuální stav funkcí ve službě Azure Monitor OpenTelemetry Distro?

Následující graf rozebíral podporu funkcí OpenTelemetry pro každý jazyk.

Funkce .NET Node.js Python Java
Distribuované trasování
Vlastní metrika
Standardní metriky (přesnost aktuálně ovlivněná vzorkováním)
Vzorkování s pevnou frekvencí
Offline úložiště a automatické opakování
Generování sestav výjimek
Shromažďování protokolů ⚠️
Vlastní události ⚠️ ⚠️ ⚠️
Ověřování Microsoft Entra
Živé metriky
Filtrování živých metrik
Zjištění kontextu prostředků pro virtuální počítač nebo VMSS a App Service
Zjištění kontextu prostředku pro službu Azure Kubernetes Service (AKS) a funkce
Události testování dostupnosti vygenerované pomocí rozhraní API pro sledování dostupnosti
Filtrování požadavků, závislostí, protokolů a výjimek podle anonymního ID uživatele a syntetického zdroje
Filtrování závislostí, protokolů a výjimek podle názvu operace
Adaptivní vzorkování
Profiler ⚠️
Ladicí program snímků

Klíč

  • ✅ Tato funkce je dostupná všem zákazníkům s formální podporou.
  • ⚠✔ Tato funkce je k dispozici jako veřejná verze Preview. Přečtěte si doplňkové podmínky použití pro verze Preview Microsoft Azure.
  • ❌ Tato funkce není dostupná nebo se nedá použít.

Je možné OpenTelemetry použít pro webové prohlížeče?

Ano, ale nedoporučujeme ho a Azure ho nepodporuje. OpenTelemetry JavaScript je silně optimalizovaný pro Node.js. Místo toho doporučujeme použít sadu Application Insights JavaScript SDK.

Kdy můžeme očekávat, že sada OpenTelemetry SDK bude dostupná pro použití ve webových prohlížečích?

Webová sada SDK OpenTelemetry nemá určenou časovou osu dostupnosti. Pravděpodobně jsme několik let daleko od sady SDK prohlížeče, která je možná alternativou k sadě Application Insights JavaScript SDK.

Můžu dnes testovat OpenTelemetry ve webovém prohlížeči?

Webový sandbox OpenTelemetry je fork navržený tak, aby openTelemetry fungoval v prohlížeči. Zatím není možné odesílat telemetrii do Application Insights. Sada SDK nedefinuje obecné události klienta.

Podporuje se spouštění Application Insights společně s agenty konkurentů, jako jsou AppDynamics, DataDog a NewRelic?

Tento postup není něco, co plánujeme testovat nebo podporovat, i když naše distribuce umožňují exportovat do koncového bodu OTLP společně se službou Azure Monitor současně.

Můžu používat funkce preview v produkčních prostředích?

Nedoporučujeme ho. Přečtěte si doplňkové podmínky použití pro verze Preview Microsoft Azure.

Jaký je rozdíl mezi ručním a automatickým instrumentací?

Viz přehled OpenTelemetry.

Můžu použít kolektor OpenTelemetry?

Někteří zákazníci používají OpenTelemetry Collector jako alternativu agenta, i když Microsoft oficiálně nepodporuje přístup založený na agentech pro monitorování aplikací. Do té doby opensourcová komunita přispěla exportérem Služby Azure Monitoru OpenTelemetry, který někteří zákazníci používají k odesílání dat do služby Azure Monitor Application Insights. Microsoft to nepodporuje.

Jaký je rozdíl mezi OpenCensus a OpenTelemetry?

OpenCensus je prekurzorem OpenTelemetry. Microsoft pomohl spojit OpenTracing a OpenCensus k vytvoření OpenTelemetry, jediného pozorovatelného standardu pro svět. Aktuální sada Python SDK doporučená pro produkční prostředí pro Azure Monitor je založená na OpenCensus. Společnost Microsoft se zavázala vytvářet Azure Monitor na základě OpenTelemetry.

Řešení problému

Nefunguje to? Podívejte se na stránku pro řešení potíží pro ASP.NET Core.

Technická podpora

Vyberte kartu pro jazyk podle vašeho výběru a objevte možnosti podpory.

  • V případě podpora Azure problémů otevřete lístek podpora Azure.
  • V případě problémů s OpenTelemetry se obraťte přímo na komunitu OpenTelemetry .NET.
  • Seznam otevřených problémů souvisejících s exportérem služby Azure Monitor najdete na stránce Problémy GitHubu.

Zpětná vazba k OpenTelemetry

Poskytnutí zpětné vazby:

  • Vyplňte průzkum názorů zákazníků komunity OpenTelemetry.
  • Řekněte Microsoftu o sobě tím, že se připojíte ke komunitě OpenTelemetry Early Adopter.
  • Spojte se s dalšími uživateli služby Azure Monitor v technické komunitě Microsoftu.
  • Vytvořte žádost o funkci na fóru Azure Feedback.