Live Metrics Stream: Monitorování & diagnostika s latencí 1 sekundy

Živé webové aplikace v produkčním prostředí můžete monitorovat pomocí Live Metrics Stream (označované také jako QuickPulse) z webu Application Přehledy. Vyberte a filtrujte metriky a čítače výkonu a sledujte je v reálném čase, aniž byste rušily vaši službu. Prohlédněte si trasování zásobníku z ukázkových neúspěšných požadavků a výjimek. Spolu s profilerem a ladicím programem snímků Live Metrics Stream nástroj pro diagnostiku, který je účinný a neinvazivní pro živý web.

S Live Metrics Stream můžete:

  • Ověřte opravu během vydání, a to sledováním počtu výkonů a selhání.
  • Sledujte účinek zátěží testů a diagnostikujte problémy živě.
  • Zaměřte se na konkrétní testovací relace nebo odfiltrujte známé problémy výběrem a filtrováním metrik, které chcete sledovat.
  • Jak k tomu dojde, získejte trasování výjimek.
  • Experimentujte s filtry a najděte nejdůležitější KPI.
  • Monitorujte všechny Windows čítač výkonu živě.
  • Snadno identifikujte server, který má problémy, a vyfiltrujte všechny klíčové ukazatele výkonu nebo živý kanál jenom na tento server.

Karta Live Metrics (Živé metriky)

Live Metrics se v současné době podporuje pro ASP.NET, ASP.NET Core, Azure Functions, Javu a Node.js aplikace.

Začínáme

  1. Pokud chcete povolit Live Metrics, postupujte podle pokynů pro konkrétní jazyk.

  2. V Azure Portalotevřete prostředek Application Přehledy pro vaši aplikaci a pak otevřete Live Stream.

  3. Zabezpečte řídicí kanál, pokud ve svých filtrech můžete používat citlivá data, jako jsou jména zákazníků.

Povolení LiveMetrics pomocí kódu pro libovolnou aplikaci .NET

I když je LiveMetrics při onboardingu pomocí doporučených pokynů pro aplikace .NET ve výchozím nastavení povolené, následující postup ukazuje ruční nastavení Live Metrics.

  1. Instalace balíčku NuGet Microsoft.ApplicationInsights.PerfCounterCollector
  2. Následující kód ukázkové konzolové aplikace ukazuje nastavení Live Metrics.
using Microsoft.ApplicationInsights;
using Microsoft.ApplicationInsights.Extensibility;
using Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse;
using System;
using System.Threading.Tasks;

namespace LiveMetricsDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            // Create a TelemetryConfiguration instance.
            TelemetryConfiguration config = TelemetryConfiguration.CreateDefault();
            config.InstrumentationKey = "INSTRUMENTATION-KEY-HERE";
            QuickPulseTelemetryProcessor quickPulseProcessor = null;
            config.DefaultTelemetrySink.TelemetryProcessorChainBuilder
                .Use((next) =>
                {
                    quickPulseProcessor = new QuickPulseTelemetryProcessor(next);
                    return quickPulseProcessor;
                })
                .Build();

            var quickPulseModule = new QuickPulseTelemetryModule();

            // Secure the control channel.
            // This is optional, but recommended.
            quickPulseModule.AuthenticationApiKey = "YOUR-API-KEY-HERE";
            quickPulseModule.Initialize(config);
            quickPulseModule.RegisterTelemetryProcessor(quickPulseProcessor);

            // Create a TelemetryClient instance. It is important
            // to use the same TelemetryConfiguration here as the one
            // used to setup Live Metrics.
            TelemetryClient client = new TelemetryClient(config);

            // This sample runs indefinitely. Replace with actual application logic.
            while (true)
            {
                // Send dependency and request telemetry.
                // These will be shown in Live Metrics stream.
                // CPU/Memory Performance counter is also shown
                // automatically without any additional steps.
                client.TrackDependency("My dependency", "target", "http://sample",
                    DateTimeOffset.Now, TimeSpan.FromMilliseconds(300), true);
                client.TrackRequest("My Request", DateTimeOffset.Now,
                    TimeSpan.FromMilliseconds(230), "200", true);
                Task.Delay(1000).Wait();
            }
        }
    }
}

I když je výše uvedená ukázka pro konzolovou aplikaci, stejný kód lze použít v jakékoli aplikaci .NET. Pokud jsou povolené jakékoli jiné moduly telemetrie, které automaticky shromažďují telemetrii, je důležité zajistit, aby se stejná konfigurace, která se používá pro inicializaci těchto modulů, používala i pro modul Live Metrics.

Jak se Live Metrics Stream liší od Průzkumník metrik a Analytics?

Live Stream Průzkumník metrik a analýzy
Latence Data zobrazená během jedné sekundy Agregované v minutách
Bez uchovávání Data se zachová, když jsou v grafu, a pak se zahodí. Data uchována po dobu 90 dnů
Na vyžádání Data se streamuje jenom v otevřeném podokně Live Metrics. Data se odesílat pokaždé, když je nainstalovaná a povolená sada SDK.
Free Za data o Live Stream se neúčtovat žádné poplatky V závislosti na cenách
Vzorkování Přenášejí se všechny vybrané metriky a čítače. Selhání a trasování zásobníku se vzorkuly. Události je možné vzorkovat
Řídicí kanál Řídicí signály filtru se odesílaly sadě SDK. Doporučujeme tento kanál zabezpečit. Komunikace je jedním ze způsobů– s portálem.

Výběr a filtrování metrik

(K dispozici ASP.NET, ASP.NET Core a Azure Functions (v2).)

Vlastní klíčový ukazatel výkonu můžete monitorovat živě použitím libovolných filtrů na libovolných Přehledy telemetrii z portálu. Klikněte na ovládací prvek filtru, který se zobrazí, když na některý z grafů kliknete myší. Následující graf vykresluje vlastní klíčový ukazatel výkonu počtu požadavků s filtry pro atributy adresy URL a doby trvání. Ověřte filtry pomocí části Stream Preview, která zobrazuje živý informační kanál telemetrie, který odpovídá kritériím, která jste v libovolném okamžiku zadali.

Filtrování frekvence požadavků

Můžete monitorovat jinou hodnotu než Count. Možnosti závisí na typu datového proudu, což může být jakákoli telemetrie služby Application Přehledy: požadavky, závislosti, výjimky, trasování, události nebo metriky. Může to být vaše vlastní měření:

Tvůrce dotazů na frekvenci požadavků s vlastní metrikou

Kromě telemetrie Application Přehledy můžete monitorovat také jakýkoli čítač výkonu Windows tak, že ho vyberete z možností datového proudu a poskytnete název čítače výkonu.

Živé metriky se agregují ve dvou bodech: místně na každém serveru a pak na všech serverech. Výchozí hodnotu můžete změnit buď výběrem dalších možností v příslušných rozevíracích seznamech.

Ukázková telemetrie: Vlastní živé diagnostické události

Ve výchozím nastavení živý kanál událostí zobrazuje ukázky neúspěšných požadavků a volání závislostí, výjimek, událostí a trasování. Kliknutím na ikonu filtru zobrazíte použitá kritéria v libovolném okamžiku.

Tlačítko Filtrovat

Stejně jako u metrik můžete zadat libovolná kritéria pro kterýkoli z typů telemetrie Přehledy aplikací. V tomto příkladu vybíráme konkrétní selhání požadavků a události.

Tvůrce dotazů

Poznámka

V současné době pro kritéria založená na zprávě výjimky použijte zprávu o vnější výjimce. Pokud chcete v předchozím příkladu vyfiltrovat neškodnou výjimku s vnitřní zprávou o výjimce (za oddělovačem "<--") "Klient se odpojil". Použijte kritéria pro zprávu, která neobsahuje chybu při čtení obsahu požadavku.

Kliknutím na položku zobrazíte podrobnosti o položce v živém kanálu. Informační kanál můžete pozastavit kliknutím na Pozastavit nebo jednoduchým posouváním dolů nebo kliknutím na položku. Živý informační kanál se obnoví po návratu do horní části nebo kliknutím na čítač položek shromážděných během pozastavení.

Snímek obrazovky s oknem Ukázková telemetrie s vybranou výjimkou a podrobnostmi o výjimce zobrazenými v dolní části okna

Filtrování podle instance serveru

Pokud chcete monitorovat konkrétní instanci role serveru, můžete filtrovat podle serveru. Pokud chcete filtrovat, vyberte název serveru v části Servery.

Vzorkovaná selhání za živého přenosu

Zabezpečení řídicího kanálu

Poznámka

V současné době můžete nastavit pouze ověřený kanál pomocí ruční instrumentace (SDK) a nemůžete ověřovat servery pomocí integrace služeb Azure (nebo automatické instrumentace).

Kritéria vlastních filtrů, která zadáte na portálu Live Metrics, se posílají zpět do komponenty Live Metrics v sadě Application Přehledy SDK. Filtry mohou potenciálně obsahovat citlivé informace, jako jsou ID zákazníků. Kromě instrumentačního klíče můžete kanál zabezpečit pomocí tajného klíče rozhraní API.

Vytvoření klíče rozhraní API

Klíč rozhraní API > Vytvořit klíč rozhraní API Karta Vytvořit klíč rozhraní API. Vyberte Ověřit řídicí kanál sady SDK a  pak vygenerovat klíč.

Přidání klíče rozhraní API do konfigurace

ASP.NET

Do applicationinsights.config souboru přidejte AuthenticationApiKey do modulu QuickPulseTelemetryModule:

<Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse.QuickPulseTelemetryModule, Microsoft.AI.PerfCounterCollector">
      <AuthenticationApiKey>YOUR-API-KEY-HERE</AuthenticationApiKey>
</Add>

ASP.NET Core

V ASP.NET Core aplikacích postupujte podle následujících pokynů.

Upravte ConfigureServices soubor Startup.cs následujícím způsobem:

Přidejte následující obor názvů.

using Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse;

Pak upravte ConfigureServices metodu následujícím způsobem.

public void ConfigureServices(IServiceCollection services)
{
    // existing code which include services.AddApplicationInsightsTelemetry() to enable Application Insights.
    services.ConfigureTelemetryModule<QuickPulseTelemetryModule> ((module, o) => module.AuthenticationApiKey = "YOUR-API-KEY-HERE");
}

Další informace o konfiguraci ASP.NET Core najdete v našich pokynech ke konfiguraci modulů telemetriev ASP.NET Core .

WorkerService

V případě aplikací WorkerService postupujte podle následujících pokynů.

Přidejte následující obor názvů.

using Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse;

Dále před volání přidejte následující services.AddApplicationInsightsTelemetryWorkerService řádek.

    services.ConfigureTelemetryModule<QuickPulseTelemetryModule> ((module, o) => module.AuthenticationApiKey = "YOUR-API-KEY-HERE");

Další informace o konfiguraci aplikací WorkerService najdete v našich pokynech ke konfiguraci modulů telemetrie v tématu WorkerServices.

Aplikace Azure Functions

V případě aplikací Azure Function App (v2) je možné zabezpečit kanál klíčem rozhraní API pomocí proměnné prostředí.

Vytvořte klíč rozhraní API v rámci prostředku application Přehledy a přejděte Nastavení > konfigurace vaší aplikace funkcí. Vyberte Nové nastavení aplikace a zadejte název a APPINSIGHTS_QUICKPULSEAUTHAPIKEY hodnotu, která odpovídá vašemu klíči rozhraní API.

Pokud ale rozpoznáte a důvěřujete všem připojeným serverům, můžete vyzkoušet vlastní filtry bez ověřeného kanálu. Tato možnost je k dispozici po dobu šesti měsíců. Toto přepsání se vyžaduje po každé nové relaci nebo když je nový server online.

Možnosti ověřování Live Metrics

Poznámka

Důrazně doporučujeme nastavit ověřený kanál před zadáním potenciálně citlivých informací, jako je CustomerID, do kritérií filtru.

Tabulka podporovaných funkcí

Jazyk Základní metriky Metriky výkonu Vlastní filtrování Ukázková telemetrie Procesor rozdělený podle procesu
.NET Framework Podporováno (V2.7.2+) Podporováno (V2.7.2+) Podporováno (V2.7.2+) Podporováno (V2.7.2+) Podporováno (V2.7.2+)
.NET Core (target=.NET Framework) Podporováno (V2.4.1+) Podporováno (V2.4.1+) Podporováno (V2.4.1+) Podporováno (V2.4.1+) Podporováno (V2.4.1+)
.NET Core (target=.NET Core) Podporováno (V2.4.1+) Podporuje se* Podporováno (V2.4.1+) Podporováno (V2.4.1+) Nepodporuje se
Azure Functions v2 Podporováno Podporováno Podporováno Podporováno Nepodporuje se
Java Podporováno (V2.0.0+) Podporováno (V2.0.0+) Nepodporuje se Podporováno (V3.2.0+) Nepodporuje se
Node.js Podporováno (V1.3.0+) Podporováno (V1.3.0+) Nepodporuje se Podporováno (V1.3.0+) Nepodporuje se

Mezi základní metriky patří požadavky, závislosti a míra výjimek. Metriky výkonu (čítače výkonu) zahrnují paměť a procesor. Ukázková telemetrie ukazuje datový proud podrobných informací o neúspěšných požadavcích a závislostech, výjimce, událostech a trasování.

*Podpora perfCounters se mírně liší v různých verzích .NET Core, které nejsou cílem .NET Framework:

  • Metriky PerfCounters se podporují při spuštění v Azure App Service pro Windows. (AspNetCore SDK verze 2.4.1 nebo novější)
  • Nástroj PerfCounters se podporuje, když je aplikace spuštěná na Windows počítačích (virtuálních počítačích, cloudových službách, v případě, že je spuštěná atd.). (AspNetCore SDK verze 2.7.1 nebo vyšší), ale pro aplikace cílené na .NET Core 2.0 nebo vyšší.
  • Nástroje PerfCounters se podporují, když aplikace používá ANYWHERE (Linux, Windows, App Service pro Linux, kontejnery atd.) v nejnovějších verzích (tj. Sada SDK AspNetCore verze 2.8.0 nebo vyšší), ale pouze pro aplikace cílené na .NET Core 2.0 nebo vyšší.

Řešení potíží

Live Metrics Stream používá jiné IP adresy než jiná telemetrie Přehledy aplikací. Ujistěte se, že jsou tyto IP adresy ve vaší bráně firewall otevřené. Zkontrolujte také odchozí porty pro Live Metrics Stream jsou otevřené v bráně firewall vašich serverů.

Další kroky