Cvičení – definování stavu, metrik a prahových hodnot

Dokončeno

V tomto cvičení pokračujeme ve struktuře modelu stavu, kterou jste vytvořili dříve. Vaším úkolem je kvantifikovat stav jednotlivých komponent pro ukázkové aplikace.

Ve struktuře modelu stavu začněte vyhodnocením vrstev začínajících nahoře s toky uživatelů a pokračujte k nižším vrstvě.

Stav toku uživatele

Zatím jsme identifikovali dva toky uživatelů: vypsat položky katalogu a přidat komentář. Pokud chcete určit stav jednotlivých toků, položte otázky, jako jsou:

  • Kdy se tok uživatele považuje za v pořádku?
  • Může fungovat v degradovaném stavu?

Na základě požadavků na implementaci a funkčnost identifikujte komponenty aplikace, které se účastní toku uživatele. Komponenty jsou popsány v příkladech komponent architektury.

Tok uživatele Komponenty
Výpis položek katalogu Interní webová aplikace front-endu, rozhraní API katalogu
Přidat komentář Interní webová aplikace front-endu, rozhraní API katalogu, procesor na pozadí

Pokud některá z těchto komponent není v pořádku, očekává se, že tok uživatele nebude v pořádku.

Poznámka:

Některé aplikace můžou fungovat ve speciálním degradovaném režimu. Pokud například Contoso Shoes implementuje ukládání do mezipaměti místního prohlížeče, můžou zaměstnanci, kteří používají webovou aplikaci, vytvářet komentáře, ale komentáře se nedají odeslat a zobrazení zákazníka se neaktualizuje, dokud se rozhraní API katalogu neaktualizuje, což prohlížeč může průběžně kontrolovat.

Stav součásti aplikace

Určete metriky, které přispívají ke stavu komponenty. V tomto kroku potřebujete znát funkce komponenty. Ptejte se na něco podobného:

  • Jaká doba zpracování v rozhraní API je přijatelná pro zachování dobrého uživatelského prostředí?
  • Došlo k nějakým očekávaným chybám? Jaká je "normální" míra chyb?
  • Jaká je "normální" doba zpracování? Co znamená, že doba zpracování je vyšší než normální?
  • Co se stane s operacemi zápisu, pokud je služba Azure Cosmos DB nedostupná?

Tyto otázky by vás měly vést ke konkrétním a měřitelným prahům klíčových metrik. Můžete například zvážit tyto prahové hodnoty pro komponentu rozhraní API katalogu.

Metriky a prahová hodnota Stav
Doba < odezvy 150 ms Počet neúspěšných požadavků < 10 V pořádku
Doba < odezvy 300 ms Počet neúspěšných požadavků < 50 Snížený výkon
Doba > odezvy 300 ms Počet neúspěšných požadavků > 50 Není v pořádku

Hodnoty můžete získat z řešení pro monitorování aplikací, jako je Application Insights.

Stav služby Azure Resource Health

Stavy stavu služby Azure jsou založené na konkrétních prostředcích. Například Služba Azure Cosmos DB hlásí využití jednotek databázové transakce (DTU) a služba Aplikace Azure poskytuje informace o využití procesoru.

Informace o metrikách podle typu prostředku najdete v tématu Podporované metriky ve službě Azure Monitor.

Stavy a prahové hodnoty

Po vyhodnocení všech vrstev aplikace byste měli mít seznam součástí a jejich definic stavu, které vypadají podobně jako v tomto příkladu.

Komponenta Ukazatel/metrika V pořádku Snížený výkon Není v pořádku
Zobrazení seznamu položek uživatelského toku položek katalogu Základní stav Rozhraní API front-endu v pořádku a rozhraní API katalogu v pořádku
Přidání toku uživatele komentáře Základní stav Front-end v pořádku, rozhraní API katalogu v pořádku a procesor na pozadí
Front-endová webová aplikace # of non-20x HTTP responses/min 0 1-10 > 10
Rozhraní API pro katalog # of exceptions/sec < 10 10-50 > 10
Průměrná doba zpracování (ms) < 150 150-500 > 500
Procesor na pozadí Průměrná doba ve frontě (ms) < 200 200-1,000 > 1,000
Průměrná doba zpracování (ms) < 100 100-200 > 200
Počet selhání < 3 3-10 > 10
Azure Cosmos DB Využití DTU < 70% 70%-90% > 90%
Azure Key Vault Počet selhání < 3 3-10 > 10
Azure Event Hubs Zpracování délky backlogu (odchozí/příchozí zprávy) < 3 3-20 > 20
Azure Blob Storage Průměrná latence (ms) < 100 100-200 > 200

V tomto příkladu se tolerance chyb pro front-endovou webovou aplikaci a rozhraní API katalogu liší. Tento rozdíl souvisí s technickým porozuměním aplikace. Všechny chyby front-endu by se měly zpracovávat na straně klienta, takže je nulová prahová hodnota. Na vrstvě rozhraní API však může 10 výjimek počítat s chybami způsobenými uživatelem. Například chyby 404 – Nenalezena nemusí nutně znamenat problém se stavem.