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.
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.
Befolgen Sie die sprachspezifischen Richtlinien zum Aktivieren von Livemetriken:
- ASP.NET: Livemetriken sind standardmäßig aktiviert.
- ASP.NET Core: Livemetriken sind standardmäßig aktiviert.
- .NET-/.NET Core-Konsole bzw. -Worker: Livemetriken sind standardmäßig aktiviert.
- .NET-Anwendungen: Aktivieren Sie diese mithilfe von Code.
- Java: Livemetriken sind standardmäßig aktiviert.
- Node.js
Öffnen Sie im Azure-Portal die Application Insights-Ressource für Ihre App. Öffnen Sie dann Live Stream.
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:
- Installieren Sie das NuGet-Paket Microsoft.ApplicationInsights.PerfCounterCollector.
- 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.
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.
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.
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.
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.
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.
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.
Legacyoption: Erstellen eines API-Schlüssels
Wählen Sie die Registerkarte API-Zugriff und dann API-Schlüssel erstellen aus.
Aktivieren Sie das Kontrollkästchen SDK-Steuerkanal authentifizieren, und wählen Sie dann Schlüssel generieren aus.
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
Überprüfen Sie, ob Sie die neueste Version des NuGet-Pakets Microsoft.ApplicationInsights.PerfCounterCollector verwenden.
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>
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.