Miroslav Holec
Premium

Velký přehled novinek v diagnostických službách Azure

Miroslav Holec   17. října 2017

Tento článek byl napsán v roce 2017. Vývojářské technologie se neustále inovují a článek již nemusí popisovat aktuální stav technologie, ideální řešení a můj současný pohled na dané téma.

V prostředí Microsoft Azure se za posledních několik měsíců objevilo mnoho zajímavých novinek z oblasti diagnostiky a monitoringu aplikací, které stojí za to zmínit. Azure Alerts podporují řadu nových metrik, Azure Monitor nyní obsahuje zcela nové možnosti seskupování a filtrování zvolených metrik a Application Insights nabízí vedle mnoha nových funkcí i nové schopnosti Smart Detection vycházející ze strojového učení.

O logování ve web aplikacích v .NET CZ Podcast

Azure Alerts

Azure Alerts není vyloženě služba v pravém slova smyslu. Jedná se spíše o funkci, která je dostupná ve většině Azure služeb zastřešených pod ARMem (Azure Resource Manager). Funkce Alerts umí v závislosti na druhu služby pracovat s typickými metrikami dané služby a nad nimi následně poskytuje možnost nastavit upozornění v případě, kdy dojde k přesažení prahové hodnoty. Jako zodpovědný vývojář bych měl mít nastaveno sledování klíčových metrik, například.:

  • dostupné množství operační paměti v rámci App Service plánu
  • stav vytížení CPU v rámci App Service plánu nebo Virtuálního stroje
  • počet připojených klientů ve službě Azure Redis

Pokud například používám Basic plán služby Azure Redis o kterém vím, že mi umožní připojení maximálně 256 klientů, pak si nastavím threshold na 200. Na základě upozornění, které jednoho dne dostanu jsem pak schopen provést nezbytné nastavení služby ještě před tím, než by začalo docházet k potížím při odpojování klientů.

Azure Monitor

Protože je procházení metrik a alertů službu po službě velmi zdlouhavé, existuje Azure Monitor. Ten je centrálním místem, kde je možné v rámci určitých záložek (Alerts, Metrics..) filtrovat pouze ty upozornění a metriky, které mě skutečně zajímají. Od konce září je ve verzi Preview dostupný nový Metrics Explorer (nově nazvaný jen Metrics), který nabízí interaktivnější vybírání resourců a nově také export do excelu.

Na obrázku níže je vidět, jak pomocí Metrics mohu nanést na jeden graf dvě související metriky přímo ze služby Application Insights (Exceptions + Dependency Failures).

Porovnání metrik

Přímo nad daty lze aplikovat i filtry a z grafu tak odečítat skutečně relevantní informace. Hotové grafy lze nakonec připnout na úvodní obrazovku Azure Dashboard.

Připnutí grafu na Dashboard

Application Insights

Služba Application Insights, která se před dvěma lety přesunula z Visual Studia Online (dnes VSTS) do prostředí Azure je inovována prakticky neustále. Vzhledem k tomu, že ve svém základu je zcela zdarma a mohou ji používat i vývojáři jiných platforem, lze ji doporučit jako výchozí službu pro kompletní diagnostiku, monitoring výkonnosti a dostupnosti webových aplikací. Novinek v této službě je více, proto si je roztřiďme dle zaměření do skupin.

Smart Detection

Funkce Smart Detection byla v posledních týdnech rozšířena o schopnost detekce celé řady anomálií. Patří mezi ně například schopnost odhalit memory leaks, potenciální bezpečnostní problémy (například náchylnost k SQL injection), enormní nárůst výjimek v aplikaci a další. Díky Smart Detection se vývojář dozví o problémech v aplikaci po nasazení nové verze bez toho, aniž by musel vynaložit jakékoliv další úsilí. V případě detekce problému je k dispozici podrobnější analýza.

Analýza Smart Detection

Metrics

Sekce Metrics je inovována a již jsem se o ní částečně zmínil při popisu novinek v Azure Monitoru. Metrics nahrazuje ve službě Application Insights nepříliš oblíbený (těžkopádný) Metrics Explorer a poskytuje možnost tvorby vlastních grafů z vlastnoručně vybraných metrik. Novinkou je i to, že Metrics je v podstatě modul, který pracuje se všemi metrikami v Azure a tudíž lze na graf vynášet nejen metriky z Application Insight ale i dalších souvisejících služeb.

Search

Funkce Diagnostic Search doznala v posledních měsících jedné zásadní novinky, kterou jsou agregace. Namísto zobrazení velkého množství zdánlivě nesouvisejících telemetrií po řádcích jsou nově seskupeny telemetrie do skupin dle jejich signatury. Lze tak snadno analyzovat celou skupinu nově vznikajících totožných chyb, požadavků nebo závislostí.

Ukázka seskupování telemetrií v diagnostic search

Failures

Záložka Failures prošla zcela kompletním a zdařilým redesignem. Nově nabízí pohled na operace, závislosti a samotné výjimky. Failures je přehledné centrum chyb, odkud se má vývojář možnost na první pohled rozhodnout, které chyby jsou nejzávažnější a měl by je přednostně řešit. Vedle agregace za vybraný čas je možné konkrétní chyby analyzovat až na úroveň jednotlivých výskytů a po call stack.

Nově redesignovaná záložka Failures

Pokud potřebuje vývojář hlubší analýzu výjimky, pak je možné nechat si vytvořit pomocí aktivního doplňku Profiler tzv. Debug Snapshot a další analýzu provádět přímo ve Visual Studiu.

Performance

Paralelně s Failures je vyvíjen i přehled Performance. Jedná se o monitoring výkonnosti aplikace, který umožňuje klasické zafiltrování na vybrané časové období a následnou analýzu operací (defacto HTTP endpointů) nebo závislostí. Mezi sledované typy závislostí patří tradičně SQL dotazy, volání do Azure služeb nebo HTTP requesty na webová aplikační rozhraní. I v případě Performance lze analyzovat vybraný vzorek až na úroveň HTTP requestu včetně souvisejících telemetrií (závilosti, traces, aj.).

Ukázka nové sekce Performance

Usage

Dlouhou dobu platilo, že analýza uživatelů a jejich chování měla spíše jen pomáhat pochopit jiné metriky. Například při vzniku JavaScriptových chyb se obvykle hodilo vědět, jakého prohlížeče se daná chyba týká. Microsoft však sekci Usage posunul za poslední půlrok o velký kus dopředu a vývojáři si nyní mohou vychutnávat velmi zajímavé statistiky související s uživatelským chováním. Sekce Usage je nyní rozdělena na několik dalších tématických částí:

  • Users
  • Sessions
  • Events
  • Funnels
  • Retention
  • Workbooks
  • Cohorts
  • User Flows

Přehled o uživatelích

Vedle sekce Users, která poskytuje pěkné přehledy o provozu dle nastavených filtrů se může hodit i sekce Funnels, kde lze sledovat toky uživatelů na základě definovaných cest nebo sekce Retention odkud lze získat představu u vracejících se uživatelích.

Nová záložka Retention

Závěry a doporučení

Novinky v oblasti diagnostiky poskytují velmi jednoduchou cestu k získání kontroly nad aplikací. Instalace a nastavení je otázkou několika minut a zodpovědné vývojářské týmy tak mají jedinečnou příležitost "odblešit" své aplikace od řady chyb, které otravují dnes a denně běžným uživatelům život.