Porovnání rozhraní API pro metriky
Při přidávání nové instrumentace metrik do aplikace nebo knihovny .NET existují různá rozhraní API, ze které si můžete vybrat. Tento článek vám pomůže pochopit možnosti.
Rozhraní .NET API
System.Diagnostics.Metrics
Rozhraní API System.Diagnostics.Metrics jsou nejnovější multiplatformní rozhraní API a byla navržena v úzké spolupráci s projektem OpenTelemetry . Pokud nemáte konkrétní důvod k použití některého ze starších rozhraní API popsaných níže, system.Diagnostics.Metrics je dobrou výchozí volbou pro novou práci. Je k dispozici tak, že cílí na .NET 6 nebo ve starších aplikacích .NET Core a .NET Framework přidáním odkazu na balíček NuGet .NET System.DiagnosticsSource 6.0+. Kromě zaměření na širokou kompatibilitu toto rozhraní API přidává podporu mnoha věcí, které v dřívějších rozhraních API chyběly, například:
- Histogramy a percentily
- Multidimenzionální metriky
- Rozhraní API vysoce výkonného naslouchacího procesu silného typu
- Více souběžných naslouchacích procesů
- Přístup naslouchacího procesu k neagregovaným měřením
I když bylo toto rozhraní API navržené tak, aby dobře fungovalo s OpenTelemetry a jeho rostoucím ekosystémem integrovaných knihoven dodavatelů, aplikace mají také možnost používat přímo integrovaná rozhraní API naslouchacího procesu .NET. Pomocí této možnosti můžete vytvořit vlastní nástroje metrik, aniž byste museli provádět jakékoli závislosti externí knihovny.
PerformanceCounter
System.Diagnostics.PerformanceCounter Rozhraní API jsou nejstarší rozhraní API pro metriky .NET. Podporují se jenom ve Windows a poskytují spravovaný obálka pro technologii čítače výkonu operačního systému Windows. Jsou k dispozici ve všech podporovaných verzích .NET.
Tato rozhraní API jsou poskytována především kvůli kompatibilitě; tým .NET považuje tuto stabilní oblast, která pravděpodobně nebude dostávat další vylepšení kromě oprav chyb. Tato rozhraní API nejsou navržena pro nové vývojové projekty, pokud projekt není jen pro Windows a nemáte zájem používat nástroje čítače výkonu systému Windows.
Další informace naleznete v tématu Čítače výkonu v rozhraní .NET Framework.
EventCounters
EventCounters byly první rozhraní .NET API pro podporu prostředí metrik napříč platformami. Rozhraní API jsou dostupná tak, že cílí na .NET Core 3.1 nebo novější a malá podmnožina je k dispozici v rozhraní .NET Framework 4.7.1 a novějším. Tato rozhraní API jsou plně podporovaná a stále používají klíčové knihovny .NET, ale mají méně funkcí než novější System.Diagnostics.Metrics rozhraní API. EventCounters můžou hlásit míru změn a průměrů, ale nepodporují histogramy a percentily. Pro multidimenzionální metriky také neexistuje žádná podpora. Vlastní nástroje je možné prostřednictvím EventListener rozhraní API, i když není silného typu, poskytuje přístup pouze k agregovaným hodnotám a má omezení při použití více než jednoho naslouchacího procesu současně. EventCountery podporují přímo Visual Studio, Application Insights, dotnet-counters a dotnet-monitor. Informace o podpoře nástrojů třetích stran najdete v dokumentaci dodavatele nebo projektu a zjistěte, jestli je k dispozici.
Tým .NET neočekává, že bude do tohoto rozhraní API dál investovat, ale stejně jako PerformanceCounters
v případě , rozhraní API zůstane podporováno pro všechny aktuální a budoucí uživatele.
Rozhraní API třetích stran
Většina dodavatelů monitorování výkonu aplikací (APM), jako jsou AppDynamics, Application Insights, DataDog, DynaTrace a NewRelic, zahrnují rozhraní API metrik jako součást svých knihoven instrumentace. Prometheus a AppMetrics jsou také oblíbené projekty .NET OSS. Další informace o těchtoprojektechch