Monitorování a diagnostika pro Azure Service Fabric

Tento článek obsahuje přehled monitorování a diagnostiky pro Azure Service Fabric. Monitorování a diagnostika jsou důležité pro vývoj, testování a nasazování úloh v jakémkoli cloudovém prostředí. Můžete například sledovat, jak se vaše aplikace používají, akce prováděné platformou Service Fabric, využití prostředků s čítači výkonu a celkový stav clusteru. Tyto informace můžete použít k diagnostice a opravě problémů a zabránit jejich výskytu v budoucnu. V následujících několika částech stručně vysvětlíme každou oblast monitorování Service Fabric, která se má zvážit pro produkční úlohy.

Poznámka:

Tento článek byl nedávno aktualizován tak, aby místo Log Analytics používal termín protokoly služby Azure Monitor. Data protokolů jsou stále uložená v pracovním prostoru služby Log Analytics a stále se shromažďují a analyzují stejnou službou Log Analytics. Aktualizujeme terminologii tak, aby lépe odrážela roli protokolů ve službě Azure Monitor. Podrobnosti najdete v tématu Změny terminologie služby Azure Monitor.

Monitorování aplikace

Monitorování aplikací sleduje, jak se používají funkce a součásti vaší aplikace. Chcete monitorovat aplikace, abyste měli jistotu, že se zachytily problémy, které mají dopad na uživatele. Odpovědnost za monitorování aplikací je na uživatelích, kteří vyvíjejí aplikaci a její služby, protože je jedinečná pro obchodní logiku vaší aplikace. Monitorování aplikací může být užitečné v následujících scénářích:

  • Kolik provozu má moje aplikace? - Potřebujete škálovat služby tak, aby splňovaly požadavky uživatelů, nebo řešit potenciální kritický bod ve vaší aplikaci?
  • Jsou moje služba volání služeb úspěšná a sledována?
  • Jaké akce provádějí uživatelé aplikace? – Shromažďování telemetrie může vést k budoucímu vývoji funkcí a lepší diagnostice chyb aplikací.
  • Vyvolává moje aplikace neošetřené výjimky?
  • Co se děje ve službách spuštěných uvnitř kontejnerů?

Skvělou věcí o monitorování aplikací je, že vývojáři můžou používat libovolné nástroje a architekturu, které by chtěli, protože se nachází v kontextu vaší aplikace. Další informace o řešení Azure pro monitorování aplikací pomocí služby Azure Monitor Application Přehledy v analýze událostí pomocí služby Application Přehledy. Máme také kurz, jak ho nastavit pro aplikace .NET. V tomto kurzu se dozvíte, jak nainstalovat správné nástroje, příklad zápisu vlastní telemetrie do aplikace a zobrazení diagnostiky a telemetrie aplikací na webu Azure Portal.

Monitorování platformy (clusteru)

Uživatel má kontrolu nad tím, jaká telemetrie pochází ze své aplikace, protože uživatel zapíše samotný kód, ale co diagnostika z platformy Service Fabric? Jedním z cílů Service Fabric je zachování odolnosti aplikací vůči selhání hardwaru. Tento cíl se dosahuje schopností systémových služeb platformy zjišťovat problémy s infrastrukturou a rychle při selhání úloh do jiných uzlů v clusteru. Ale v tomto konkrétním případě, co když samotné systémové služby mají problémy? Nebo pokud se pokoušíte nasadit nebo přesunout úlohu, pravidla pro umístění služeb jsou porušena? Service Fabric poskytuje diagnostiku pro tyto a další funkce, abyste měli jistotu, že jste informováni o aktivitě, které probíhají ve vašem clusteru. Mezi ukázkové scénáře monitorování clusteru patří:

Service Fabric poskytuje kompletní sadu událostí. K těmto událostem Service Fabric je možné přistupovat prostřednictvím EventStore nebo provozního kanálu (kanál událostí vystavený platformou).

  • Kanály událostí Service Fabric – Ve Windows jsou události Service Fabric k dispozici od jednoho zprostředkovatele Trasování událostí pro Windows se sadou relevantních logLevelKeywordFilters pro výběr mezi kanály Provozní a Data &Messaging . Je to způsob, jakým oddělujeme odchozí události Service Fabric, na které se mají podle potřeby filtrovat. V Linuxu přicházejí události Service Fabric přes LTTng a umístí se do jedné tabulky Úložiště, odkud je můžete podle potřeby filtrovat. Tyto kanály obsahují kurátorované strukturované události, které je možné použít k lepšímu pochopení stavu clusteru. Diagnostika se ve výchozím nastavení povolí při vytváření clusteru, která vytvoří tabulku Azure Storage, ve které se události z těchto kanálů odesílají, abyste se mohli v budoucnu dotazovat.

  • EventStore – EventStore je funkce nabízená platformou, která poskytuje události platformy Service Fabric dostupné v Service Fabric Exploreru a prostřednictvím rozhraní REST API. Můžete si prohlédnout zobrazení snímku toho, co se děje v clusteru pro každou entitu, například uzel, služba, aplikace a dotaz v závislosti na čase události. Další informace o eventstoru si můžete přečíst také v přehledu EventStore.

Screenshot shows the EVENTS tab of the Nodes pane several events, including a NodeDown event.

Poskytnutá diagnostika je ve formě komplexní sady událostí, které jsou k dispozici. Tyto události Service Fabric znázorňují akce prováděné platformou na různých entitách, jako jsou uzly, aplikace, služby, oddíly atd. V posledním scénáři výše by platforma vygenerovala NodeDown událost a nástroj pro monitorování by vás mohl informovat okamžitě. Mezi další běžné příklady patří převzetí ApplicationUpgradeRollbackStarted služeb při selhání nebo PartitionReconfigured během převzetí služeb při selhání. Stejné události jsou k dispozici v clusterech s Windows i Linuxem.

Události se odesílají prostřednictvím standardních kanálů ve Windows i Linuxu a mohou je číst jakýkoli monitorovací nástroj, který je podporuje. Řešení Azure Monitor je protokoly služby Azure Monitor. Můžete si přečíst další informace o integraci protokolů služby Azure Monitor, která zahrnuje vlastní provozní řídicí panel pro váš cluster a některé ukázkové dotazy, ze kterých můžete vytvářet upozornění. Další koncepty monitorování clusteru jsou k dispozici na úrovni událostí a generování protokolů na úrovni platformy.

Monitorování stavu

Platforma Service Fabric obsahuje model stavu, který poskytuje rozšiřitelné sestavy stavu pro stav entit v clusteru. Každý uzel, aplikace, služba, oddíl, replika nebo instance má nepřetržitě aktualizovatelný stav. Stav může být "OK", "Upozornění" nebo "Chyba". Události Service Fabric si můžete představit jako příkazy provedené clusterem pro různé entity a stav jako přídavná jména pro každou entitu. Pokaždé, když se stav konkrétní entity změní, událost se také vygeneruje. Tímto způsobem můžete nastavit dotazy a výstrahy pro události stavu ve zvoleném nástroji pro monitorování stejně jako jakoukoli jinou událost.

Kromě toho umožňujeme uživatelům přepsat stav entit. Pokud vaše aplikace prochází upgradem a dochází k selhání ověřovacích testů, můžete napsat do služby Service Fabric Health pomocí rozhraní API pro stav, abyste označili, že vaše aplikace už není v pořádku, a Service Fabric automaticky vrátí upgrade zpět. Další informace o modelu stavu najdete v úvodu k monitorování stavu Service Fabric.

SFX health dashboard

Kukátky

Obecně platí, že sledovací služba je samostatná služba, která sleduje stav a zatížení mezi službami, koncovými body ping a hlásí neočekávané události stavu v clusteru. To může pomoct zabránit chybám, které nemusí být zjištěny pouze na základě výkonu jedné služby. Watchdogs jsou také dobrým místem pro hostování kódu, který provádí nápravné akce, které nevyžadují interakci uživatele, například čištění souborů protokolu v úložišti v určitých časových intervalech. Pokud chcete plně implementovat opensourcovou službu SF watchdog, která zahrnuje snadno použitelný model rozšiřitelnosti watchdogu a který běží v clusterech s Windows i Linuxem, podívejte se na projekt FabricObserver . FabricObserver je software připravený pro produkční prostředí. Doporučujeme nasadit FabricObserver do testovacích a produkčních clusterů a rozšířit ho tak, aby vyhovoval vašim potřebám, a to buď prostřednictvím jeho modelu plug-in, nebo jeho forku a psaní vlastních integrovaných pozorovatelů. Doporučeným přístupem je bývalý (moduly plug-in).

Monitorování infrastruktury (výkonu)

Teď, když jsme probrali diagnostiku ve vaší aplikaci a platformě, jak víme, že hardware funguje podle očekávání? Monitorování základní infrastruktury je klíčovou součástí porozumění stavu clusteru a využití prostředků. Měření výkonu systému závisí na mnoha faktorech, které můžou být subjektivní v závislosti na vašich úlohách. Tyto faktory se obvykle měří prostřednictvím čítačů výkonu. Tyto čítače výkonu můžou pocházet z různých zdrojů, včetně operačního systému, rozhraní .NET Framework nebo samotné platformy Service Fabric. Některé scénáře, ve kterých by byly užitečné, jsou

  • Využívám hardware efektivně? Chcete použít hardware na 90 % procesoru nebo 10 % procesoru. To je užitečné při škálování clusteru nebo optimalizaci procesů vaší aplikace.
  • Můžu aktivně předpovídat problémy s infrastrukturou? – Mnoha problémům předchází náhlé změny (poklesy) výkonu, takže můžete použít čítače výkonu, jako jsou vstupně-výstupní operace a využití procesoru, k predikci a proaktivní diagnostice problémů.

Seznam čítačů výkonu, které by se měly shromažďovat na úrovni infrastruktury, najdete v metrikách výkonu.

Service Fabric také poskytuje sadu čítačů výkonu pro programovací modely Reliable Services a Actors. Pokud používáte některý z těchto modelů, mohou tyto čítače výkonu získat informace, aby se zajistilo, že se aktéři správně roztáčí nahoru a dolů, nebo že se požadavky na spolehlivé služby zpracovávají dostatečně rychle. Další informace najdete v tématu Monitorování vzdálené komunikace spolehlivé služby a monitorování výkonu pro Reliable Actors.

Řešení Azure Monitoru, které je potřeba shromáždit, je protokoly Azure Monitoru stejně jako monitorování na úrovni platformy. Agenta Log Analytics byste měli použít ke shromažďování odpovídajících čítačů výkonu a jejich zobrazení v protokolech služby Azure Monitor.

Teď, když jsme prošli jednotlivými oblastmi monitorování a ukázkových scénářů, najdete souhrn monitorovacích nástrojů Azure a nastavení potřebné k monitorování všech výše uvedených oblastí.

Můžete také použít a upravit ukázkovou šablonu ARM, která se nachází tady , a automatizovat nasazení všech potřebných prostředků a agentů.

Další řešení protokolování

I když tato dvě řešení doporučujeme, protokoly Azure Monitoru a aplikační Přehledy mají integrovanou integraci s Service Fabric, mnoho událostí se zapisuje prostřednictvím poskytovatelů Trasování událostí pro Windows a je rozšiřitelné s jinými řešeními protokolování. Měli byste se také podívat na Elastic Stack (zejména pokud zvažujete spuštění clusteru v offline prostředí), Dynatrace nebo jakoukoli jinou platformu, kterou dáváte přednost. Máme zde k dispozici seznam integrovaných partnerů.

Mezi klíčové body pro libovolnou platformu, kterou zvolíte, by měly patřit možnosti uživatelského rozhraní, možnosti dotazování, dostupné vlastní vizualizace a řídicí panely a další nástroje, které poskytují k vylepšení prostředí monitorování.

Další kroky