Miroslav Holec

Software & Cloud Architect

miroslavholec.cz / blog / application-insights-meni-cenove-plany-jak-usetrit-a-pritom-neprijt-o-diagnosticka-data

Application Insights mění cenové plány. Jak ušetřit a přitom nepřijít o diagnostická data?

Miroslav Holec

Miroslav Holec

Publikován 1. února 2017

Služba Application Insights, která slouží pro diagnostiku a monitoring webových aplikací byla poslední měsíce intenzivně vylepšována. Koncem roku byla vydána zpráva o novém pricing modelu, který přijde v platnost v polovině února. Co to pro vývojáře znamená sepisuji v tomto článku.

Cenový model Application Insights

Dosavadní cenový model pracoval s jednotkou "data point", který reprezentoval nejčastěji telemetrii přenesenou do Microsoft Azure. Protože se však datová velikost telemetrií výrazně lišila v závilosti na svém druhu, nový cenový plán již pracuje výhradně s objemem přenesených dat. Platby za službu jsou počítány na hodinové bázi a pro jeden měsíc se předpokládá 744 hodin.

Application Insights pricing

Plán Basic

Dobrá zpráva je, že Application Insights lze stále používat zdarma. V rámci plánu Basic je však možné přenést maximálně 32 MB za den (čili něco kolem 1 GB za měsíc). Po překročení tohoto limitu je účtována částka 1,94 EUR / GB. Upozorňuji tedy, že plán Basic NENÍ nutně vždy zdarma.

Do 1. března 2017 je v rámci programu Basic možné používat kontinuální export dat a konektor do služby OMS zcela zdarma.

Plán Enterprise

V rámci programu Enterprise je nutné platit paušální poplatek 12,65 EUR / měsíc a za jeden node. V rámci tohoto poplatku má vývojář k dispozici limit 200 MB přenesených dat za den. Po překročení limitu se účtuje stejně jako v případě plánu Basic částka 1,94 EUR / GB.

Plán Enterprise navíc nabízí funkci Multi-step web tests, která v rámci plánu Basic není vůbec dostupná. Cena za jeden multi-step web test je pevně nastavená na 8,43 EUR. Při této ceně se již multikrokové testy hodí skutečně jen pro definici komplexních scénářů nebo náhradu většího balíku standardních ping testů za jeden multi-step web test.

Zamezení placeného režimu

Pokud si nepřejete, aby Application Insights automaticky po překročení limitů začala účtovat dodatečná data, lze povolit funkci "Collect only session data" (výchozí nastavení). V opačném případě je nutné povolit "Pay for more automatically".

Application Insights pricing limits

Jak se vyhnout zbytečným platbám

Přestože restrikce působí na první pohled tvrdě, ve skutečnosti lze službu nastavit tak, aby nedocházelo k účtování zbytečných dat. Poslouží k tomu funkce filrování a preprocessing telemetrií, které jsou v Application Insights dostupné již několik měsíců.

Efektivní metoda filtrování telemetrií je sampling, který hledá data stejného charakteru a duplicitní data na základě nastavení zcela zahazuje. Pro vývojáře to však neznamená žádné informační zkreslení, protože Azure portál stále poskytuje nezkreslený pohled na agregovaná data. Sampling lze aplikovat na straně Azure, v aplikačním kódu na straně serveru ale i v případě Javascriptu.

Ingestion sampling (na straně Azure)

Funkce Ingestion Sampling je dostupná v sekci Quota + pricing na vybrané službě Application Insights v Azure. Aktivací funkce se defacto říká, kolik procent dat přijatých z SDK má být uchováno. Data se sice z aplikace odešlou proti Application Insights API, to ale na základě nastavení Ingestion Samplingu část dat nezpracuje. Velkou výhodou je možnost provést okamžitou změnu bez deploye aplikace.

Application Insights Sampling

Adaptive / fixed-rate sampling (na straně aplikace)

Další typy samplingu umožňují přesněji specifikovat, jaké telemetrie se mají ze sběru ignorovat. Tato nastavení se provádějí přímo ve webové aplikaci buď pomocí ApplicationInsights.Config nebo přímo na úrovni kódu. Odkázat mohu na výživnou dokumentaci.

Preprocessing

Zatímco v případě samplingu se vzdáváme určitého množství duplicitních dat (nebo z větší části duplicitních), v případě preprocessingu vědomě vybíráme telemetrie, které nechceme do Azure posílat. Praktickým příkladem mohou být:

  • závislosti, které se odbavily do 1 ms a proběhly úspěšně
  • chyby typu 404 na stránky, které víme, že neexistují
  • chyby typu 401 v případě pokusu o vstup do sekce nepřihlášeným uživatelem
  • výjimky, o kterých víme, že vznikají a nechceme je dále vyšetřovat

Preprocessing umožňuje "prozkoumat" vlastnosti každé telemetrie a rozhodnout se, zda ji má smysl do Azure portálu posílat.

Závěr

S příchodem nových pricing plánů Microsoft z mého pohledu správně nutí vývojáře více se zamyslet nad tím, jaká data hodlá ve službě Application Insights analyzovat. Díky tomu lze očekávat, že služba bude pracovat s menším objemem relativnějších dat, což se vývojářům vrátí v podobě rychlejší práce s Azure portálem. Nejznatelnější zrychlení vývojář pocítí při práci s daty za větší časový úsek.

Komentáře