Bevezetés az OpenTelemetrybe kezdőknek

Beszéljük meg az OpenTelemetry-t – a telemetriai adatok gyűjtésének szállítótól független szabványos módját.

A jobb megfigyelhetőség biztosítása egy alkalmazásban nagy kihívást jelent minden fejlesztő számára, mert rögzítenie kell az alkalmazás telemetriai adatait. A Cambridge-i szótár a telemetriát olyan tudományként vagy folyamatként határozza meg, amely információt gyűjt a távol lévő tárgyakról, és elküldi valahova elektronikusan.

Például egy felhasználó egyetlen kattintása vagy munkamenete egy webhelyen sok kérést és nyomkövetést generál a hálózatok, mikroszolgáltatások, adatbázisok stb. között.

Az OpenTelemetry egy megfigyelési platform, jól faktorált összetevők halmaza, amelyek együtt vagy a la carte is használhatók. Ezenkívül a ma mindannyian általunk használt keretrendszerek és könyvtárak fejlesztői szabványos módszerrel rendelkeznek telemetriai adatok bevitelére ezekbe a könyvtárakba és keretrendszerekbe, így a végfelhasználók számos betekintést nyerhetnek abba, hogy mit csinálnak ezek a keretrendszerek a motorháztető alatt. .

Az OpenTelemetry megértéséhez először tudnia kell, mi az elosztott nyomkövetés.

Mi az elosztott nyomkövetés?

Ahogy alkalmazásaink egyre összetettebbé válnak, és egyre több szolgáltatás vesz részt a felhasználói forgalom kiszolgálásában és a tranzakciók lebonyolításában, egyre fontosabbá válik annak megértése, hogy a kérések hogyan haladnak át szolgáltatásainkon, és hogyan járulnak hozzá az egyes szolgáltatások az általános késleltetéshez. Ezt teszi az elosztott nyomkövetés. Rögzíti a felhasználói kérések késleltetését, és azt, hogy mennyi időbe telik az elérési útban lévő egyes mikroszolgáltatások válaszadása.

Amikor beérkezik egy felhasználói kérés, nyomkövetést akarunk létrehozni, azaz azt a teljes információt, amely leírja, hogy rendszerünk hogyan válaszol egy felhasználói kérésre. A nyomkövetések tartományokból állnak, és mindegyik tartomány egy adott kérés és válaszpárt jelöl, amelyek részt vesznek a felhasználói kérés kiszolgálásában. A szülő span a végfelhasználó által megfigyelt késleltetést írja le. A gyermek span pedig annak megértésére szolgál, hogyan hívták meg az elosztott rendszerben egy adott szolgáltatást, és hogyan válaszoltak rá a késleltetési információival.

Mi az az OpenTelemetry?

OpenTelemetry a CNCF által üzemeltetett nyílt forráskódú projekt, amely szabványos módot biztosít a telemetriai adatok generálására. összeolvadásával jött létre OpenTracinga nyomkövetési adatok generálására szolgáló szabvány, és OpenCensusamely szabvány volt a metrikaadatok generálására.

  Vezérlőközpont modulok rögzítése a Mac menüsorához

Az OpenTelemetry API-k, ügynökök, gyűjtői szolgáltatások és könyvtárak egyetlen készletét kínálja az elosztott nyomkövetések és metrikák rögzítéséhez az alkalmazásból. Az OpenTelemetry szabványosítja, hogyan gyűjtjük a telemetriai adatokat, és hogyan küldjük el azokat az Ön által választott háttérrendszerre. Ez szállító-semleges utat biztosít a műszerezéshez, és rugalmasságot biztosít a háttérrendszer megváltoztatásához anélkül, hogy újra műszerezné a kódot.

Így alkalmazásait szállító-agnosztikus ügynök segítségével eszközölheti, miközben elküldi a metrikákat és a nyomkövetéseket egy SaaS-szállítónak, például a Datadognak. Majd ha szállítót szeretne váltani (pl. Datadogról Dynatrace-re), megteheti az alkalmazás kódjának megváltoztatása nélkül.

Az OpenTelemetry projekt célja, hogy egyetlen API-könyvtárat és ügynököt biztosítson a metrikák és elosztott nyomkövetések rögzítéséhez az alkalmazásokból. Ez számos nyelvre és platformra vonatkozik. Az OpenTelemetry projekt egy opcionális gyűjtőszolgáltatást is tartalmaz, és egy dedikált adattárral rendelkezik a specifikációk számára. Hogy egyértelmű legyen, az OpenTelemetry nem a Jaeger vagy a Prometheus, amelyek megfigyelhető háttérrendszerek. De segít az adatok nyílt forráskódú és kereskedelmi háttérrendszerekre történő exportálásában.

Az alábbiakban felsoroljuk az OpenTelemetry által kínált funkciókat:

  • A szervezetek által követhető telemetriai adatok gyűjtésének szabványosítása, amely megkönnyíti a szállítók közötti váltást
  • Szállító-agnosztikus, nyílt szabványú szemantikai konvenció az adatgyűjtési folyamathoz
  • Gyűjtő, amely ügynökként vagy átjáróként, vagy sokféle módon telepíthető
  • Több kontextus terjesztési formátumot támogat az áttelepítéshez
  • Végponttól végpontig terjedő megoldás telemetriai adatok generálására, kibocsátására, gyűjtésére, feldolgozására és exportálására
  • Lehetőség, hogy adatokat küldjön párhuzamosan különböző célállomásokra, teljes vezérléssel

OpenTelemetry komponensek

Az alábbiakban az OpenTelemetry alapvető összetevői találhatók:

  • Proto: Ez az összetevő gyűjtők, műszerkönyvtárak stb. meghatározására szolgál, amelyek nyelvtől független interfésztípusok az OpenTelemetry számára.
  • Gyűjtő: A gyűjtők telemetriai adatok fogadására, feldolgozására és exportálására szolgálnak. A gyűjtőknek ennek a megvalósításának a gyártói agnosztikusnak kell lennie. Alapértelmezés szerint az összes telemetriai adatot a műszerkönyvtárak exportálják ezen a helyen.
  • Specifikáció: Ez az összetevő leírja a megvalósítás követelményeit és elvárásait különböző nyelveken, beleértve az API-kat, SDK-kat és adatokat. Az API létrehozza a telemetriai adatokat, feldolgozási és exportálási képességeket az SDK-k által biztosított API-k megvalósításához. Az adatok szemantikai konvencióival rendelkeznek, hogy mindenféle szállítót támogassanak a kód megváltoztatása nélkül.
  • Műszerkönyvtárak: Ezek több nyelven is elérhetők az OpenTelemetry projekt részeként. Ezeket a könyvtárakat arra használják, hogy megfigyelhetőséget biztosítsanak más könyvtárak számára, hogy az OpenTelemetry API meghívásával az összes megfigyelt alkalmazást elvégezhessék.
  12 legjobb SaaS-felügyeleti platform a költségek csökkentésére

OpenTelemetry architektúra

Kép az új ereklyéből

Magas szinten az OpenTelemetry három fő részből áll:

  • API-k készlete alkalmazásokhoz, könyvtárakhoz és keretrendszerekhez.
  • Az SDK API-kat valósít meg.
  • Egy opcionális gyűjtő képes lefoglalni, összesíteni és exportálni a telemetriai adatokat, ahol csak szüksége van rájuk.

Az API célja, hogy lehetővé tegye a könyvtárak műszerezését és az alkalmazás kódját. Az API négy fő részből áll: nyomkövetés, mérők, megosztott kontextus és szemantikai konvenciók.

  • A Tracer API támogatja a szakaszok létrehozását, megjegyzésekkel való kiegészítését és kitöltését.
  • A mérő API több metrikus műszerből áll. Ilyen műszerek például a megfigyelők, az értékrögzítők, a számlálók.
  • Nyomon követheti és végrehajthatja a span kontextust a kontextus API engedélyezésével, és terjesztheti ezt a kontextust a rendszeren belül és kívül egyaránt.
  • A szemantikai konvenciókban minden iránymutatás és szabály a főként elnevezésre vonatkozik, mint például a tartók, attribútumok, címkék és metrikus eszközök elnevezése. Ezek a konvenciók a különböző nyelvi megvalósítások és a külső eszközök közötti konzisztencia biztosítására szolgálnak.

Megosztott környezetben a kontextus megvalósítása a nyomkövető és a mérő között helyezkedik el, és lehetővé teszi az összes nem megfigyelői metrika rögzítésének végrehajtását egy végrehajtási tartomány kontextusában. Olyan funkció, amely lehetővé teszi az SDK-k számára, hogy példaértékű tartományokat rögzítsenek a metrikaértékekhez. Testreszabhatja a kontextust a propagátorokkal, amelyek lehetővé teszik a span kontextus terjesztését a rendszerbe és onnan ki, amely lehetővé teszi a valódi elosztott nyomkövetést.

A Collector az OpenTelemetry architektúra lényeges része. Ez egy önálló szolgáltatás, amely telemetriai adatokat fogadhat, dolgozhat fel és exportálhat különböző forrásokból, köztük az OpenCensusból, a Zipkinből, a Jaegerből és az OpenTelemetry protokollból. A gyűjtők használatával több szállítóhoz és nyílt forráskódú telemetriai rendszerhez exportálhat tartományokat és mérőszámokat.

  A megosztott Google-fájlhoz való hozzáférés véglegesítése és visszavonása

Az OpenTelemetry architektúra teljes telemetriai megoldást kínál a dobozból. A testreszabást igény szerint több bővítőpont használatával is elvégezheti.

Hogyan működik az OpenTelemetry?

Telepítse az OpenTelemetry-ügyfelet a központi telepítés minden szolgáltatásába. Az ügyfél az SDK; az SDK viszont rendelkezik API-val. Az alkalmazás-keretrendszerek és -könyvtárak ezt a műszeres API-t használják az általuk végzett munka leírására. Az SDK ezután exportálja az összegyűjtött megfigyeléseket a Collector nevű adatfolyam-szolgáltatásba.

Az OpenTelemetry saját adatprotokollal, OTLP-vel rendelkezik, de a gyűjtő le tudja fordítani az OTLP-t különböző formátumokba, pl. Zipkin, Vadászés Prométheusz. Nevezetesen, az OpenTelemetry nem biztosít saját háttér- vagy elemzőeszközt; ez azért van, mert ez egy szabványosítási törekvés az OpenTelemetry középpontjában. A cél egy univerzális nyelv kidolgozása a számítógépek felhőkörnyezetben történő működésének leírására. A cél nem az, hogy egységesítsük az adatok elemzésének módját. Ehelyett azt reméljük, hogy az OpenTelemetry elősegíti a megfigyelhetőség világának előremozdítását azáltal, hogy lehetővé teszi az új elemző eszközök gyors elindítását anélkül, hogy újraépítené a telemetriai szoftverek teljes ökoszisztémáját.

Ha sok adatot küld a rendszerben, sok mindent meg kell fontolnia. Szerencsére az OpenTelemetry mindenre gondolt, és minden kérdésre megoldást kínál. Mindenekelőtt az OpenTelemetry rugalmas, és többféle kontextus-terjesztési formátumot kezel. Ez azt jelenti, hogy bár létezik szabvány, a szabványon belül továbbra is van választási lehetőség. Tehát, ha olyasmit használ, mint a w3c nyomkövetési kontextusformátum vagy a b3 terjesztés, ezek a szabványon belüli eltérő szabványok, amelyek lehetővé teszik a szolgáltatások számára a pontok összekapcsolását.

Következtetés

Az OpenTelemetry különféle megfigyeléseket gyűjt össze, amelyek közül a legfontosabbak az elosztott nyomkövetési metrikák és a rendszererőforrások. Ahelyett, hogy ezeket különálló jelekként kezelné, az OpenTelemetry összefonja őket, és olyan indexelést és kontextust biztosít, amely lehetővé teszi ezen jelek összesítését és keresztindexelését a háttérben.

Az adatgyűjtésen kívül az OpenTelemetry olyan adatfeldolgozási és folyamatkezelési lehetőséget is biztosít, amely lehetővé teszi az adatformátumok megváltoztatását, az adatok kezelését, valamint minden olyan eszközt, amely egy robusztus telemetriai folyamat létrehozásához szükséges egy modern rendszerben.

Tehát ennyi volt az OpenTelemetryről, próbálja ki ezt az eszközt.