Windows Azure Storage Analytics

Windows Azure Storage je jednou ze služeb cloud platformy Windows Azure. Umožňuje ukládat nerelační data ve třech různých formách – jako nestrukturovaná data (blob), jako tabulky (table) a jako zprávy ve frontách (queue). Detailnější technické přehled lze získat v naší publikaci.

K exitující funkcionalitě nyní přibyla možnost sledovat a analyzovat provoz, který je nad uvedenými službami generován. Jde o velmi dobrý nástroj, který umožní dát odpověď na celou řadu otázek a poskytuje prostředky, které umožní hledat chyby v našich aplikacích, optimalizovat jejich algoritmy a v neposlední řadě i lépe navrhnout aplikace z pohledu spotřeby, tedy optimalizovat cenu.

Služba Windows Azure Storage Analytics poskytuje dva výstupy logy a metriky. Logy zaznamenávají informace o jednotlivých dotazech, které jsou prováděny proti zvolenému úložišti dat. Metriky vedle toho dávají souhrnné přehledy o použití jednotlivých úložišť. Logy a metriky lze kdykoli zapnout nebo vypnout v závislosti na účelu, ke kterému je používáme. Logy i metriky samotné se ukládají v Azure Storage, jak uvidíme dále. V každém případě při intenzivním používání Azure Storage mohou být zejména logy velice objemné. I při dlouhodobém používání nemusíme mít strach, že by nekontrolovaně rostly (a museli jsme tedy platit za jejich uložení). K dispozici máme tzv. retenční politiky, které automaticky výstupy analytik podle specifikovaných pravidel čistí.

Podívejme se nyní trochu podrobněji na to, co lze z dat vyčíst a v jakých situacích je použít.

Logy

Proces logování ukládá do formy block blobu informace o operacích, které jsou prováděny na Azure Storage. Aby nebyly logovány všechny operace, je možné při konfiguraci logovací služby specifikovat např. typy logovaných operací. Samotný záznam o jedné operaci nese celou řadu informací, mezi kterými lze např. najít Typ operace, HTTP status, End-to-End latenci, Serverovou latenci, klientskou IP adresu, velikost dotazu a odpovědi a další. Celkově 30 položek.

Logy lze zpravovat v libovolné aplikaci – v cloudu nebo mimo něj. Stačí přistoupit přes REST rozhraní ke kontejneru se speciálním názvem $logs, kde jsou logy ukládány. Dole na MSDN stránce jsou ukázky zdrojových kódů, dotazů a odpovědí. Samotné vyhodnocení logů je nutné provést ve vlastní režii, třeba v Excelu. Zjistit z nich lze však odpovědi na následující otázky:

  • Z jaké IP adresy se realizuje nejvíce dotazů?
  • Kolik operací se provedlo a jakých?
  • Která část úložiště je nejintenzivněji používána a je adeptem pro optimalizaci?
  • Kolik času zabere zpracování dotazu v cloudu?
  • Jak dlouho trvá odeslání dotazu z klientské aplikace, zpracování na serveru a přijetí odpovědi?
  • Jaké jsou nejrychlejší a nejpomalejší dotazy?
  • Kdo smazal data? Smile

Mohl bych ještě dlouho pokračovat. Úplnou představu získáte po prostudování všech polí, které log nese.

Metriky

Metriky na rozdíl od logů nejsou tak rozsáhlé a vytvářejí statistické informace o jednotlivých typech úložišť. V principu máme možnosti získat dva typy statistik – informace o dotazech (Request information) a informace o kapacitě (Capacity information). Informace o dotazech jsou agregovány po jednotlivých hodinách, zatím co informace o kapacitě jsou agregovány na úrovni dní.

Informace o dotazech obsahují položky, jako jsou (pro všechny tři typy úložišť):

  • Celkový počet dotazů
  • Objem dat přenesených dovnitř a ven
  • Průměrnou E2E a serverovou latenci
  • Počet selhaných dotazů

Kapacitní informace, které v tuto chvíli jsou k dispozici pouze pro blob úložiště, dávají přehled o následujících metrikách – celková obsazená kapacita, počet kontejnerů a počet uložených objektů v jednotlivých kontejnerech.

Detailní informace o jednotlivých metrikách, ukázky kódu a příklady získaných dat lze najít v MSDN dokumentaci.

Metriky nám mohou např. poskytnou odpovědi na následující otázky:

  • Kolik dat se přeneslo v kterém dni?
  • Jak se liší provoz v jednotlivých dnech?
  • Neroste nám průměrná latence jednotlivých dotazů?
  • Neroste počet selhaných dotazů (např. z důvodu dlouhých transakcí, velkého objemu dat, …?
  • Jak roste uložený objem dat na denní bázi?

Co lze očekávat dále?

První verze Windows Azure Storage Analytics poskytuje celou řadu velmi důležitých informací. V nejbližší době lze očekávat, že budou zejména doplněny kapacitní statistiky pro všechny typy datových úložišť. Také očekávám, že se velice rychle objeví celá řada nástrojů, komerčních nebo volně šiřitelných, které budou schopny automatizovat analýzu logů a vizualizovat reporty. Současná „surová forma dat“ je jen prvním krokem k lepšímu pochopení toho, co se v Azure Storage děje.

V delším horizontu si dovedu přestavit navázání nějakého alert enginu, který by dovedl upozorňovat na překročení specifikovaných charakteristik tak, aby mohly být provedeny odpovídající zásahy. V Microsoft nástrojích typicky prostřednictvím SCOMu, pro který lze napsat odpovídající management pack. Jeden dnes již existuje, ale neobsahuje vazbu na tuto analytiku.