Application Insights pro Azure cloud services

Application Insights můžou monitorovat aplikace cloudových služeb Azure kvůli dostupnosti, výkonu, selhání a využití díky kombinování dat ze Application Insights sad sdk s Azure Diagnosticsmi daty z vašich cloudových služeb. Na základě zpětné vazby ohledně výkonu a efektivity vaší aplikace při běžném používání můžete informovaně rozhodovat o směrování návrhu v každé fázi vývoje.

Řídicí panel přehled

Požadavky

Než začnete, budete potřebovat:

  • Předplatné Azure . přihlaste se pomocí účet Microsoft pro Windows, Xbox Live nebo jiné cloudové služby microsoftu.
  • Microsoft Azure tools 2,9 nebo novější.
  • Developer Analytics Tools 7,10 nebo novější.

Začínáme rychle

Nejrychlejším a nejjednodušším způsobem, jak monitorovat cloudovou službu s použitím Application Insights, je zvolit tuto možnost při publikování služby v Azure.

příklad stránky Nastavení diagnostiky

Tato možnost zobrazí aplikaci za běhu a poskytne vám veškerou telemetrii, kterou potřebujete k monitorování požadavků, výjimek a závislostí ve webové roli. Monitoruje také čítače výkonu z vašich rolí pracovního procesu. všechna trasování diagnostiky generovaná vaší aplikací se také odesílají do Application Insights.

Pokud potřebujete tuto možnost, jste hotovi.

Vaše další kroky zobrazují metriky z vaší aplikacea dotazují se na data s analýzou.

Chcete-li monitorovat výkon v prohlížeči, můžete také chtít nastavit testy dostupnosti a přidat kód na webové stránky.

Další části obsahují následující další možnosti:

  • Odesílat data z různých komponent a sestavovat konfigurace pro oddělení prostředků.
  • Přidání vlastní telemetrie ze své aplikace.

ukázková aplikace instrumentovaná pomocí Application Insights

v této ukázkové aplikacise Application Insights přidá do cloudové služby se dvěma rolemi pracovního procesu hostovanými v Azure.

V další části se dozvíte, jak přizpůsobit vlastní projekt cloudové služby stejným způsobem.

Plánování prostředků a skupin prostředků

telemetrie z vaší aplikace se ukládají, analyzují a zobrazují v prostředku Azure typu Application Insights.

Každý prostředek patří do skupiny prostředků. Skupiny prostředků se používají ke správě nákladů, k udělení přístupu členům týmu a k nasazení aktualizací v jedné koordinované transakci. můžete například napsat skript, který nasadí cloudovou službu Azure a její Application Insights monitorování prostředků v jedné operaci.

Prostředky pro komponenty

Doporučujeme Přidat vlastnost dimenze do každé položky telemetrie , která identifikuje její zdrojovou roli. V tomto přístupu grafy metrik, jako jsou například výjimky, obvykle zobrazují agregaci počtů z různých rolí, ale v případě potřeby můžete graf rozdělit podle identifikátoru role. Můžete také filtrovat hledání podle stejné dimenze. Tato alternativa usnadňuje zobrazení všeho ve stejnou chvíli, ale může také vést k nejasnostem mezi rolemi.

Telemetrická data prohlížeče jsou obvykle součástí stejného prostředku jako u příslušné serverové webové role.

do jedné skupiny prostředků umístěte Application Insights prostředky pro různé součásti. Tento přístup usnadňuje jejich správu dohromady.

Samostatný vývoj, testování a provoz

Pokud pro další funkci vyvíjíte vlastní událostí a předchozí verze běží v živém provozu, je vhodné odesílat telemetrická data pro vývoj do samostatného prostředku Application Insights. V opačném případě může být obtížné najít svou telemetrii testů mezi všemi přenosy z živého webu.

Chcete-li se této situaci vyhnout, vytvořte samostatné prostředky pro každou konfiguraci sestavení nebo "razítko" (vývoj, testování, produkce atd.) systému. Prostředky pro každou konfiguraci sestavení umístěte do samostatné skupiny prostředků.

chcete-li odeslat telemetrii do příslušných prostředků, můžete nastavit sadu Application Insights SDK tak, aby v závislosti na konfiguraci sestavení vystavila jiný klíč instrumentace.

Naučte se dynamicky nastavovat klíč instrumentace pro různé fáze.

Vytvoření prostředku Application Insights pro každou roli

pokud jste se rozhodli vytvořit samostatný prostředek pro každou roli a případně pro každou konfiguraci sestavení samostatnou sadu, je nejjednodušší je vytvořit na portálu Application Insights. Pokud vytvoříte velké množství prostředků, můžete proces automatizovat.

  1. v Azure Portalvyberte možnost nové > služby pro vývojáře > Application Insights.

    Application Insights podokno

  2. v rozevíracím seznamu typ aplikace vyberte ASP.NET webová aplikace.

Jednotlivé prostředky identifikuje klíč instrumentace. Tento klíč možná budete potřebovat později, pokud chcete ručně nakonfigurovat nebo ověřit konfiguraci sady SDK.

Nastavení diagnostiky Azure pro každou roli

Tuto možnost nastavte, pokud chcete aplikaci monitorovat pomocí Application Insights. U webových rolí Tato možnost poskytuje monitorování výkonu, výstrahy, diagnostiku a analýzu využití. U ostatních rolí můžete vyhledávat a monitorovat Azure Diagnostics, jako je například restart, čítače výkonu a volání System. Diagnostics. Trace.

  1. v Visual Studio Průzkumník řešení v části <YourCloudService> > role otevřete vlastnosti jednotlivých rolí.

  2. v okně konfigurace zaškrtněte políčko odeslat diagnostická data do Application Insights a pak vyberte prostředek Application Insights, který jste vytvořili dříve.

Pokud jste se rozhodli použít samostatný prostředek Application Insights pro každou konfiguraci sestavení, vyberte nejprve konfiguraci.

Konfigurace Application Insights

to má vliv na vložení klíčů instrumentace Application Insights do souborů s názvem ServiceConfiguration. * . cscfg. Zde je ukázkový kód.

pokud chcete změnit úroveň diagnostických informací, které se odesílají do Application Insights, můžete to provést tak, že přímo upravíte soubory . cscfg.

Instalace sady SDK v každém projektu

Pomocí této možnosti můžete přidat vlastní obchodní telemetrii k libovolné roli. Možnost poskytuje užší analýzu způsobu použití a provádění vaší aplikace.

V sadě Visual Studio nakonfigurujte sadu SDK Application Insights pro každý projekt cloudové aplikace.

  1. chcete-li nakonfigurovat webové role, klikněte pravým tlačítkem myši na projekt a vyberte možnost konfigurovat Application Insights nebo přidat > Application Insights telemetrie.

  2. Postup při konfiguraci rolí pracovního procesu:

    a. klikněte pravým tlačítkem na projekt a pak vyberte spravovat NuGet balíčky.

    b. Přidejte balíček Application Insights pro servery Windows.

  3. konfigurace sady SDK pro posílání dat do prostředku Application Insights:

    a. Ve vhodné spouštěcí funkci nastavte klíč instrumentace z nastavení konfigurace v souboru . cscfg :

        TelemetryConfiguration configuration = TelemetryConfiguration.CreateDefault();
        configuration.InstrumentationKey = RoleEnvironment.GetConfigurationSettingValue("APPINSIGHTS_INSTRUMENTATIONKEY");
        var telemetryClient = new TelemetryClient(configuration);
    

    b. Opakujte krok "Step a" pro každou roli ve vaší aplikaci. Podívejte se na příklady:

  4. Nastavte soubor ApplicationInsights.config , který se má zkopírovat vždy do výstupního adresáře.

    V souboru .config se zobrazí výzva, abyste do něj umístili klíč instrumentace. Pro cloudové aplikace je ale lepší je nastavit ze souboru . cscfg . Tento přístup zajišťuje správnou identifikaci role na portálu.

nastavte Monitorování stavu pro shromažďování úplných SQL dotazů (volitelné).

tento krok je nutný pouze v případě, že chcete zachytit úplné SQL dotazy v .NET Framework.

  1. V \*.csdef úloze přidat spouštěcí úlohu pro každou roli jako

    <Startup>
      <Task commandLine="AppInsightsAgent\InstallAgent.bat" executionContext="elevated" taskType="simple">
        <Environment>
          <Variable name="ApplicationInsightsAgent.DownloadLink" value="http://go.microsoft.com/fwlink/?LinkID=522371" />
          <Variable name="RoleEnvironment.IsEmulated">
            <RoleInstanceValue xpath="/RoleEnvironment/Deployment/@emulated" />
          </Variable>
        </Environment>
      </Task>
    </Startup>
    
  2. Stáhněte InstallAgent.bat a InstallAgent.ps1je vložte do AppInsightsAgent složky v každém projektu role. nezapomeňte je zkopírovat do výstupního adresáře prostřednictvím Visual Studio vlastností souboru nebo skriptů sestavení.

  3. Na všech rolích pracovního procesu přidejte proměnné prostředí:

      <Environment>
        <Variable name="COR_ENABLE_PROFILING" value="1" />
        <Variable name="COR_PROFILER" value="{324F817A-7420-4E6D-B3C1-143FBED6D855}" />
        <Variable name="MicrosoftInstrumentationEngine_Host" value="{CA487940-57D2-10BF-11B2-A3AD5A13CBC0}" />
      </Environment>
    

Spuštění a publikování aplikace

  1. Spusťte aplikaci a přihlaste se k Azure.

  2. otevřete Application Insights prostředky, které jste vytvořili.

    V Průzkumníku metrikse zobrazí jednotlivé datové body aagregovaná data se zobrazí.

  3. Přidejte další telemetrii (podívejte se na další části) a pak publikujte aplikaci, abyste získali živou diagnostiku a používání zpětné vazby.

Pokud nejsou k dispozici žádná data, proveďte následující:

  1. Pokud chcete zobrazit jednotlivé události, otevřete dlaždici Hledat.
  2. V aplikaci otevřete různé stránky, aby generují nějakou telemetrii.
  3. Počkejte několik sekund a pak klikněte na Aktualizovat.

Další informace naleznete v tématu Poradce při potížích.

Zobrazení Azure Diagnostics událostí

Informace o Azure Diagnostics najdete v části Přehledy v následujících umístěních:

  • Čítače výkonu se zobrazují jako vlastní metriky.
  • Protokoly událostí systému Windows se zobrazují jako trasování a vlastní události.
  • Protokoly aplikací, protokoly trasování událostí pro Windows a veškeré protokoly infrastruktury diagnostiky se zobrazují jako trasování.

Pokud chcete zobrazit čítače výkonu a počty událostí, otevřete Průzkumník metrik a přidejte následující graf:

Azure Diagnostics dat

Pokud chcete prohledávat různé protokoly trasování odesílané Azure Diagnostics, použijte dotaz Search nebo Analytics. Předpokládejme například, že máte neošetřenou výjimku, která způsobila selhání a recyklaci role. Tyto informace se zobrazují v kanálu Aplikace protokolu událostí systému Windows. Pomocí vyhledávání můžete zobrazit chybu protokolu Windows událostí a získat úplné trasování zásobníku pro výjimku. Pomůže vám to najít hlavní příčinu problému.

Azure Diagnostics hledání

Další telemetrická data

Další části popisují, jak získat další telemetrii z různých aspektů vaší aplikace.

Sledování požadavků z rolí pracovního procesu

Ve webových rolí modul požadavků automaticky shromažďuje data týkající se požadavků HTTP. Příklady, jak můžete přepsat výchozí chování kolekce, najdete v ukázce MVCWebRole.

Můžete zaznamenávat výkon volání rolí pracovních procesů, pokud je budete sledovat stejným způsobem jako požadavky HTTP. V Application Insights typ telemetrických dat Požadavek měří uvedenou jednotku práce serveru, kterou lze časovat a která může nezávisle být úspěšná nebo neúspěšná. I když sada SDK automaticky zachytá požadavky HTTP, můžete vložit vlastní kód pro sledování požadavků na role pracovního procesu.

Podívejte se na dvě ukázkové role pracovního procesu instrumentované k hlášení požadavků:

Výjimky

Informace o tom, jak shromažďovat neošetřené výjimky z různých typů webových aplikací, najdete v tématu Monitorování výjimek vaplikaci Přehledy .

Ukázková webová role obsahuje kontrolery rozhraní MVC5 a Web API 2. Nezpracované výjimky z nich jsou zachyceny pomocí následujících obslužných rutin:

U rolí pracovního procesu můžete sledovat výjimky dvěma způsoby:

  • Použijte TrackException(např.).
  • Pokud jste přidali balíček naslouchacího procesu Přehledy application NuGet, můžete k protokolování výjimek použít System.Diagnostics.Trace, jak je znázorněno v tomto příkladu.

Čítače výkonu

Ve výchozím nastavení se shromažďují následující čítače:

  • \Process(?? APP_WIN32_PROC?) % Čas procesoru
  • \Memory\Available Bytes
  • .NET CLR Exceptions(??APP_CLR_PROC??)# of Exceps Thrown / sec
  • \Process(??APP_WIN32_PROC??)\Private Bytes
  • \Process(??APP_WIN32_PROC??)\IO Data Bytes/sec
  • \Processor(_Total)% Processor Time

Pro webové role se shromažďují i tyto čítače:

  • \ASP.NET Applications(??APP_W3SVC_PROC??)\Requests/Sec
  • \ASP.NET Applications(??APP_W3SVC_PROC??)\Request Execution Time
  • \ASP.NET Applications(??APP_W3SVC_PROC??)\Requests In Application Queue

Další vlastní nebo jiné čítače výkonu Windows můžete zadat úpravou ApplicationInsights.config, jak je znázorněno v tomto příkladu.

Čítače výkonu

Korelovaná telemetrie pro role pracovního procesu

V případě bohatého diagnostického prostředí si můžete prohlédnout, co vedlo k selhání požadavku nebo požadavku na vysokou latenci. S webovými rolemi sada SDK automaticky nastaví korelaci mezi související telemetrií.

K dosažení tohoto zobrazení pro role pracovního procesu můžete použít vlastní inicializátor telemetrie a nastavit společný atribut Operation.Id kontextu pro všechny telemetrii. Díky tomu můžete na první pohled vidět, jestli příčinou problému s latencí nebo selháním byla závislost nebo váš kód.

Jak na to:

Telemetrická data klienta

Pokud chcete získat telemetrii založenou na prohlížeči, jako jsou počty zobrazení stránky, časy načítání stránek nebo výjimky skriptů, a pokud chcete do skriptů stránky zapsat vlastní telemetrii, podívejte se na stránku přidání sady JavaScript SDKna webové stránky.

Testy dostupnosti

Pokud chcete zajistit, aby vaše aplikace zůstala v živém a responzivním, nastavte webové testy.

Zobrazení všeho najednou

Pokud chcete získat celkový přehled o systému, můžete klíčové grafy monitorování zobrazit společně na jednom řídicím panelu. Můžete například připnout počty požadavků a selhání pro jednotlivé role.

Pokud váš systém používá jiné služby Azure, například Stream Analytics, zahrnte také jejich grafy monitorování.

Pokud máte mobilní klientskou aplikaci, použijte App Center. V Analytics můžete vytvářet dotazy pro zobrazení počtu událostí a můžete je připnout na řídicí panel.

Příklad

V příkladu se monitoruje služba s webovou rolí a dvěma rolemi pracovních procesů.

Výjimka "Metoda se nenašla" při spuštění v cloudových službách Azure

Vytvořili jste sestavení pro .NET 4.6? Role cloudových služeb Azure nepodporují .NET 4.6 automaticky. Před spuštěním aplikace nainstalujte na každou roli .NET 4.6.

Video

Další kroky