Megosztás a következőn keresztül:


Metrika API-k összehasonlítása

Ha új metrika-rendszerállapotot ad hozzá egy .NET-alkalmazáshoz vagy -tárhoz, különböző API-k közül választhat. Ez a cikk segít megérteni a lehetőségeket.

.NET API-k

System.Diagnostics.Metrics

A System.Diagnostics.Metrics API-k a legújabb platformfüggetlen API-k, amelyeket az OpenTelemetry projekttel szoros együttműködésben terveztek. Ha nincs konkrét oka az alábbiakban ismertetett régebbi API-k használatára, a System.Diagnostics.Metrics egy jó alapértelmezett választás az új munkákhoz. A .NET 6+, illetve a régebbi .NET Core-alkalmazásokban és .NET-keretrendszer alkalmazásokban a .NET System.Diagnostics.DiagnosticsSource 6.0+ NuGet csomagra mutató hivatkozás hozzáadásával érhető el. A széles körű kompatibilitás mellett ez az API számos, a korábbi API-kból hiányzó dolog támogatását is támogatja, például:

  • Hisztogramok és percentilisek
  • Többdimenziós metrikák
  • Erősen gépelt nagy teljesítményű figyelő API
  • Több egyidejű figyelő
  • Figyelő hozzáférése a nem összesített mérésekhez

Bár ezt az API-t úgy tervezték, hogy jól működjön az OpenTelemetryvel és a csatlakoztatható szállítói integrációs kódtárak növekvő ökoszisztémájával, az alkalmazások közvetlenül is használhatják a .NET beépített figyelő API-kat. Ezzel a beállítással egyéni metrikaeszközöket hozhat létre külső kódtár-függőségek nélkül.

PerformanceCounter

System.Diagnostics.PerformanceCounter Az API-k a legrégebbi .NET metrika API-k. Csak Windows rendszeren támogatottak, és felügyelt burkolót biztosítanak a Windows operációsrendszer-teljesítményszámláló technológiához. A .NET minden támogatott verziójában elérhetők.

Ezek az API-k elsősorban kompatibilitási célokra szolgálnak; A .NET csapata stabilnak tartja ezt a területet, amely a hibajavítások mellett valószínűleg nem fog további javulást kapni. Ezek az API-k csak akkor javasoltak új fejlesztési projektekhez, ha a projekt csak Windows rendszerű, és a Windows teljesítményszámláló eszközeit szeretné használni.

További információ: Teljesítményszámlálók a .NET-keretrendszer.

Eseményszámlálók

Az EventCounters volt az első .NET API, amely támogatja a platformfüggetlen metrikák használatát. Az API-k a .NET Core 3.1+-os verziójával érhetők el, egy kis részhalmaz pedig a 4.7.1-.NET-keretrendszer és újabb verziókban érhető el. Ezeket az API-kat teljes mértékben támogatják és továbbra is használják a kulcs .NET-kódtárak, de kevesebb funkciójuk van, mint az újabb System.Diagnostics.Metrics API-knak. Az EventCounters képes jelentést készíteni a változások és az átlagok arányáról, de nem támogatja a hisztogramokat és a percentiliseket. A többdimenziós metrikák sem támogatottak. Az egyéni eszközhasználat az EventListener API-val lehetséges, bár nincs erősen begépelve, csak hozzáférést biztosít az összesített értékekhez, és korlátozásokkal rendelkezik, ha egyszerre több figyelőt használ. Az EventCounterst közvetlenül a Visual Studio, az Application Insights, a dotnet-counters és a dotnet-monitor támogatja. Külső eszköztámogatás esetén ellenőrizze a szállító vagy a projekt dokumentációjában, hogy elérhető-e.

A .NET csapata nem számít arra, hogy az API-val kapcsolatban további befektetéseket fog végezni, de ahogy PerformanceCountersaz is, az API továbbra is támogatott az összes jelenlegi és jövőbeli felhasználó számára.

Külső API-k

A legtöbb alkalmazásteljesítmény-monitorozási (APM-) gyártó, például az AppDynamics, az Application Insights, a DataDog, a DynaTrace és a NewRelic metrika API-kat tartalmaz a rendszerállapot-kódtárak részeként. A Prometheus és az AppMetrics szintén népszerű .NET OSS-projektek. Ha többet szeretne megtudni ezekről a projektekről, tekintse meg a különböző projektwebeket.