Úvod do OpenTelemetry pro začátečníky

Pojďme diskutovat o OpenTelemetry – standardním způsobu shromažďování telemetrických dat, který je nezávislý na výrobci.

Nabídnout lepší pozorovatelnost do aplikace je velkou výzvou pro každého vývojáře, protože potřebuje zachytit telemetrická data aplikace. Cambridgeský slovník definuje telemetrii jako vědu nebo proces shromažďování informací o objektech, které jsou daleko, a odesílání informací někam elektronicky.

Například jediné kliknutí nebo relace uživatele na webové stránce generuje mnoho požadavků a trasování mezi sítěmi, mikroslužbami, databázemi atd.

OpenTelemetry je platforma pozorovatelnosti, sada dobře zpracovaných komponent, které lze používat společně nebo a la carte. Kromě toho vývojáři frameworků a knihoven, které dnes všichni používáme, mají nyní standardní způsob, jak do těchto knihoven a frameworků vložit telemetrická data, což koncovým uživatelům poskytuje mnoho okamžitých přehledů o tom, co tyto frameworky dělají pod pokličkou. .

Abyste porozuměli OpenTelemetry, musíte nejprve vědět, co je distribuované trasování.

Co je distribuované sledování?

S tím, jak se naše aplikace stávají složitějšími a do obsluhy uživatelského provozu a dokončování transakcí se zapojuje více služeb, je stále důležitější pochopit, jak požadavky procházejí našimi službami a jak jednotlivé služby přispívají k celkové latenci. To je to, co dělá distribuované sledování. Zachycuje latenci požadavků uživatelů a jak dlouho trvá každé mikroslužbě v cestě, než vrátí odpověď.

Když přijde požadavek uživatele, chceme vytvořit trasování, tj. celkové informace, které popisují, jak náš systém reaguje na požadavek uživatele. Trasování se skládá z rozsahů a každý rozsah označuje konkrétní pár požadavku a odpovědi, který se podílí na obsluze požadavku uživatele. Rodičovský rozsah popisuje latenci pozorovanou koncovým uživatelem. A child span se používá k pochopení toho, jak byla konkrétní služba v distribuovaném systému volána a jak reagovala s jejich latencí.

Co je OpenTelemetry?

OpenTelemetry je open-source projekt hostovaný CNCF, který poskytuje standardní způsob generování telemetrických dat. Vznikla sloučením OpenTracingstandard pro generování trasovacích dat a OpenCensuscož byl standard pro generování dat metrik.

  Opravit riziko deště smrtelné chyby v akci číslo 1

OpenTelemetry nabízí jedinou sadu rozhraní API, agentů, sběratelských služeb a knihoven pro zachycení distribuovaných tras a metrik z vaší aplikace. OpenTelemetry standardizuje způsob, jakým shromažďujeme telemetrická data a odesíláme je na back-end dle vašeho výběru. To vám poskytuje dodavatelsky neutrální cestu k instrumentaci a poskytuje flexibilitu při změně vašeho back-endu, aniž byste museli znovu instrumentovat váš kód.

Své aplikace tedy můžete instrumentovat pomocí agenta bez ohledu na dodavatele a přitom stále odesílat své metriky a trasování dodavateli SaaS, jako je Datadog. Pokud pak chcete změnit dodavatele (např. z Datadog na Dynatrace), můžete to udělat bez změny kódu aplikace.

Projekt OpenTelemetry si klade za cíl poskytnout jedinou sadu knihoven API a agentů pro zachycení metrik a distribuovaných trasování z vašich aplikací. To platí pro mnoho jazyků a platforem. Projekt OpenTelemetry také zahrnuje volitelnou kolektorovou službu a má vyhrazené úložiště pro specifikace. Aby bylo jasno, OpenTelemetry není Jaeger nebo Prometheus, což jsou pozorovatelné back-endy. Ale pomáhá při exportu dat do open-source a komerčních back-endů.

Níže jsou uvedeny funkce, které OpenTelemetry poskytuje:

  • Standardizace shromažďování telemetrických dat, kterou mohou organizace sledovat, což usnadňuje pohyb mezi dodavateli
  • Sémantická konvence pro proces shromažďování dat, která je nezávislá na dodavateli a má otevřený standard
  • Kolektor, který může být nasazen jako agent nebo brány nebo mnoha různými způsoby
  • Podporuje více formátů šíření kontextu pro migraci
  • Komplexní řešení pro generování, vysílání, sběr, zpracování a export telemetrických dat
  • Možnost paralelního odesílání dat na různá místa s úplnou kontrolou nad nimi

Komponenty OpenTelemetry

Níže jsou uvedeny základní součásti OpenTelemetry:

  • Proto: Tato komponenta se používá k definování pro kolektory, knihovny přístrojů atd., což jsou jazykově nezávislé typy rozhraní pro OpenTelemetry.
  • Kolektor: Kolektory se používají k příjmu, zpracování a exportu telemetrických dat. Tato implementace kolektorů musí být nezávislá na prodejci. Ve výchozím nastavení jsou všechna telemetrická data exportována knihovnami přístrojů v tomto umístění.
  • Specifikace: Tato komponenta popisuje požadavky a očekávání implementace v různých jazycích sestávajících z rozhraní API, sad SDK a dat. API generuje telemetrická data, možnosti zpracování a exportu pro implementaci rozhraní API poskytovaných sadami SDK. Data mají sémantické konvence pro podporu všech druhů dodavatelů beze změny kódu.
  • Instrumentation Libraries: Tyto knihovny jsou dostupné ve více jazycích jako součást projektu OpenTelemetry. Tyto knihovny se používají k zajištění pozorovatelnosti pro ostatní knihovny, aby byly všechny aplikace pozorovány voláním OpenTelemetry API.
  Můžete se vrátit ke starému rozvržení Instagramu?

Architektura OpenTelemetry

Obrázek z New Relic

Na vysoké úrovni se OpenTelemetry skládá ze tří hlavních částí:

  • Sada rozhraní API pro nástroje aplikací, knihoven a rámců.
  • Sada SDK implementuje rozhraní API.
  • Volitelný kolektor může přijímat, agregovat a exportovat telemetrická data, kdekoli je potřebujete.

Účelem API je umožnit vytvoření instrumentace pro knihovny a aplikačního kódu. Rozhraní API má čtyři hlavní části: sledování, měřiče, sdílený kontext a sémantické konvence.

  • Tracer API podporuje vytváření, anotování a dokončování úseků.
  • Rozhraní API měřiče se skládá z několika metrických přístrojů. Příklady těchto nástrojů jsou pozorovatelé, zapisovače hodnot, čítače.
  • Můžete sledovat a spouštět kontext span tím, že povolíte kontextové rozhraní API a budete tento kontext šířit v rámci i externě do vašeho systému.
  • Všechny pokyny a pravidla pro pojmenování, jako je pojmenování rozsahů, atributů, štítků a metrických nástrojů, jsou obsaženy v sémantických konvencích. Tyto konvence jsou implementovány k zajištění konzistence napříč různými jazykovými implementacemi a pro externí instrumentace.

Ve sdíleném kontextu leží implementace kontextu mezi sledovacím zařízením a měřidlem a umožňuje, aby se všechny metrické záznamy bez pozorovatele vyskytovaly v kontextu prováděcího rozsahu. Funkce, která sadám SDK umožňuje zachytit vzorové rozsahy pro metrické hodnoty. Kontext můžete přizpůsobit pomocí propagátorů, které umožňují šíření kontextu rozsahu do a ze systému, což umožňuje skutečné distribuované trasování.

Collector je nezbytnou součástí architektury OpenTelemetry. Jedná se o samostatnou službu, která může přijímat, zpracovávat a exportovat telemetrická data z různých zdrojů, včetně OpenCensus, Zipkin, Jaeger a protokolu OpenTelemetry. Pomocí kolektorů můžete exportovat rozsahy a metriky k více dodavatelům a open source telemetrickým systémům.

  Jak zobrazit Centrum oznámení na Macu

Architektura OpenTelemetry nabízí kompletní řešení telemetrie ihned po vybalení. Můžete také provést přizpůsobení pomocí více bodů rozšíření podle potřeby.

Jak funguje OpenTelemetry?

Uvnitř každé služby ve vašem nasazení nainstalujte klienta OpenTelemetry. Klientem je SDK; SDK má zase API. Vaše aplikační rámce a knihovny používají toto instrumentační API k popisu práce, kterou provádějí. SDK poté exportuje shromážděná pozorování do služby pro zřetězení dat s názvem Collector.

OpenTelemetry má svůj vlastní datový protokol, OTLP, ale kolektor může překládat OTLP do různých formátů, včetně Zipkin, Jágera Prometheus. OpenTelemetry zejména neposkytuje vlastní back-end nebo analytický nástroj; je to proto, že se jedná o standardizační úsilí v srdci OpenTelemetry. Cílem je přijít s univerzálním jazykem pro popis operací počítačů v cloudovém prostředí. Cílem není standardizovat, jak tato data analyzujeme. Místo toho doufáme, že OpenTelemetry pomůže posunout svět pozorovatelnosti kupředu tím, že umožní nové analytické nástroje rychle začít bez přestavby celého tohoto ekosystému telemetrického softwaru.

Když systémem posíláte velké množství dat, je třeba toho hodně zvážit. Naštěstí OpenTelemetry přemýšlela o všech věcech a má řešení pro každou z těchto otázek. OpenTelemetry je především flexibilní a zvládá více formátů šíření kontextu. To znamená, že i když existuje standard, stále existuje možnost volby v rámci tohoto standardu. Pokud tedy používáte něco jako kontextový formát trasování w3c nebo šíření b3, jedná se o různé standardy v rámci standardu, které umožňují vašim službám propojit tečky.

Závěr

OpenTelemetry shromažďuje řadu pozorování, přičemž nejdůležitější jsou metriky distribuovaného sledování a systémové zdroje. Spíše než s nimi zacházet jako se samostatnými signály je OpenTelemetry splétá dohromady a poskytuje indexování a kontext, který vám umožňuje agregovat a křížově indexovat všechny tyto signály na zadní straně.

Kromě sběru dat poskytuje OpenTelemetry zařízení pro zpracování a zřetězení dat, které vám umožňuje měnit formáty dat, manipulovat s daty a všechny nástroje, které potřebujete k vybudování robustního telemetrického potrubí v moderním systému.

Takže to bylo vše o OpenTelemetry, pokračujte a vyzkoušejte tento nástroj.