Live Metrics Stream: Övervaka & diagnostisera med svarstid på 1 sekund

Övervaka ditt live-, produktionsbaserade webbprogram med hjälp av Live Metrics Stream (även kallat QuickPulse) från Application Insights. Välj och filtrera mått och prestandaräknare för att titta i realtid, utan att behöva störa din tjänst. Granska stackspårningar från exempel på misslyckade begäranden och undantag. Tillsammans med Profiler och Snapshot Live Metrics Streamett kraftfullt och icke-inkräktande diagnostikverktyg för din live-webbplats.

Med Live Metrics Stream kan du:

  • Validera en korrigering när den släpps genom att titta på prestanda och antal fel.
  • Titta på effekten av testbelastningar och diagnostisera problem live.
  • Fokusera på specifika testsessioner eller filtrera bort kända problem genom att välja och filtrera de mått som du vill titta på.
  • Hämta undantagsspårningar när de sker.
  • Experimentera med filter för att hitta de mest relevanta KPI:erna.
  • Övervaka alla Windows prestandaräknare live.
  • Identifiera enkelt en server som har problem och filtrera all KPI/live-feed till bara den servern.

Fliken Live Metrics

Live Metrics stöds för närvarande för ASP.NET, ASP.NET Core, Azure Functions, Java och Node.js appar.

Kom igång

  1. Följ språkspecifika riktlinjer för att aktivera Live Metrics.

  2. I Azure Portaldu programresursen Insights appen och öppnar sedan Live Stream.

  3. Skydda kontrollkanalen om du använder känsliga data, till exempel kundnamn, i dina filter.

Aktivera LiveMetrics med hjälp av kod för alla .NET-program

Även om LiveMetrics är aktiverat som standard vid registrering med rekommenderade instruktioner för .NET-program, visar följande hur du ställer in Live Metrics manuellt.

  1. Installera NuGet-paketet Microsoft.ApplicationInsights.PerfCounterCollector
  2. Följande exempel på konsolappkod visar hur du ställer in 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();
            }
        }
    }
}

Exemplet ovan gäller för en konsolapp, men samma kod kan användas i alla .NET-program. Om andra TelemetryModules är aktiverade som automatiskt samlar in telemetri, är det viktigt att se till att samma konfiguration som används för att initiera dessa moduler även används för modulen Live Metrics.

Hur skiljer Live Metrics Stream från Metrics Explorer och Analytics?

Direktsänd ström Metrics Explorer och Analytics
Svarstid Data som visas inom en sekund Aggregerat över minuter
Ingen kvarhållning Data bevaras medan de visas i diagrammet och ignoreras sedan Data som behålls i 90 dagar
På begäran Data strömmas bara när fönstret Live Metrics är öppet Data skickas när SDK installeras och aktiveras
Kostnadsfri Det finns ingen avgift för Live Stream data Prissättningsämne
Sampling Alla valda mått och räknare överförs. Fel och stackspårningar samplas. Händelser kan samplas
Kontrollkanal Filterkontrollsignaler skickas till SDK:n. Vi rekommenderar att du skyddar den här kanalen. Kommunikation är ett sätt, till portalen

Välj och filtrera dina mått

(Tillgängligt med ASP.NET, ASP.NET Core och Azure Functions (v2).)

Du kan övervaka anpassade KPI:er live genom att använda godtyckliga filter Insights program och telemetri från portalen. Klicka på filterkontrollen som visas när du för muspekaren över något av diagrammen. Följande diagram ritar en anpassad KPI för antal förfrågningar med filter för URL- och varaktighetsattribut. Verifiera dina filter med avsnittet Stream Preview som visar ett liveflöde med telemetri som matchar de kriterier som du har angett vid en viss tidpunkt.

Filtrera begärandefrekvens

Du kan övervaka ett annat värde än Antal. Alternativen beror på vilken typ av dataström som kan vara vilken Application Insights telemetri som helst: begäranden, beroenden, undantag, spårningar, händelser eller mått. Det kan vara ditt eget anpassade mått:

Frågebyggaren om förfrågningsfrekvens med anpassat mått

Förutom Telemetri Insights Application Insights kan du även övervaka alla Windows prestandaräknare genom att välja det bland alternativen för dataströmmen och ange namnet på prestandaräknaren.

Live-mått aggregeras på två punkter: lokalt på varje server och sedan på alla servrar. Du kan ändra standardvärdet antingen genom att välja andra alternativ i respektive listrutan.

Exempeltelemetri: Anpassade livediagnostikhändelser

Live-flödet av händelser visar som standard exempel på misslyckade begäranden och beroendeanrop, undantag, händelser och spårningar. Klicka på filterikonen för att se de tillämpade villkoren när som helst.

Filterknapp

Precis som med mått kan du ange godtyckliga kriterier för alla program Insights telemetrityper. I det här exemplet väljer vi specifika begärandefel och händelser.

Frågebyggaren

Anteckning

För närvarande använder du det yttersta undantagsmeddelandet för Undantagsmeddelandebaserade villkor. För att filtrera bort det oskadliga undantaget med ett inre undantagsmeddelande (följer avgränsaren "<--" i föregående exempel) "Klienten kopplades från". använd ett meddelande som inte innehåller kriterierna "Det gick inte att läsa begärandeinnehåll".

Visa information om ett objekt i live-flödet genom att klicka på det. Du kan pausa flödet genom att antingen klicka på Pausa eller helt enkelt rulla nedåt eller klicka på ett objekt. Livefeed återupptas när du bläddrar tillbaka till toppen eller genom att klicka på räknaren för objekt som samlats in när den pausades.

Skärmbild som visar fönstret Exempeltelemetri med ett undantag markerat och undantagsinformationen visas längst ned i fönstret.

Filtrera efter serverinstans

Om du vill övervaka en viss serverrollinstans kan du filtrera efter server. Om du vill filtrera väljer du servernamnet under Servrar.

Exempel på live-fel

Skydda kontrollkanalen

Anteckning

För närvarande kan du bara konfigurera en autentiserad kanal med hjälp av manuell instrumentation (SDK) och kan inte autentisera servrar med integrering av Azure-tjänster (eller automatisk instrumentation).

De anpassade filtervillkor som du anger i Live Metrics-portalen skickas tillbaka till komponenten Live Metrics i Application Insights SDK. Filtren kan potentiellt innehålla känslig information, till exempel customerIDs. Du kan skydda kanalen med en hemlig API-nyckel utöver instrumenteringsnyckeln.

Skapa en API-nyckel

API-> skapa API-nyckel  fliken Skapa API-nyckel. Välj "autentisera SDK-kontrollkanal" och sedan "generera nyckel"

Lägga till API-nyckel i konfigurationen

ASP.NET

I applicationinsights.config lägger du till AuthenticationApiKey i QuickPulseTelemetryModule:

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

ASP.NET Core

För ASP.NET Core program följer du anvisningarna nedan.

Ändra ConfigureServices startup.cs-filen på följande sätt:

Lägg till följande namnområde.

using Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse;

Ändra sedan ConfigureServices metoden enligt nedan.

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");
}

Mer information om hur ASP.NET Core program finns i vår vägledning om hur du konfigurerar telemetrimoduler i ASP.NET Core.

WorkerService

För WorkerService-program följer du anvisningarna nedan.

Lägg till följande namnområde.

using Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse;

Lägg sedan till följande rad före anropet services.AddApplicationInsightsTelemetryWorkerService .

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

Mer information om hur du konfigurerar WorkerService-program finns i vår vägledning om hur du konfigurerar telemetrimoduler i WorkerServices.

Azure-funktionsappar

För Azure-funktionsappar (v2) kan du skydda kanalen med en API-nyckel med en miljövariabel.

Skapa en API-nyckel från din Application Insights-resurs och gå till Inställningar > Konfiguration för din funktionsapp. Välj Ny programinställning och ange ett namn på APPINSIGHTS_QUICKPULSEAUTHAPIKEY och ett värde som motsvarar din API-nyckel.

Men om du känner igen och litar på alla anslutna servrar kan du prova de anpassade filtren utan den autentiserade kanalen. Det här alternativet är tillgängligt i sex månader. Den här åsidosättningen krävs en gång varje ny session eller när en ny server är online.

Autentiseringsalternativ för livemått

Anteckning

Vi rekommenderar starkt att du ställer in den autentiserade kanalen innan du anger potentiellt känslig information som CustomerID i filtervillkoren.

Tabell över funktioner som stöds

Språk Grundläggande mått Prestandamått Anpassad filtrering Exempeltelemetri Cpu-delning efter process
.NET Framework Stöds (V2.7.2+) Stöds (V2.7.2+) Stöds (V2.7.2+) Stöds (V2.7.2+) Stöds (V2.7.2+)
.NET Core (target=.NET Framework) Stöds (V2.4.1+) Stöds (V2.4.1+) Stöds (V2.4.1+) Stöds (V2.4.1+) Stöds (V2.4.1+)
.NET Core (target=.NET Core) Stöds (V2.4.1+) Stöds* Stöds (V2.4.1+) Stöds (V2.4.1+) Stöds inte
Azure Functions v2 Stöds Stöds Stöds Stöds Stöds inte
Java Stöds (V2.0.0+) Stöds (V2.0.0+) Stöds inte Stöds (V3.2.0+) Stöds inte
Node.js Stöds (V1.3.0+) Stöds (V1.3.0+) Stöds inte Stöds (V1.3.0+) Stöds inte

Grundläggande mått är förfrågnings-, beroende- och undantagsfrekvens. Prestandamått (prestandaräknare) omfattar minne och CPU. Exempeltelemetri visar en dataström med detaljerad information om misslyckade begäranden och beroenden, undantag, händelser och spårningar.

*Stödet för PerfCounters varierar något mellan olika versioner av .NET Core som inte är .NET Framework:

  • PerfCounters-mått stöds när du kör i Azure App Service för Windows. (AspNetCore SDK version 2.4.1 eller senare)
  • PerfCounters stöds när appen körs på alla Windows (VM eller molntjänst eller lokala osv.) (AspNetCore SDK version 2.7.1 eller senare), men för appar som riktar sig mot .NET Core 2.0 eller senare.
  • PerfCounters stöds när appen kör ANYWHERE (Linux, Windows, App Service för Linux, containrar osv.) i de senaste versionerna (d.v.s. AspNetCore SDK version 2.8.0 eller senare), men endast för appar som riktar sig mot .NET Core 2.0 eller senare.

Felsökning

Live Metrics Stream använder andra IP-adresser än andra Program Insights telemetri. Kontrollera att dessa IP-adresser är öppna i brandväggen. Kontrollera också de utgående portarna Live Metrics Stream är öppna i brandväggen för dina servrar.

Nästa steg