Sdílet prostřednictvím


Inteligentní zjišťování – Anomálie výkonu

Poznámka:

Prostředky Application Insights můžete migrovat do inteligentního zjišťování založeného na upozorněních (Preview). Migrace vytvoří pro různé moduly inteligentního zjišťování pravidla upozornění. Po vytvoření můžete tato pravidla spravovat a konfigurovat stejně jako jakákoli jiná pravidla upozornění Azure Monitoru. Pro tato pravidla můžete také nakonfigurovat skupiny akcí, což umožní více metod provádění akcí nebo spuštění oznámení o nových detekcích.

Další informace o procesu migrace najdete v tématu Migrace upozornění inteligentního zjišťování.

Application Insights automaticky analyzuje výkon vaší webové aplikace a může vás upozornit na potenciální problémy.

Tato funkce nevyžaduje žádné speciální nastavení, kromě konfigurace aplikace pro Application Insights pro váš podporovaný jazyk. Je aktivní, když vaše aplikace generuje dostatek telemetrie.

Kdy se mi zobrazí oznámení o inteligentním zjišťování?

Služba Application Insights zjistila, že výkon aplikace má snížený výkon jedním z těchto způsobů:

  • Snížení doby odezvy – Aplikace začala reagovat na požadavky pomaleji, než se používala. Změna mohla být rychlá, například proto, že došlo k regresi v posledním nasazení. Nebo mohlo dojít k postupnému úniku paměti.
  • Snížení doby trvání závislostí – Aplikace volá rozhraní REST API, databázi nebo jinou závislost. Závislost reaguje pomaleji, než se používá.
  • Model pomalého výkonu – Zdá se, že aplikace má problém s výkonem, který má vliv jenom na některé požadavky. Například stránky se načítají pomaleji na jeden typ prohlížeče než jiné; nebo žádosti se obsluhují pomaleji z jednoho konkrétního serveru. V současné době se naše algoritmy dívají na časy načítání stránek, doby odezvy požadavků a doby odezvy závislostí.

K vytvoření směrného plánu normálního výkonu vyžaduje inteligentní zjišťování alespoň osm dnů dostatečného objemu telemetrie. Po spuštění aplikace v daném období se významné anomálie projeví v oznámení.

Má moje aplikace určitě problém?

Ne, oznámení neznamená, že vaše aplikace má určitě problém. Je to je jednoduše návrh ohledně něčeho, co byste měli blíže prozkoumat.

Jak to můžu vyřešit?

Oznámení obsahují diagnostické informace. Tady je příklad:

Tady je příklad detekce snížení doby odezvy serveru.

  1. Třídění. V oznámení se dozvíte, kolik uživatelů nebo kolik operací se to týká. Tyto informace vám můžou pomoct přiřadit prioritu problému.

  2. Rozsah. Týká se problém veškerého provozu nebo jenom některých stránek? Omezuje se na konkrétní prohlížeče nebo umístění? Tyto informace lze získat z oznámení.

  3. Diagnostika: Diagnostické informace v oznámení často naznačují povahu problému. Pokud se například doba odezvy zpomalí, když je rychlost požadavků vysoká, může to znamenat, že váš server nebo závislosti překračují svou kapacitu.

    V opačném případě otevřete podokno Výkon v Application Insights, kde najdete data profileru .NET. Pokud dojde k vyvolání výjimek, můžete také vyzkoušet Snapshot Debugger.

Konfigurace e-mailových oznámení

Oznámení inteligentního zjišťování jsou ve výchozím nastavení povolená. Posílají se uživatelům, kteří mají přístup Čtenář monitorování a Přispěvatel monitorování k předplatnému, ve kterém se nachází prostředek Application Insights. Pokud chcete změnit výchozí oznámení, klikněte na Konfigurovat v e-mailovém oznámení nebo otevřete nastavení inteligentního zjišťování v Application Insights.

Nastavení inteligentního zjišťování

  • Výchozí oznámení můžete zakázat a nahradit ho zadaným seznamem e-mailů.

E-maily o anomáliích výkonu inteligentního zjišťování jsou omezené na jeden e-mail za den na prostředek Application Insights. E-mail se odešle jenom v případě, že existuje aspoň jeden nový problém, který byl zjištěn v daný den. Nebudete dostávat opakování žádné zprávy.

Nejčastější dotazy

  • Takže se zaměstnanci Microsoftu dívají na moje data?

    • Ne. Služba je zcela automatická. Oznámení dostanete jenom vy. Vaše data jsou soukromá.
  • Analyzujete všechna data shromážděná službou Application Insights?

    • V současné době analyzujeme dobu odezvy požadavku, dobu odezvy závislostí a dobu načítání stránky. Analýza dalších metrik se těšíme na náš backlog.
  • Pro jaké typy aplikací toto zjišťování funguje?

    • Tato snížení výkonu se zjistí v libovolné aplikaci, která generuje odpovídající telemetrii. Pokud jste do webové aplikace nainstalovali Application Insights, budou se požadavky a závislosti automaticky sledovat. Pokud jste ale v back-endových službách nebo jiných aplikacích vložili volání trackRequest () nebo TrackDependency, inteligentní zjišťování bude fungovat stejným způsobem.
  • Můžu vytvořit vlastní pravidla detekce anomálií nebo přizpůsobit existující pravidla?

  • Jak často se analýza provádí?

    • Analýzu spouštíme denně na telemetrii z předchozího dne (celý den v časovém pásmu UTC).
  • Nahrazuje tato upozornění metriky?

    • Ne. Nezavážeme se zjišťovat každé chování, které byste mohli považovat za neobvyklé.
  • Pokud na oznámení nic neudělám, zobrazí se mi připomenutí?

    • Ne, o každém problému se zobrazí jenom jednou. Pokud problém přetrvává, aktualizuje se v podokně kanálu inteligentního zjišťování.
  • Ztratil jsem e-mail. Kde na portálu najdu oznámení?

    • V přehledu Application Insights vaší aplikace klikněte na dlaždici Inteligentní zjišťování . Všechna oznámení najdete až 90 dní zpět.

Jak můžu zlepšit výkon?

Pomalé a neúspěšné odpovědi jsou jedním z největších frustrací pro uživatele webu, jak víte z vlastní zkušenosti. Proto je důležité tyto problémy vyřešit.

Posouzení

Za prvé, záleží na tom? Pokud je stránka vždy pomalá, ale jen 1 % uživatelů webu se na ni někdy musí podívat, možná máte důležitější věci, o kterých byste se měli zamyslet. Pokud ho ale otevře jenom 1 % uživatelů, ale pokaždé vyvolá výjimky, může to být užitečné prošetřit.

Jako obecný průvodce použijte prohlášení o dopadu, jako jsou ovlivnění uživatelé nebo procento provozu. Mějte na paměti, že nemusí říkat celý příběh. Shromážděte další důkazy, které potvrdíte.

Zvažte parametry problému. Pokud je to závislé na zeměpisné oblasti, nastavte testy dostupnosti, včetně této oblasti: V této oblasti můžou nastat problémy se sítí.

Diagnostika pomalého načítání stránek

V čem je problém? Reaguje server pomalu, je stránka příliš dlouhá nebo potřebuje prohlížeč příliš mnoho práce, aby ji zobrazil?

Otevřete podokno Metriky prohlížeče. Segmentované zobrazení doby načítání stránky prohlížeče ukazuje, kde čas probíhá.

  • Pokud je doba odeslání požadavku vysoká, buď server reaguje pomalu, nebo požadavek je příspěvek s velkým množstvím dat. Podívejte se na metriky výkonu a prozkoumejte dobu odezvy.
  • Nastavte sledování závislostí, abyste zjistili, jestli je pomalé kvůli externím službám nebo vaší databázi.
  • Pokud je příjem odpovědi převládající, vaše stránka a její závislé části – JavaScript, CSS, obrázky atd. (ale ne asynchronně načtená data) jsou dlouhé. Nastavte test dostupnosti a nezapomeňte nastavit možnost načíst závislé části. Když získáte nějaké výsledky, otevřete podrobnosti výsledku a rozbalte ho, abyste viděli časy načítání různých souborů.
  • Doba zpracování klienta naznačuje, že skripty běží pomalu. Pokud důvod není jasný, zvažte přidání nějakého kódu časování a odeslání časů ve voláních trackMetric.

Vylepšení pomalých stránek

Existuje web plný rad, jak zlepšit odezvy serveru a časy načítání stránek, takže se to tady nebudeme pokoušet opakovat. Tady je několik tipů, o kterých už asi víte, jen abyste si mysleli:

  • Pomalé načítání kvůli velkým souborům: Načtěte skripty a další části asynchronně. Použijte sdružování skriptů. Rozdělte hlavní stránku na widgety, které načítají data samostatně. Neposílejte prostý starý kód HTML pro dlouhé tabulky: použijte skript k vyžádání dat jako JSON nebo jiného kompaktního formátu a pak vyplňte tabulku. Existují skvělé architektury, které vám pomůžou s těmito úlohami. (Samozřejmě také obsahují velké skripty.)
  • Pomalé závislosti serveru: Zvažte zeměpisné umístění komponent. Pokud například používáte Azure, ujistěte se, že webový server a databáze jsou ve stejné oblasti. Načítají dotazy více informací, než potřebují? Pomohlo by ukládání do mezipaměti nebo dávkování?
  • Problémy s kapacitou: Podívejte se na metriky serveru doby odezvy a počty požadavků. Pokud je doba odezvy nepřiměřeně vysoká s maximálními počty požadavků, je pravděpodobné, že jsou vaše servery roztaženy.

Snížení doby odezvy serveru

Oznámení o snížení doby odezvy vám řekne:

  • Doba odezvy v porovnání s normální dobou odezvy pro tuto operaci.
  • Kolik uživatelů se to týká.
  • Průměrná doba odezvy a 90. percentilová doba odezvy pro tuto operaci v den detekce a sedm dní před.
  • Počet požadavků na tuto operaci v den detekce a sedm dní před.
  • Korelace mezi snížením výkonu v této operaci a snížením souvisejících závislostí.
  • Odkazy, které vám pomůžou s diagnostikou problému
    • Trasování .NET Profileru vám může pomoct zobrazit, kde se tráví čas operace. Odkaz je k dispozici, pokud pro tuto operaci existují příklady trasování .NET Profileru.
    • Sestavy výkonu v Průzkumníku metrik, kde můžete pro tuto operaci rozdělit a rozdělit časový rozsah a filtry.
    • Vyhledejte toto volání, abyste zobrazili konkrétní vlastnosti volání.
    • Sestavy selhání – Pokud je počet > 1, znamená to, že v této operaci došlo k selháním, které mohly přispět ke snížení výkonu.

Snížení doby trvání závislosti

Moderní aplikace často využívají přístup k návrhu mikroslužeb, který v mnoha případech závisí na externích službách. Pokud například vaše aplikace spoléhá na nějakou datovou platformu nebo na poskytovatele důležitých služeb, jako jsou služby Azure AI.

Příklad oznámení o snížení závislosti:

Tady je příklad detekce snížení doby trvání závislostí.

Všimněte si, že vám to říká:

  • Doba trvání v porovnání s normální dobou odezvy pro tuto operaci
  • Kolik uživatelů se týká
  • Průměrná doba trvání a 90. percentilu pro tuto závislost na dni detekce a sedm dní před
  • Počet volání závislostí v den detekce a sedm dní před
  • Odkazy, které vám pomůžou s diagnostikou problému
    • Sestavy výkonu v Průzkumníku metrik pro tuto závislost
    • Vyhledejte tato volání závislostí pro zobrazení vlastností volání.
    • Sestavy selhání – Pokud je počet > 1, znamená to, že během období detekce došlo k neúspěšným voláním závislostí, která mohla přispět ke snížení doby trvání.
    • Open Analytics s dotazy, které vypočítají dobu trvání a počet závislostí

Inteligentní zjišťování vzorců pomalého provádění

Application Insights najde problémy s výkonem, které můžou mít vliv jenom na některé části uživatelů nebo jenom v některých případech. Pokud se například stránka načítá pomaleji na konkrétní typ prohlížeče v porovnání s ostatními, nebo pokud konkrétní server zpracovává požadavky pomaleji než jiné servery. Může také zjistit problémy spojené s kombinacemi vlastností, jako je pomalé načítání stránek v jedné geografické oblasti pro klienty používající konkrétní operační systém.

Anomálie, jako jsou tyto, se obtížně detekují kontrolou dat, ale jsou častější, než byste si mohli myslet. Často se objeví jenom v případech, kdy si vaši zákazníci stěžují. Do té doby je to příliš pozdě: ovlivnění uživatelé už přecházejí na konkurenty!

V současné době se naše algoritmy dívají na časy načítání stránek, doby odezvy požadavků na server a doby odezvy závislostí.

Nemusíte nastavovat žádné prahové hodnoty ani konfigurovat pravidla. Algoritmy strojového učení a dolování dat se používají k detekci neobvyklých vzorů.

V e-mailovém upozornění kliknutím na odkaz otevřete diagnostickou sestavu v Azure.

  • Když se zobrazí čas zjištění problému.
  • Co popisuje problém, který byl zjištěn, a th charakteristiky sady událostí, které jsme zjistili, které zobrazily chování problému.
  • Tabulka porovnává špatně výkonnou sadu s průměrným chováním všech ostatních událostí.

Kliknutím na odkazy otevřete Průzkumníka metrik a zobrazte sestavy filtrované podle času a vlastností sady pomalých výkonů.

Upravte časový rozsah a filtry a prozkoumejte telemetrii.

Další kroky

Tyto diagnostické nástroje vám pomůžou zkontrolovat telemetrii z vaší aplikace:

Inteligentní zjišťování je automatické. Možná byste ale chtěli nastavit další upozornění?