Live Metrics Stream: Überwachung und Diagnose mit einer Latenzzeit von 1 SekundeLive Metrics Stream: Monitor & Diagnose with 1-second latency

Überwachen Sie Ihre Livewebanwendung in der Produktion mithilfe von Live Metrics Stream (auch QuickPulse) in Application Insights.Monitor your live, in-production web application by using Live Metrics Stream (also known as QuickPulse) from Application Insights. Wählen und filtern Sie Metriken und Leistungsindikatoren für die Überwachung in Echtzeit, ohne dass der Dienst beeinträchtigt wird.Select and filter metrics and performance counters to watch in real time, without any disturbance to your service. Überprüfen Sie Stapelüberwachungen von fehlerhaften Anforderungen und Ausnahmen.Inspect stack traces from sample failed requests and exceptions. In Kombination mit Profiler und dem Momentaufnahmedebugger bietet Live Metrics Stream ein leistungsfähiges und nicht invasives Diagnosetool für Ihre Livewebsite.Together with Profiler and Snapshot debugger, Live Metrics Stream provides a powerful and non-invasive diagnostic tool for your live web site.

Mit Live Metrics Stream haben Sie folgende Möglichkeiten:With Live Metrics Stream, you can:

  • Überprüfen Sie eine veröffentlichte Korrektur durch Überwachen von Leistungs- und Fehlerindikatoren.Validate a fix while it is released, by watching performance and failure counts.
  • Überwachen Sie die Auswirkungen von Testauslastungen, und diagnostizieren Sie Probleme im laufenden Betrieb.Watch the effect of test loads, and diagnose issues live.
  • Konzentrieren Sie sich auf bestimmte Testsitzungen, oder filtern Sie bekannte Probleme heraus, indem Sie die zu überwachenden Metriken auswählen und filtern.Focus on particular test sessions or filter out known issues, by selecting and filtering the metrics you want to watch.
  • Rufen Sie Ausnahmeablaufverfolgungen in Echtzeit ab.Get exception traces as they happen.
  • Experimentieren Sie mit Filtern, um die wichtigsten KPIs zu ermitteln.Experiment with filters to find the most relevant KPIs.
  • Überwachen Sie Windows-Leistungsindikatoren live.Monitor any Windows performance counter live.
  • Identifizieren Sie mühelos einen Server mit Problemen, und filtern Sie nach allen KPIs/dem Livefeed nur für diesen Server.Easily identify a server that is having issues, and filter all the KPI/live feed to just that server.

Registerkarte „Livemetriken“

Livemetriken werden derzeit für ASP.NET-, ASP.NET Core-, Azure Functions-, Java- und Node.js-Apps unterstützt.Live Metrics are currently supported for ASP.NET, ASP.NET Core, Azure Functions, Java, and Node.js apps.

Erste SchritteGet started

  1. Befolgen Sie die sprachspezifischen Richtlinien zum Aktivieren von Livemetriken.Follow language specific guidelines to enable Live Metrics.

  2. Öffnen Sie im Azure-Portal die Application Insights-Ressource für Ihre App und anschließend Live Stream.In the Azure portal, open the Application Insights resource for your app, and then open Live Stream.

  3. Sichern Sie den Steuerkanal, wenn Sie sensible Daten (z.B. Kundennamen) in Ihren Filtern verwenden möchten.Secure the control channel if you might use sensitive data such as customer names in your filters.

Aktivieren von Livemetriken für beliebige .NET-Anwendungen mithilfe von CodeEnable LiveMetrics using code for any .NET application

Obwohl Livemetriken standardmäßig aktiviert sind, wenn das Onboarding anhand der empfohlenen Anweisungen für .NET-Anweisungen erfolgt, wird im Folgenden veranschaulicht, wie Sie diese manuell einrichten.Even though LiveMetrics is enabled by default when onboarding using recommended instructions for .NET Applications, the following shows how to setup Live Metrics manually.

  1. Installieren Sie das NuGet-Paket Microsoft.ApplicationInsights.PerfCounterCollector.Install the NuGet package Microsoft.ApplicationInsights.PerfCounterCollector
  2. Im Folgenden finden Sie Beispielcode für die Konsolen-App zum Einrichten von Livemetriken.The following sample console app code shows setting up 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();
            }
        }
    }
}

Obwohl das obige Beispiel für eine Konsolen-App vorgesehen ist, kann derselbe Code in allen .NET-Anwendungen verwendet werden.While the above sample is for a console app, the same code can be used in any .NET applications. Wenn weitere Telemetriemodule aktiviert sind, die automatisch Telemetriedaten erfassen, müssen Sie dafür sorgen, dass die Konfiguration für die Initialisierung dieser Module auch für Livemetrikmodule verwendet wird.If any other TelemetryModules are enabled which auto-collects telemetry, it is important to ensure the same configuration used for initializing those modules is used for Live Metrics module as well.

Wie unterscheidet sich Live Metrics Stream von Metrik-Explorer und Analytics?How does Live Metrics Stream differ from Metrics Explorer and Analytics?

Live StreamLive Stream Metrik-Explorer und AnalyticsMetrics Explorer and Analytics
LatenzLatency Daten werden innerhalb einer Sekunde angezeigt.Data displayed within one second Aggregation innerhalb mehrerer MinutenAggregated over minutes
Keine BeibehaltungNo retention Daten werden beibehalten, solange sie im Diagramm angezeigt werden, und dann verworfen.Data persists while it's on the chart, and is then discarded Daten werden 90 Tage lang beibehalten.Data retained for 90 days
BedarfsgesteuertOn demand Daten werden nur gestreamt, während der Bereich „Livemetriken“ geöffnet ist.Data is only streamed while the Live Metrics pane is open Daten werden gesendet, sobald das SDK installiert und aktiviert wird.Data is sent whenever the SDK is installed and enabled
FreeFree Keine Gebühren für Live Stream-DatenThere is no charge for Live Stream data GebührenpflichtigSubject to pricing
StichprobenSampling Alle ausgewählten Metriken und Indikatoren werden übertragen.All selected metrics and counters are transmitted. Für Fehler und Stapelüberwachungen werden Stichproben erstellt.Failures and stack traces are sampled. Für Ereignisse können Stichproben erstellt werden.Events may be sampled
SteuerkanalControl channel Filtersteuersignale werden an das SDK gesendet.Filter control signals are sent to the SDK. Es empfiehlt sich, diesen Kanal zu sichern.We recommend you secure this channel. Unidirektionale Kommunikation zum PortalCommunication is one way, to the portal

Auswählen und Filtern der MetrikenSelect and filter your metrics

(Verfügbar mit ASP.NET, ASP.NET Core und Azure Functions (v2).)(Available with ASP.NET, ASP.NET Core, and Azure Functions (v2).)

Sie können benutzerdefinierte KPIs live überwachen, indem Sie im Portal beliebige Filter auf Application Insights-Telemetrie anwenden.You can monitor custom KPI live by applying arbitrary filters on any Application Insights telemetry from the portal. Klicken Sie auf das Filtersteuerelement, das angezeigt wird, wenn Sie den Mauszeiger über eines der Diagramme bewegen.Click the filter control that shows when you mouse-over any of the charts. Das folgende Diagramm stellt eine benutzerdefinierte KPI für die Anforderungsanzahl mit Filtern für die Attribute „URL“ und „Dauer“ dar.The following chart is plotting a custom Request count KPI with filters on URL and Duration attributes. Überprüfen Sie Ihre Filter in der Streamvorschau, die jederzeit einen Livefeed von Telemetriedaten anzeigt, die den von Ihnen angegeben Kriterien entsprechen.Validate your filters with the Stream Preview section that shows a live feed of telemetry that matches the criteria you have specified at any point in time.

Filter Anforderungsrate

Sie können einen anderen Wert als die Anzahl überwachen.You can monitor a value different from Count. Die Optionen hängen von der Typ des Streams ab. Bei diesem kann es sich um eine beliebige Application Insights-Telemetrie handeln: Anforderungen, Abhängigkeiten, Ausnahmen, Ablaufverfolgungen, Ereignisse oder Metriken.The options depend on the type of stream, which could be any Application Insights telemetry: requests, dependencies, exceptions, traces, events, or metrics. Sie können auch eine eigene benutzerdefinierte Messung verwenden:It can be your own custom measurement:

Abfrage-Generator für Anforderungsrate mit benutzerdefinierter Metrik

Neben Application Insights-Telemetrie können Sie auch einen beliebigen Windows-Leistungsindikator überwachen, indem Sie diese Streamoptionen auswählen und den Namen des Leistungsindikators angeben.In addition to Application Insights telemetry, you can also monitor any Windows performance counter by selecting that from the stream options, and providing the name of the performance counter.

Livemetriken werden an zwei Punkten aggregiert: lokal auf jedem Server und übergreifend auf allen Servern.Live metrics are aggregated at two points: locally on each server, and then across all servers. Sie können die Standardeinstellung durch die Auswahl anderer Optionen in der entsprechenden Dropdownliste ändern.You can change the default at either by selecting other options in the respective drop-downs.

Beispieltelemetrie: Benutzerdefinierte LivediagnoseereignisseSample Telemetry: Custom Live Diagnostic Events

Der Livefeed von Ereignissen zeigt standardmäßig Beispiele für fehlgeschlagene Anforderungen und Abhängigkeitsaufrufe, Ausnahmen, Ereignisse und Ablaufverfolgungen an.By default, the live feed of events shows samples of failed requests and dependency calls, exceptions, events, and traces. Klicken Sie jederzeit auf das Filtersymbol, um die angewendeten Kriterien anzuzeigen.Click the filter icon to see the applied criteria at any point in time.

Filterschaltfläche

Wie bei Metriken können Sie beliebige Kriterien für alle Application Insights-Telemetrietypen angeben.As with metrics, you can specify any arbitrary criteria to any of the Application Insights telemetry types. In diesem Beispiel wählen Sie bestimmte Anforderungsfehler und Ereignisse aus.In this example, we are selecting specific request failures, and events.

Abfrage-Generator

Hinweis

Aktuell muss für meldungsbasierte Ausnahmekriterien die Meldung für äußere Ausnahmen verwendet werden.Currently, for Exception message-based criteria, use the outermost exception message. Verwenden Sie im vorangehenden Beispiel zum Herausfiltern mit der Meldung für innere Ausnahmen (folgt auf das Trennzeichen „<--“) „Der Client wurde getrennt.“In the preceding example, to filter out the benign exception with inner exception message (follows the "<--" delimiter) "The client disconnected." eine Meldung, die keine Kriterien vom Typ „Fehler beim Lesen des Anforderungsinhalts“ enthält.use a message not-contains "Error reading request content" criteria.

Klicken Sie auf ein Element im Livefeed, um die Details dazu anzuzeigen.See the details of an item in the live feed by clicking it. Sie können den Feed anhalten, indem Sie auf Anhalten klicken, einfach nach unten scrollen oder auf ein Element klicken.You can pause the feed either by clicking Pause or simply scrolling down, or clicking an item. Der Livefeed wird fortgesetzt, wenn Sie wieder nach oben scrollen oder auf den Zähler der Elemente klicken, die im angehaltenen Zustand erfasst wurden.Live feed will resume after you scroll back to the top, or by clicking the counter of items collected while it was paused.

Auswahl der Live-Fehler

Filtern nach ServerinstanzFilter by server instance

Wenn Sie eine bestimmte Serverrolleninstanz überwachen möchten, können Sie nach Server filtern.If you want to monitor a particular server role instance, you can filter by server. Klicken Sie zum Filtern unter Server auf den gewünschten Servernamen.To filter select the server name under Servers.

Auswahl der Live-Fehler

Sichern des SteuerkanalsSecure the control channel

Hinweis

Derzeit können Sie nur mithilfe von codebasierter Überwachung einen authentifizierten Kanal einrichten und Server nicht durch codelose Anfügung authentifizieren.Currently, you can only set up an authenticated channel using code based monitoring and cannot authenticate servers using codeless attach.

Die von Ihnen im Portal für Livemetriken angegebenen benutzerdefinierten Filterkriterien werden an die Livemetrikkomponente des Application Insights SDK zurückgesendet.The custom filters criteria you specify in Live Metrics portal are sent back to the Live Metrics component in the Application Insights SDK. Der Filter können potenziell vertrauliche Informationen wie z.B. Kunden-IDs enthalten.The filters could potentially contain sensitive information such as customerIDs. Zum Sichern des Kanals können Sie neben dem Instrumentierungsschlüssel auch einen geheimen API-Schlüssel verwenden.You can make the channel secure with a secret API key in addition to the instrumentation key.

Erstellen eines API-SchlüsselsCreate an API Key

API-Schlüssel > API-Schlüssel erstellen Registerkarte „API-Schlüssel erstellen“ Aktivieren von „SDK-Steuerungskanal authentifizieren“ und anschließendes Klicken auf „Schlüssel generieren“API key > Create API key Create API Key tab. Select "authenticate SDK control channel" then "generate key"

Hinzufügen eines API-Schlüssels zur KonfigurationAdd API key to Configuration

ASP.NETASP.NET

Fügen Sie den API-Authentifizierungsschlüssel in der Datei „applicationinsights.config“ dem QuickPulseTelemetryModule-Element hinzu:In the applicationinsights.config file, add the AuthenticationApiKey to the QuickPulseTelemetryModule:

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

ASP.NET CoreASP.NET Core

Befolgen Sie für ASP.NET Core-Anwendungen die hier folgenden Anweisungen.For ASP.NET Core applications, follow the instructions below.

Ändern Sie die ConfigureServices-Methode in der Datei „Startup.cs“ wie folgt:Modify ConfigureServices of your Startup.cs file as follows:

Fügen Sie den folgenden Namespace hinzu.Add the following namespace.

using Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse;

Ändern Sie dann die ConfigureServices-Methode wie unten beschrieben.Then modify ConfigureServices method as below.

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

Weitere Informationen zum Konfigurieren von ASP.NET Core-Anwendungen finden Sie im Leitfaden zum Konfigurieren von Telemetriemodulen in ASP.NET Core.More information on configuring ASP.NET Core applications can be found in our guidance on configuring telemetry modules in ASP.NET Core.

WorkerServiceWorkerService

Befolgen Sie für WorkerService-Anwendungen die hier folgenden Anweisungen.For WorkerService applications, follow the instructions below.

Fügen Sie den folgenden Namespace hinzu.Add the following namespace.

using Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse;

Fügen Sie als Nächstes die folgende Zeile vor dem Aufruf von services.AddApplicationInsightsTelemetryWorkerService hinzu.Next, add the following line before the call services.AddApplicationInsightsTelemetryWorkerService.

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

Weitere Informationen zum Konfigurieren von WorkerService-Anwendungen finden Sie im Leitfaden zum Konfigurieren von Telemetriemodulen in WorkerService-Anwendungen.More information on configuring WorkerService applications can be found in our guidance on configuring telemetry modules in WorkerServices.

Azure Function-AppsAzure Function Apps

Für Azure-Funktions-Apps (v2) kann der Kanal über eine Umgebungsvariable mit einem API-Schlüssel abgesichert werden.For Azure Function Apps (v2), securing the channel with an API key can be accomplished with an environment variable.

Erstellen Sie einen API-Schlüssel in Ihrer Application Insights-Ressource, und wechseln Sie zu Einstellungen > Konfiguration für Ihre Funktions-App.Create an API key from within your Application Insights resource and go to Settings > Configuration for your Function App. Wählen Sie Neue Anwendungseinstellung aus, und geben Sie den Namen APPINSIGHTS_QUICKPULSEAUTHAPIKEY und einen Wert entsprechend Ihrem API-Schlüssel ein.Select New application setting and enter a name of APPINSIGHTS_QUICKPULSEAUTHAPIKEY and a value that corresponds to your API key.

Wenn Sie jedoch alle verbundenen Server erkennen und ihnen vertrauen, können Sie die benutzerdefinierte Filter ohne den authentifizierten Kanal ausprobieren.However, if you recognize and trust all the connected servers, you can try the custom filters without the authenticated channel. Diese Option steht sechs Monate lang zur Verfügung.This option is available for six months. Diese Überschreibung muss einmal für jede neue Sitzung, oder wenn ein neuer Server online geschaltet wird, durchgeführt werden.This override is required once every new session, or when a new server comes online.

Authentifizierungsoptionen für Livemetriken

Hinweis

Es wird dringend empfohlen, dass Sie den authentifizierten Kanal vor dem Eingeben von potenziell vertraulichen Informationen wie der Kunden-ID in den Filterkriterien einrichten.We strongly recommend that you set up the authenticated channel before entering potentially sensitive information like CustomerID in the filter criteria.

Tabelle unterstützter FeaturesSupported features table

SpracheLanguage Grundlegende MetrikenBasic Metrics LeistungsmetrikenPerformance metrics Benutzerdefinierte FilterungCustom filtering BeispieltelemetrieSample telemetry CPU-Aufteilung nach ProzessenCPU split by process
.NET Framework.NET Framework Unterstützt (V2.7.2+)Supported (V2.7.2+) Unterstützt (V2.7.2+)Supported (V2.7.2+) Unterstützt (V2.7.2+)Supported (V2.7.2+) Unterstützt (V2.7.2+)Supported (V2.7.2+) Unterstützt (V2.7.2+)Supported (V2.7.2+)
.NET Core (target=.NET Framework).NET Core (target=.NET Framework) Unterstützt (V2.4.1+)Supported (V2.4.1+) Unterstützt (V2.4.1+)Supported (V2.4.1+) Unterstützt (V2.4.1+)Supported (V2.4.1+) Unterstützt (V2.4.1+)Supported (V2.4.1+) Unterstützt (V2.4.1+)Supported (V2.4.1+)
.NET Core (target=.NET Core).NET Core (target=.NET Core) Unterstützt (V2.4.1+)Supported (V2.4.1+) Unterstützt*Supported* Unterstützt (V2.4.1+)Supported (V2.4.1+) Unterstützt (V2.4.1+)Supported (V2.4.1+) Nicht unterstütztNot Supported
Azure Functions v2Azure Functions v2 UnterstütztSupported UnterstütztSupported UnterstütztSupported UnterstütztSupported Nicht unterstütztNot Supported
JavaJava Unterstützt (V2.0.0+)Supported (V2.0.0+) Unterstützt (V2.0.0+)Supported (V2.0.0+) Nicht unterstütztNot Supported Nicht unterstütztNot Supported Nicht unterstütztNot Supported
Node.jsNode.js Unterstützt (V1.3.0+)Supported (V1.3.0+) Unterstützt (V1.3.0+)Supported (V1.3.0+) Nicht unterstütztNot Supported Unterstützt (V1.3.0+)Supported (V1.3.0+) Nicht unterstütztNot Supported

Grundlegende Metriken umfassen Anforderung, Abhängigkeit und Ausnahmerate.Basic metrics include request, dependency, and exception rate. Leistungsmetriken (Leistungsindikatoren) umfassen Arbeitsspeicher und CPU.Performance metrics (performance counters) include memory and CPU. Beispieltelemetriedaten zeigen einen Datenstrom ausführlicher Informationen zu nicht erfolgreichen Anforderungen und Abhängigkeiten, Ausnahmen, Ereignissen und Ablaufverfolgungen.Sample telemetry shows a stream of detailed information for failed requests and dependencies, exceptions, events, and traces.

* PerfCounters-Unterstützung unterscheidet sich geringfügig von .NET Core-Versionen, die nicht für .NET Framework bestimmt sind:* PerfCounters support varies slightly across versions of .NET Core that do not target the .NET Framework:

  • PerfCounters-Metriken werden unterstützt, wenn sie in Azure App Service für Windows ausgeführt werden.PerfCounters metrics are supported when running in Azure App Service for Windows. (AspNetCore SDK Version 2.4.1 oder höher)(AspNetCore SDK Version 2.4.1 or higher)
  • PerfCounters werden unterstützt, wenn die App auf einem BELIEBIGEN Windows-Computer (VM oder Clouddienst oder lokal usw.) ausgeführt wird (AspNetCore SDK Version 2.7.1 oder höher), aber für Apps, die für .NET Core 2.0 oder höher bestimmt sind.PerfCounters are supported when app is running in ANY Windows machines (VM or Cloud Service or On-prem etc.) (AspNetCore SDK Version 2.7.1 or higher), but for apps targeting .NET Core 2.0 or higher.
  • PerfCounters werden unterstützt, wenn die App auf einem beliebigen Computer (Linux, Windows, App Service für Linux, Container usw.) in der aktuellen Version (z. B. ASP.NET Core SDK 2.8.0 oder höher) ausgeführt wird, sofern diese mit .NET Core 2.0 oder höher kompatibel ist.PerfCounters are supported when app is running ANYWHERE (Linux, Windows, app service for Linux, containers, etc.) in the latest versions (i.e. AspNetCore SDK Version 2.8.0 or higher), but only for apps targeting .NET Core 2.0 or higher.

ProblembehandlungTroubleshooting

Live Metrics Stream verwendet andere IP-Adressen als sonstige Application Insights-Telemetriedaten.Live Metrics Stream uses different IP addresses than other Application Insights telemetry. Stellen Sie sicher, dass diese IP-Adressen in Ihrer Firewall geöffnet sind.Make sure those IP addresses are open in your firewall. Überprüfen Sie auch, ob die ausgehenden Ports für Live Metrics Stream in der Firewall Ihrer Server geöffnet sind.Also check the outgoing ports for Live Metrics Stream are open in the firewall of your servers.

Nächste SchritteNext steps