Mi az a megfigyelhetőség?

Befejeződött

Mielőtt belevág a kódba, tegyünk egy lépést vissza, és beszéljünk a megfigyelhetőségről. Olyan eszközökkel kell rendelkeznie, amelyek segítenek a rendszer belső állapotának megértésében a külsőleg láthatóak alapján.

Miért érdemes a megfigyelhetőséget megvalósítani?

A natív felhőalkalmazások fejlesztésének és fejlesztésének több oka is van:

  • A rendszer viselkedésének ismertetése: A megfigyelhetőség betekintést nyújt az alkalmazás teljesítményébe, valamint a szűk keresztmetszetek vagy hibák előfordulásának helyébe.
  • Hibakeresés és hibaelhárítás: Ha problémák merülnek fel, a megfigyelhetőségi eszközök részletes információkat nyújtanak arról, hogy mi történt a rendszerben a probléma időpontjában.
  • Folyamatos fejlesztés: A megfigyelhetőség nem csak a problémák azonosítására és megoldására szolgál, hanem a folyamatos fejlesztésre is. A rendszer teljesítményének időbeli monitorozásával azonosíthatja a kód optimalizálásának lehetőségeit, javíthatja a rendszer teljesítményét, és mennyiségileg javíthatja a felhasználói élményt.
  • Proaktív problémaészlelés: A megfelelő megfigyelhetőségi eszközökkel gyakran észlelheti a problémákat, mielőtt a felhasználók még látnák is őket.

A megfigyelhetőség megvalósítása a natív felhőbeli alkalmazásokban nem csupán ajánlott eljárás, hanem az alkalmazások karbantartásához, optimalizálásához és folyamatos fejlesztéséhez is szükséges. Lehetővé teszi a fejlesztők számára, hogy megbízható, nagy teljesítményű alkalmazásokat nyújtsanak, és a megalapozott döntéshozatalhoz szükséges elemzéseket nyújtják.

A megfigyelhetőség három pillére

A megfigyelhetőségnek három fő pillére van:

  • Naplók: A naplók részletes nyilvántartást nyújtanak az alkalmazáson vagy rendszeren belüli eseményekről. Az alkalmazásban infrastruktúra használatával Microsoft.Extensions.Logging naplózhatja az eseményeket.
  • Metrikák: A metrikák numerikus mérésekre és számlálókra vonatkoznak, amelyek betekintést nyújtanak a rendszer teljesítményébe és állapotába. Ilyenek például a kérések sebessége, a válaszidők, a processzor-/memóriahasználat és a hibaarányok. Előfordulhat, hogy az alkalmazásban vannak bizonyos mérések, amelyeket nyomon kell követnie.
  • Elosztott nyomkövetés: Ez a folyamat magában foglalja egy kérés nyomon követését, mivel az a natív felhőbeli alkalmazás összes mikroszolgáltatásán keresztül propagálja. Minden szolgáltatás naplózza az olyan nyomkövetési adatokat, mint a kérésazonosítók, amelyek lehetővé teszik az események különböző szolgáltatások közötti korrelálását. Az elosztott nyomkövetés összetett rendszerek teljesítményproblémáinak és hibáinak hibakereséséhez is hasznos.

Ez a három pillér együttesen átfogó megfigyelhetőséget biztosít a rendszerben.

A telemetria adatforrásai

A vállalat natív felhőalkalmazásában számos telemetriaforrást gyűjthet:

  • Alkalmazásnaplók: Az alkalmazások olyan naplókat hoznak létre, amelyek részletes információkat nyújtanak a műveletről és a hibákról, ha előfordulnak. A naplózás telemetriai adatok gazdag forrása.
  • Adatbázisok: Az adatbázisok telemetriai adatokat szolgáltathatnak a feldolgozott lekérdezésekről, a végrehajtási időkről és az esetleges hibákról.
  • HTTP-kérések és válaszok: A mikroszolgáltatások közötti HTTP-kérések és válaszok gazdag és értékes telemetriai adatokat biztosítanak. Ezek az adatok tartalmazzák a kérés- és válaszfejléceket, a törzs tartalmát, az állapotkódokat és az időzítési információkat.
  • Ügyféloldali teljesítményadatok: Az előtérbeli natív felhőbeli alkalmazásokban az ügyféloldali teljesítményadatokat gyűjtheti. Ezek az adatok közé tartozhatnak az oldallekérések, a betöltési idők és a felhasználói felület interakcióinak időpontjai.
  • Infrastruktúrametrikák: Ha az alkalmazást felhőkörnyezetben üzemelteti, olyan infrastruktúra-metrikákat gyűjthet, mint a CPU-használat, a memóriahasználat, a hálózati forgalom és a lemez I/O-műveletei.

A telemetriai adatok gyűjtésével és elemzésével értékes betekintést nyerhet az alkalmazás teljesítményébe és állapotába.

Megfigyelhetőség megvalósítása

Ha megfigyelhetőséget szeretne hozzáadni a natív felhőalkalmazáshoz, hajtsa végre az alábbi lépéseket:

  • Naplózás hozzáadása.
  • Metrikák engedélyezése és egyéni metrikák definiálása a rögzítéshez.
  • Engedélyezze az elosztott nyomkövetést az OpenTelemetry és a Zipkin használatával.
  • Az alkalmazást újra az OpenTelemetria segítségével, valamint telemetriai adatok kódhoz való hozzáadásával alakíthatja ki.
  • Elemezze a telemetriai adatokat a Prometheus, a Grafana vagy az Application Elemzések használatával.

Bevezetés az OpenTelemetry használatába

Hogyan segíti az OpenTelemetry a megfigyelhetőség hozzáadását az alkalmazáshoz, és miért támogatott ilyen mély támogatás a .NET-ben? Az OpenTelemetry egy nyílt forráskódú megfigyelhetőségi keretrendszer. Szabványos, szállítói agnosztikus módszert biztosít a telemetriai adatok létrehozásához.

Az OpenTelemetria szabványosítja a telemetriai adatok gyűjtésének és továbbításának módját a háttérplatformokon. Ez áthidalja a láthatósági réseket azáltal, hogy az összes mikroszolgáltatásban egységes kialakítási formátumot biztosít. Nem kell újrastruktálnia a kódot, és nem kell minden alkalommal telepítenie a különböző védett ügynököket, amikor egy háttérplatform megváltozik.

Mivel nyílt szabvány, a .NET-en kívül sok más eszközt is támogat. Az OpenTelemetria olyan bővítmények használatára van konfigurálva, amelyek lehetővé teszik, hogy az exportőrök telemetriai adatokat hozzanak létre az összes különböző eszközhöz. Ez azt jelenti, hogy ugyanazokat az eszközöket használhatja a mikroszolgáltatások monitorozására, függetlenül attól, hogy milyen nyelven vannak megírva.

Az OpenTelemetry segít összegyűjteni és monitorozni a megfigyelhetőség mindhárom alappillérét: naplókat, metrikákat és nyomkövetéseket. A következő egységekben láthatja, hogyan végezheti el ezeket a feladatokat.