Livemetriken: Überwachen und Diagnostizieren mit einer Wartezeit von einer Sekunde

Überwachen Sie Ihre Livewebanwendung in der Produktion mithilfe von Live Metrics (QuickPulse) über Application Insights. Sie können Metriken und Leistungsindikatoren auswählen und danach filtern, um Erkenntnisse in Echtzeit zu erhalten, ohne dass Ihr Dienst dadurch beeinträchtigt wird. Sie können sich auch Überwachungsdaten von Beispielanforderungen, die fehlgeschlagen sind, sowie Ausnahmen ansehen. In Kombination mit Profiler und dem Momentaufnahmedebugger bieten Livemetriken ein leistungsfähiges und nicht invasives Diagnosetool für Ihre Livewebsite.

Hinweis

Live Metrics unterstützt nur TLS 1.2. Weitere Informationen finden Sie unter Problembehandlung.

Live Metrics bietet folgende Möglichkeiten:

  • Sie können eine Korrektur während ihres Releases überprüfen, indem Sie die Leistung und die Anzahl der Fehler beobachten.
  • Überwachen Sie die Auswirkungen von Testauslastungen, und diagnostizieren Sie Probleme im laufenden Betrieb.
  • Konzentrieren Sie sich auf bestimmte Testsitzungen, oder filtern Sie bekannte Probleme heraus, indem Sie die zu überwachenden Metriken auswählen und filtern.
  • Rufen Sie Ausnahmeablaufverfolgungen in Echtzeit ab.
  • Experimentieren Sie mit Filtern, um die wichtigsten KPIs zu ermitteln.
  • Überwachen Sie Windows-Leistungsindikatoren live.
  • Identifizieren Sie mühelos einen Server mit Problemen, und filtern Sie nach allen KPIs/dem Livefeed nur für diesen Server.

Screenshot that shows the Live Metrics tab.

Livemetriken werden derzeit für ASP.NET-, ASP.NET Core-, Azure Functions-, Java- und Node.js-Apps unterstützt.

Hinweis

Die Anzahl überwachter Serverinstanzen, die von Livemetriken angezeigt werden, kann niedriger sein als die tatsächliche Anzahl von Instanzen, die für die Anwendung zugewiesen wurden. Diese Diskrepanz liegt daran, dass viele moderne Webserver Anwendungen, die über einen bestimmten Zeitraum hinweg keine Anforderungen erhalten, entladen, um Ressourcen zu sparen. Da von Livemetriken nur Server gezählt werden, auf denen derzeit die Anwendung ausgeführt wird, werden Server, die den Prozess bereits entladen haben, nicht in die Gesamtanzahl einbezogen.

Erste Schritte

Wichtig

Stellen Sie zum Aktivieren von Application Insights sicher, dass das Feature im Azure-Portal aktiviert ist und Ihre App eine aktuelle Version des Application Insights-NuGet-Pakets verwendet. Ohne das NuGet-Paket werden zwar einige Telemetriedaten an Application Insights gesendet, aber diese Telemetriedaten werden nicht in Livemetriken angezeigt.

  1. Befolgen Sie die sprachspezifischen Richtlinien zum Aktivieren von Livemetriken:

  2. Öffnen Sie im Azure-Portal die Application Insights-Ressource für Ihre App. Öffnen Sie dann Live Stream.

  3. Sichern Sie den Steuerkanal, wenn Sie möglicherweise vertrauliche Daten wie Kundennamen in Ihren Filtern verwenden.

Hinweis

Am 31. März 2025 wird der Support für die auf Instrumentierungsschlüsseln basierende Erfassung eingestellt. Die Erfassung von Instrumentierungsschlüsseln funktioniert zwar weiterhin, wir stellen jedoch keine Updates und keinen Support mehr für das Feature bereit. Wechseln Sie zu Verbindungszeichenfolgen, damit Sie neue Funktionen nutzen können.

Aktivieren von Livemetriken für beliebige .NET-Anwendungen mithilfe von Code

Hinweis

Livemetriken sind standardmäßig aktiviert, wenn sie deren Onboarding gemäß den empfohlenen Anweisungen für .NET-Anwendungen durchführen.

So konfigurieren Sie Livemetriken manuell:

  1. Installieren Sie das NuGet-Paket Microsoft.ApplicationInsights.PerfCounterCollector.
  2. Im Folgenden finden Sie Beispielcode der Konsolen-App zum Einrichten von Livemetriken:
using Microsoft.ApplicationInsights;
using Microsoft.ApplicationInsights.Extensibility;
using Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse;

// 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 set up 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.
    // 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();
}

Auch wenn das obige Beispiel für eine Konsolen-App vorgesehen ist, kann derselbe Code doch in allen .NET-Anwendungen verwendet werden. Wenn weitere Telemetriemodule aktiviert sind, um automatisch Telemetriedaten zu erfassen, ist es wichtig, dass Sie dafür sorgen, dass dieselbe Konfiguration, mit der diese Module initialisiert wurden, auch für das Livemetriken-Modul verwendet wird.

Inwiefern unterscheiden sich Livemetriken von Metrik-Explorer und Log Analytics?

Funktionen Live Stream Metrik-Explorer und Log Analytics
Latency Daten werden innerhalb einer Sekunde angezeigt. Aggregation über mehrere Minuten.
Keine Beibehaltung Daten bleiben erhalten, solange sie im Diagramm angezeigt werden, und werden dann verworfen. Daten werden 90 Tage lang aufbewahrt.
On-Demand-Streaming Daten werden nur gestreamt, solange der Bereich „Livemetriken“ geöffnet ist. Daten werden gesendet, sobald das SDK installiert und aktiviert wird.
Kostenlos Für Live Stream-Daten fallen keine Gebühren an. Gebührenpflichtig.
Stichproben Alle ausgewählten Metriken und Indikatoren werden übertragen. Für Fehler und Stapelüberwachungen werden Stichproben erstellt. Von Ereignissen können Stichproben genommen werden.
Steuerkanal Filtersteuersignale werden an das SDK gesendet. Es empfiehlt sich, diesen Kanal zu sichern. Unidirektionale Kommunikation mit dem Portal.

Auswählen und Filtern der Metriken

Diese Funktionen sind mit ASP.NET, ASP.NET Core und Azure Functions (v2) verfügbar.

Sie können benutzerdefinierte KPIs live überwachen, indem Sie im Portal beliebige Filter auf Application Insights-Telemetrie anwenden. Wählen Sie das Filtersteuerelement aus, das angezeigt wird, wenn Sie den Mauszeiger über eines der Diagramme bewegen. Im folgenden Diagramm wird ein benutzerdefinierter KPI für die Anforderungsanzahl mit Filtern für die Attribute URL und Dauer gezeigt. Überprüfen Sie Ihre Filter in der Streamvorschau, die zu jedem Zeitpunkt einen Livefeed von Telemetriedaten anzeigt, die den von Ihnen angegeben Kriterien entsprechen.

Screenshot that shows the Filter request rate.

Sie können einen von der Anzahl (Count) abweichenden Wert überwachen. Die Optionen hängen vom Typ des Streams ab. Bei diesem kann es sich um eine beliebige Application Insights-Telemetrie handeln: Anforderungen, Abhängigkeiten, Ausnahmen, Ablaufverfolgungen, Ereignisse oder Metriken. Sie können außerdem eine eigene benutzerdefinierte Messung verwenden.

Screenshot that shows the Query Builder on Request Rate with a custom metric.

Zusammen mit Application Insights-Telemetriedaten können Sie auch alle Windows-Leistungsindikatoren überwachen. Wählen Sie dies aus den Streamoptionen aus, und geben Sie den Namen des Leistungsindikators an.

Livemetriken werden an zwei Punkten aggregiert: lokal auf jedem Server und dann übergreifend auf allen Servern. Sie können die Standardeinstellung an beiden Stellen durch Auswahl anderer Optionen in der jeweils entsprechenden Dropdownliste ändern.

Telemetriebeispiel: Benutzerdefinierte Livediagnoseereignisse

Der Livefeed von Ereignissen zeigt standardmäßig Beispiele für fehlgeschlagene Anforderungen und Abhängigkeitsaufrufe, Ausnahmen, Ereignisse und Ablaufverfolgungen an. Wählen Sie jederzeit auf Filtersymbol aus, um die angewendeten Kriterien anzuzeigen.

Screenshot that shows the Filter button.

Wie bei Metriken können Sie beliebige Kriterien für alle Application Insights-Telemetrietypen angeben. In diesem Beispiel wählen wir bestimmte Anforderungsfehler und Ereignisse aus.

Screenshot that shows the Query Builder.

Hinweis

Aktuell muss für auf Ausnahmemeldungen basierende Kriterien die Meldung der äußersten Ausnahme verwendet werden. Verwenden Sie im vorangehenden Beispiel zum Herausfiltern der unbedenklichen Ausnahme mit der Meldung der inneren Ausnahme (folgt auf das Trennzeichen „<--“) „Der Client wurde getrennt.“ ein Kriterium „Meldung enthält nicht ‚Fehler beim Lesen des Anforderungsinhalts‘“.

Um die Details eines Elements im Livefeed anzuzeigen, wählen Sie es aus. Sie können den Feed anhalten, indem Sie Anhalten auswählen, oder indem Sie nach unten scrollen und ein Element auswählen. Der Livefeed wird fortgesetzt, nachdem Sie wieder ganz nach oben gescrollt haben, oder wenn Sie den Zähler der Elemente auswählen, die während des Anhaltens erfasst wurden.

Screenshot that shows the Sample telemetry window with an exception selected and the exception details displayed at the bottom of the window.

Filtern nach Serverinstanz

Wenn Sie eine bestimmte Serverrolleninstanz überwachen möchten, können Sie nach Server filtern. Wählen Sie zum Filtern unter Server den gewünschten Servernamen aus.

Screenshot that shows the Sampled live failures.

Sichern des Steuerkanals

Mithilfe benutzerdefinierter Filter von Livemetriken können Sie steuern, welche Telemetriedaten Ihrer Anwendung an die Ansicht „Livemetriken“ im Azure-Portal gestreamt werden. Die Filterkriterien werden an die Apps gesendet, die mit dem Application Insights SDK instrumentiert sind. Der Filterwert kann ggf. potenziell vertrauliche Informationen wie etwa die Kunden-ID enthalten. Es gibt zwei Möglichkeiten, diesen Wert zu schützen und eine potenzielle Offenlegung gegenüber nicht autorisierten Anwendungen zu verhindern:

  • Empfohlen: Schützen Sie den Kanal der Livemetriken mithilfe der Microsoft Entra-Authentifizierung.
  • Legacy (nicht mehr empfohlen): Richten Sie einen authentifizierten Kanal ein, indem Sie einen geheimen API-Schlüssel konfigurieren, wie im Abschnitt „Legacyoption“ erläutert.

Hinweis

Am 30. September 2025 werden API-Schlüssel, die zum Streamen von Telemetriedaten von Livemetriken in Application Insights verwendet werden, eingestellt. Nach diesem Datum können Anwendungen, die API-Schlüssel verwenden, keine Livemetrikdaten mehr an Ihre Application Insights-Ressource senden. Die authentifizierte Telemetrieerfassung für das Streamen von Livemetriken an Application Insights muss mit der Microsoft Entra-Authentifizierung für Application Insights erfolgen.

Es ist möglich, benutzerdefinierte Filter zu testen, ohne einen authentifizierten Kanal einzurichten. Wählen Sie eins der Filtersymbole aus, und autorisieren Sie die verbundenen Server. Bei Auswahl dieser Option müssen Sie die verbundenen Server jedes Mal autorisieren, wenn eine neue Sitzung gestartet wird oder wenn ein neuer Server online geschaltet wird.

Warnung

Wir raten dringend davon ab, ungesicherte Kanäle zu verwenden, und werden diese Option sechs Monate, nachdem Sie mit deren Verwendung begonnen haben, deaktivieren. Im Dialogfeld Verbundene Server autorisieren wird das Datum angezeigt, nach dem diese Option deaktiviert wird.

Screenshot that shows the Authorize connected servers dialog.

Legacyoption: Erstellen eines API-Schlüssels

  1. Wählen Sie die Registerkarte API-Zugriff und dann API-Schlüssel erstellen aus.

    Screenshot that shows selecting the API Access tab and the Create API key button.

  2. Aktivieren Sie das Kontrollkästchen SDK-Steuerkanal authentifizieren, und wählen Sie dann Schlüssel generieren aus.

    Screenshot that shows the Create API key pane. Select Authenticate SDK control channel checkbox and then select Generate key.

Hinzufügen eines API-Schlüssels zur Konfiguration

Sie können einen API-Schlüssel zur Konfiguration für ASP.NET-, ASP.NET Core-, WorkerService- und Azure Functions-Apps hinzufügen.

Fügen Sie in der Datei Program.cs den folgenden Namespace hinzu:

using Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse;

Fügen Sie anschließend die folgende Dienstregistrierung hinzu:

// Existing code which includes services.AddApplicationInsightsTelemetry() to enable Application Insights.
builder.Services.ConfigureTelemetryModule<QuickPulseTelemetryModule> ((module, o) => module.AuthenticationApiKey = "YOUR-API-KEY-HERE");

Weitere Informationen zum Konfigurieren von ASP.NET Core-Anwendungen finden Sie unter Konfigurieren von Telemetriemodulen in ASP.NET Core.

WorkerService

Befolgen Sie für WorkerService-Anwendungen diese Anweisungen.

Fügen Sie den folgenden Namespace hinzu:

using Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse;

Fügen Sie als Nächstes die folgende Zeile vor dem Aufruf von services.AddApplicationInsightsTelemetryWorkerService hinzu:

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

Weitere Informationen zum Konfigurieren von WorkerService-Anwendungen finden Sie unter Konfigurieren von Telemetriemodulen in WorkerServices.

Azure Functions-Apps

Für Azure Functions-Apps (v2) können Sie den Kanal mit einem API-Schlüssel schützen, indem Sie eine Umgebungsvariable verwenden.

Erstellen Sie einen API-Schlüssel in Ihrer Application Insights-Ressource, und wechseln Sie zu Einstellungen>Konfiguration für Ihre Azure Functions-App. Wählen Sie Neue Anwendungseinstellung aus, und geben Sie den Namen APPINSIGHTS_QUICKPULSEAUTHAPIKEY sowie einen Wert entsprechend Ihrem API-Schlüssel ein.

Tabelle unterstützter Features

Sprache Grundlegende Metriken Leistungsmetriken Benutzerdefinierte Filterung Beispieltelemetrie CPU-Aufteilung nach Prozessen
.NET Framework Unterstützt (LTS) Unterstützt (LTS) Unterstützt (LTS) Unterstützt (LTS) Unterstützt (LTS)
.NET Core (target=.NET Framework) Unterstützt (LTS) Unterstützt (LTS) Unterstützt (LTS) Unterstützt (LTS) Unterstützt (LTS)
.NET Core (target=.NET Core) Unterstützt (LTS) Unterstützt* Unterstützt (LTS) Unterstützt (LTS) Nicht unterstützt
Azure Functions v2 Unterstützt Unterstützt Unterstützt Unterstützt Nicht unterstützt
Java Unterstützt (V2.0.0+) Unterstützt (V2.0.0+) Nicht unterstützt Unterstützt (V3.2.0 und höher) Nicht unterstützt
Node.js Unterstützt (V1.3.0+) Unterstützt (V1.3.0+) Nicht unterstützt Unterstützt (V1.3.0+) Nicht unterstützt
Python Nicht unterstützt Nicht unterstützt Nicht unterstützt Nicht unterstützt Nicht unterstützt

Grundlegende Metriken umfassen Anforderung, Abhängigkeit und Ausnahmerate. Leistungsmetriken (Leistungsindikatoren) umfassen Arbeitsspeicher und CPU. Beispieltelemetriedaten zeigen einen Datenstrom ausführlicher Informationen zu nicht erfolgreichen Anforderungen und Abhängigkeiten, Ausnahmen, Ereignissen und Ablaufverfolgungen.

PerfCounters-Unterstützung (Leistungsindikatoren) unterscheidet sich geringfügig zwischen .NET Core-Versionen, die nicht auf das .NET Framework abzielen:

  • PerfCounters-Metriken werden unterstützt, wenn sie in Azure App Service für Windows (ASP.NET Core SDK Version 2.4.1 oder höher) ausgeführt werden.
  • Bei Apps für .NET Core LTS oder höher werden Leistungsindikatoren unterstützt, wenn die App auf einem beliebigen Windows-Computer ausgeführt wird.
  • PerfCounters werden unterstützt, wenn die App auf einem beliebigen Computer (z. B. Linux, Windows, App Service für Linux oder Container) in der aktuellen Version ausgeführt wird, aber nur für Apps, die auf .NET Core LTS oder abzielen.

Problembehandlung

Von Live Metrics werden andere IP-Adressen verwendet als bei anderen Application Insights-Telemetriedaten. Stellen Sie sicher, dass diese IP-Adressen in Ihrer Firewall geöffnet sind. Vergewissern Sie sich außerdem, dass die ausgehenden Ports für Livemetriken in der Firewall Ihrer Server geöffnet sind.

Wie in der Ankündigung zur Azure TLS 1.2-Migration beschrieben, unterstützt Live Metrics jetzt nur TLS 1.2. Wenn Sie eine ältere Version von TLS verwenden, werden keine Livemetrikdaten angezeigt. Informationen zur Unterstützung der neueren TLS-Version durch Anwendungen, die auf .NET Framework 4.5.1 basieren, finden Sie unter Aktivieren von TLS 1.2 (Transport Layer Security) auf Clients: Configuration Manager.

Fehlende Konfiguration für .NET

  1. Überprüfen Sie, ob Sie die neueste Version des NuGet-Pakets Microsoft.ApplicationInsights.PerfCounterCollector verwenden.

  2. Bearbeiten Sie die Datei ApplicationInsights.config:

    • Überprüfen Sie, ob die Verbindungszeichenfolge auf die von Ihnen verwendete Application Insights-Ressource verweist.
    • Suchen Sie die Konfigurationsoption QuickPulseTelemetryModule. Ist diese nicht vorhanden, fügen Sie sie hinzu.
    • Suchen Sie die Konfigurationsoption QuickPulseTelemetryProcessor. Ist diese nicht vorhanden, fügen Sie sie hinzu.
    <TelemetryModules>
    <Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.
    QuickPulse.QuickPulseTelemetryModule, Microsoft.AI.PerfCounterCollector"/>
    </TelemetryModules>
    
    <TelemetryProcessors>
    <Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.
    QuickPulse.QuickPulseTelemetryProcessor, Microsoft.AI.PerfCounterCollector"/>
    </TelemetryProcessors>
    
  3. Starten Sie die Anwendung neu.

Statusmeldung „Der Zugriff auf die Daten ist vorübergehend nicht möglich“

Wenn Sie zu Livemetriken navigieren, wird möglicherweise ein Banner mit folgender Statusmeldung angezeigt: „Der Datenzugriff ist vorübergehend nicht möglich. Die Updates zu unserem Status werden hier https://aka.ms/aistatus veröffentlicht.

Folgen Sie dem Link zur Seite Azure Status und überprüfen Sie, ob ein aktiver Ausfall vorliegt, der Application Insights betrifft. Wenn kein Ausfall vorliegt, stellen Sie sicher, dass der Zugriff auf Livemetriken nicht durch Firewalls und Browsererweiterungen blockiert wird. Beispielsweise blockieren einige beliebte Ad-Blocker-Erweiterungen Verbindungen mit *.monitor.azure.com. Um den vollen Funktionsumfang von Livemetriken nutzen zu können, deaktivieren Sie entweder die Ad-Blocker-Erweiterung oder fügen Sie eine Ausschlussregel für die Domain *.livediagnostics.monitor.azure.com zu Ihrem Ad-Blocker, Ihrer Firewall usw. hinzu.

Unerwartet hohe Anzahl von Anforderungen an livediagnostics.monitor.azure.com

Application Insights-SDKs verwenden eine REST-API, um mit QuickPulse-Endpunkten zu kommunizieren, die Livemetriken für Ihre Webanwendung bereitstellen. Standardmäßig rufen die SDKs alle fünf Sekunden die Endpunkte ab, um zu überprüfen, ob Sie den Bereich Livemetriken im Azure-Portal anzeigen.

Wenn Sie den Bereich Livemetriken öffnen, wechseln die SDKs in einen Modus mit höherer Häufigkeit und senden jede Sekunde neue Metriken an QuickPulse. Dadurch können Sie Ihre Liveanwendung mit einer Latenz von 1 Sekunde überwachen und diagnostizieren, aber auch mehr Netzwerkdatenverkehr generieren. Um den normalen Datenverkehr wiederherzustellen, navigieren Sie aus dem Bereich Livemetriken.

Hinweis

Die REST-API-Aufrufe, die von den SDKs an QuickPulse-Endpunkte ausgeführt werden, werden von Application Insights nicht nachverfolgt und wirken sich nicht auf Ihre Abhängigkeitsaufrufe oder andere Metriken aus. Möglicherweise werden sie jedoch in anderen Netzwerküberwachungstools angezeigt.

Nächste Schritte