Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Ereignisablaufverfolgung für Windows (ETW) ist die in Windows integrierte Kernel-Ablaufverfolgungsinfrastruktur, und eine ETL-Ablaufverfolgung kann Hunderte von Datentabellen umfassen, die CPU, Arbeitsspeicher, Datenträger, Netzwerk, Planung, Eingabe und andere Systemaktivitäten umfassen. Das ETW MCP ist ein Early-Preview-Feature, das ETW-Ablaufverfolgungsdaten mit GitHub Copilot oder jedem MCP-fähigen KI-Assistenten verbindet, sodass Sie ETL-Traces in natürlicher Sprache lesen, abfragen und analysieren können – genauso, wie es ein erfahrener Ingenieur tun würde. Keine Benutzeroberfläche erforderlich.
Der ETW MCP ist ein lokaler, headless Model Context Protocol (MCP)-Server. Anstatt rohe Ereignisse am Modell zu streamen, macht es eine Reihe von gut definierten Tools verfügbar: Verarbeiten einer Ablaufverfolgung, Liste verfügbarer Datenquellen, Abfrage CPU-Auslastung, Filtern nach Prozess oder Zeitraum, Aggregieren, Vergleichen von zwei Ablaufverfolgungen, Durchlaufen eines kritischen Pfads und vieles mehr. Es basiert auf derselben .NET TraceProcessing-Engine, die auch Windows Leistungsanalyse (WPA) und XPerf zugrunde liegt, sodass die Daten, die Sie vom MCP erhalten, dieselben Daten sind, die Sie auch in WPA sehen würden – nur für die Verarbeitung durch ein LLM aufbereitet.
Der ETW MCP ist der kopflose Begleiter von WPA MCP, der die gleiche KI-unterstützte Erfahrung innerhalb Windows Leistungsanalyse bringt. Dieselbe Datenschicht, kein WPA erforderlich, funktioniert überall, wo Sie Copilot oder jeden MCP-fähigen KI-Assistenten ausführen können.
Important
Das ETW MCP ist ein Early Preview-Feature. Verhalten, Verfügbarkeit, unterstützte Szenarien und Benutzererfahrung können sich vor der allgemeinen Verfügbarkeit ändern.
Ein kurzer Akronym-Spickzettel
Bevor Sie fortfahren, finden Sie hier ein paar Akronyme, die Sie überall sehen werden:
- ETW – Ereignisablaufverfolgung für Windows, die in Windows integrierte Ablaufverfolgungsinfrastruktur auf Kernelebene.
- ETL – die binäre Ablaufverfolgungsdatei (.etl), die von ETW ausgegeben wird.
- WPA – Windows Leistungsanalyse, die Benutzeroberfläche zum Untersuchen von ETL-Ablaufverfolgungen.
- WPR / XPerf – die Recorder, die ETL-Traces erzeugen.
- MCP – Model Context Protocol, der offene Standard, mit dem KI-Assistenten Tools wie diese aufrufen können. "MCP" wird auch häufig verwendet, um auf einen MCP-Server zu verweisen.
Aktuelle Unterstützung
Die aktuelle Early Preview-Version ist als NuGet-Paket Microsoft.Windows.EventTracing.MCP verfügbar und auf NuGet.org veröffentlicht. Sie ist mit GitHub Copilot und jedem MCP-fähigen Client kompatibel (VS Code, GitHub Copilot CLI sowie andere).
Ein Ein-Klick-Eintrag in der GitHub-MCP-Registrierung ist bald verfügbar. Bis dahin ist das Hinzufügen eines kleinen Konfigurationsblocks zur Konfigurationsdatei ihres MCP-Clients der unterstützte Pfad.
Warum ETW MCP verwenden?
Leistungsanalysen unter Windows erfordern Expertenwissen. Wenn Sie bereits wissen, welche WPA-Tabelle Ihre Frage beantwortet, bewegen Sie sich schnell. Wenn nicht, können Sie eine Stunde damit verbringen, sich in das Tool einzuarbeiten, bevor Sie irgendetwas über Ihren Trace erfahren.
Das ETW MCP trägt dazu bei, diese Komplexität zu reduzieren, indem es Ihnen Folgendes ermöglicht:
- Starten Sie eine Untersuchung mit einer Frage in natürlicher Sprache anstelle eines Tabellennamens.
- Führen Sie eine Triage eines Ordners mit Ablaufverfolgungen im Hintergrund durch, und ordnen Sie diese nach Priorität, bevor Sie eine davon öffnen.
- Vergleichen Sie einen Basisplan mit einer Testausführung, und fragen Sie nach den größten Deltas.
- Erhalten Sie Informationen auf module!function-Ebene zu Hot Stacks, wenn Symbole konfiguriert sind.
- Automatisieren Sie wiederholte Untersuchungen: derselbe Prompt für viele Traces, in CI oder per Skript.
Und weil es kopflos ist, verfasst es. Sie können es aus Windows-Terminal ausführen, ihn in einen agentischen Workflow ablegen oder von Ihrem eigenen Tool aus zusammen mit anderen MCP-Servern aufrufen.
Für wen das gedacht ist
- Softwareentwickler auf der Spur einer Regression oder eines langsamen Programmstarts.
- Treiberentwickelnde und Hardwarefachkräfte, die Profile für Energieverbrauch, Ruckler oder CPU-Kosten auf Treiberseite erstellen.
- Leistungsanalysefachkräfte, die bereits mit WPA arbeiten und einen schnelleren Einstieg wünschen.
- Teams, die Leistungsbegrenzungen in Batchläufen ausführen und eine in ihre Pipelines integrierte Ablaufverfolgungsanalyse wünschen.
- Jeder, der eine .etl-Datei auf dem Schreibtisch liegen hat und nicht sicher ist, wo er anfangen soll.
Voraussetzungen
Bevor Sie beginnen, stellen Sie sicher, dass Sie über Folgendes verfügen:
- Ein Windows Gerät.
- Das .NET 10 SDK (erforderlich für
dnx, mit dem der MCP-Server gestartet wird). - Ein MCP-fähiger Client, z. B. VS Code oder GitHub Copilot CLI, mit einem aktiven GitHub Copilot-Abonnement.
- Eine zu analysierende Trace-Datei (.etl).
Anmerkung
Genaue Einrichtungsanforderungen können während des Early Preview-Zeitraums variieren. Befolgen Sie die Vorschauversionshinweise oder Onboarding-Anweisungen, die mit Ihrem Build bereitgestellt werden.
ETW MCP installieren
Fügen Sie den ETW-Server zur MCP-Konfigurationsdatei Ihres Clients (VS Code, GitHub Copilot CLI oder einem beliebigen MCP-fähigen Client) hinzu, und starten Sie den Client neu.
{
"servers": {
"ETW": {
"type": "stdio",
"command": "dnx",
"args": [
"Microsoft.Windows.EventTracing.MCP",
"--yes"
]
}
}
}
Anmerkung
dnxerfordert das .NET 10 SDK. Wenn Ihr Client aus einem Ordner gestartet wird, dessen global.json ein älteres SDK anheftet, wird dnx nicht aufgelöst. Der einfachste Fix ist das Ausführen des MCP aus einem Ordner ohne global.json (oder eines, das .NET 10 zulässt).
Anmerkung
dnx stellt das Paket wieder her, indem alle NuGet-Quellen in der NuGet.Config auf Ihrem Computer abgefragt werden. Wenn eine davon ein privater oder authentifizierter Feed ist (z. B. ein Azure DevOps-pkgs.dev.azure.com-Feed), kann eine nicht interaktive Wiederherstellung mit einem Anmeldeinformationsfehler oder dem Fehler „Der Dienstindex kann nicht geladen werden“ fehlschlagen, obwohl sich das Paket selbst auf NuGet.org befindet. Wenn dieses Problem auftritt, fügen Sie der obigen Konfiguration ein --source-Argument hinzu, das auf den von Ihrer Organisation zugelassenen Feed verweist, zum Beispiel --source https://api.nuget.org/v3/index.json für NuGet.org oder den genehmigten internen Spiegel Ihres Unternehmens. Alternativ können Sie sich bei dem fehlerhaften Feed anmelden oder ihn mit dotnet nuget disable source vorübergehend deaktivieren.
Beispiel-Prompts
Die schnellste Möglichkeit zu verstehen, was das ETW MCP tun kann, besteht darin, echte Eingabeaufforderungen zu sehen. Der grundlegende Workflow ist der Prozess → untersuchen → Abfrage und beginnt in der Regel mit einer offenen Frage. Jede Anschlussfrage ist nur einen Prompt entfernt.
| Szenario | Beispielaufforderung |
|---|---|
| Bestandsnachverfolgung | Open <trace>.etl and tell me what processes were running. |
| CPU-Auslastung | Show me the top CPU consumers in this trace. |
| A/B-Vergleich | Process both <baseline>.etl and <trial>.etl and compare CPU usage for <process>. |
| Regionen + kritischer Pfad | Process <trace>.etl with <regions>.xml and show the end-to-end timeline, then run CPA on the biggest bottleneck. |
| Gründe für Kontextwechsel | Show me the context switch wait reasons for <process>. |
| Prozesslebenszyklus | Show me the process lifecycle timeline for <process>. |
| Zeitfensterfokus | Focus on <t0> to <t1> and tell me what dominated CPU and what threads were waiting on. |
| Batch-Rangfolge | Open every .etl in <folder>, find <region> in each, and rank them by duration. |
Verarbeiten Sie für A/B-Vergleiche zwei Ablaufverfolgungen, und stellen Sie eine Frage, um ein Delta zu erhalten, z. B. „der Zielprozess verwendet ~57 % mehr CPU-Zeit, aber das System verfügt über 36 % weniger Kontextwechsel“. Übergeben Sie für den Showcase-Workflow den MCP ein Regions-XML (benannte Zeitintervalle, die von ETW-Ereignissen definiert sind), um ein echtes End-to-End-Szenario zu durchlaufen. Führen Sie dann einen Drilldown in die langsamste Region mit der kritischen Pfadanalyse durch, alles in einem Prompt.
Überprüfen Sie die Copilot-Ergebnisse
Der MCP fungiert als Kontext- und Datenabrufschicht und verankert Antworten in realen ETW-Daten, doch die Schlussfolgerung auf Grundlage dieser Daten stammt weiterhin von einem Large Language Model (LLM). Die Antworten können zwischen verschiedenen Ausführungen variieren. Behandeln Sie Copilot Analyse als vom Assistenten generierten Ausgangspunkt, nicht als endgültige Diagnose.
Bei Verwendung des ETW MCP:
- Validieren Sie die Ergebnisse anhand der zugrunde liegenden Ablaufverfolgungsdaten.
- Überprüfen Sie die Tabellen, Diagramme, Zeitbereiche und Aufrufstapel, auf die in der Analyse verwiesen wird.
- Verwenden Sie Nachverfolgungsaufforderungen, um nach unterstützenden Nachweisen zu fragen. Da jede Aussage, die das Modell macht, durch einen Toolaufruf anhand der Ablaufverfolgung belegt ist, ist „Zeig mir den Nachweis“ immer eine gültige Folgeäußerung.
- Bestätigen Sie Schlussfolgerungen, bevor Sie Engineering-, Produkt- oder Freigabeentscheidungen treffen.
Important
LLM-generierte Analyse kann unvollständig oder falsch sein. Überprüfen Sie immer wichtige Ergebnisse anhand der Ablaufverfolgung, bevor Sie Maßnahmen ergreifen.
Bekannte Einschränkungen in der Early Preview
- Dies ist eine frühe externe Version, und die Funktionen werden noch erweitert.
- Ein MCP-fähiger Client mit einem aktiven GitHub Copilot-Abonnement ist erforderlich.
- Die Antworten können zwischen verschiedenen Durchläufen aufgrund der Natur von LLMs variieren.
- Einige Analysen erfordern möglicherweise Nachverfolgungsaufforderungen, um den Zeitraum, den Prozess, den Thread oder das Subsystem einzuschränken.
- Das Featureverhalten und die verfügbaren Tools können sich während des Early Preview-Zeitraums ändern.
Troubleshooting
| Issue | Was soll überprüft werden? |
|---|---|
| Der MCP-Server wird nicht gestartet. | Vergewissern Sie sich, dass das .NET 10 SDK installiert ist und dass dnx in einem Ordner ohne eine in Konflikt stehende global.json aufgelöst wird. |
| Fehler bei der Paketwiederherstellung | Wenn ein privater oder authentifizierter NuGet-Feed die Wiederherstellung blockiert, fügen Sie ein --source-Argument hinzu, das auf einen zugelassenen Feed verweist, oder authentifizieren Sie sich bei der fehlerhaften Quelle oder deaktivieren Sie sie. |
| Copilot reagiert nicht | Vergewissern Sie sich, dass der ETW-Server in Ihrer MCP-Konfiguration aufgeführt ist, der Client neu gestartet wurde und Ihr Copilot Abonnement aktiv ist. |
| Die Antwort ist zu breit | Stellen Sie eine spezifischere Frage, die das Symptom, den Zeitraum, den Prozess oder das Subsystem enthält. |
| Die Antwort scheint falsch zu sein. | Gleichen Sie das Ergebnis mit der Ablaufverfolgung ab, und fragen Sie Copilot nach den Daten oder Belegen hinter der Schlussfolgerung. |
ETW MCP vs. WPA MCP: Welches verwende ich?
Beide verwenden dieselbe Datenschicht, und die von ihnen erzeugte Analyse ist weitgehend identisch. Der Unterschied besteht darin, wo sie ausgeführt werden:
- ETW MCP ist kopflos. Es ist kein WPA-Fenster erforderlich. Ideal für terminalbasierte Workflows, Batch-Analysen, CI-Pipelines, IDEs wie VS Code und überall dort, wo Sie die Trace-Analyse per Skript automatisieren möchten.
- WPA MCP ist in WPA integriert und führt Schlussfolgerungen auf Grundlage der verarbeiteten Tabellen durch. Am besten, wenn Sie die Ergebnisse der KI mit Diagrammen und Tabellen verknüpfen möchten, die Sie auf der Benutzeroberfläche sehen können.
Verwenden Sie das ETW MCP bei Untersuchungen. Verwenden Sie den WPA MCP, wenn Sie die Ergebnisse mit einem KI-Assistenten genauer analysieren möchten. Verwenden Sie beides, wenn Sie eine und dann die andere tun möchten.
Ein Fehler gefunden? Haben Sie Feedback?
Dies ist eine frühe externe Version, und wir möchten von Ihnen hören. Melden Sie Issues, Fehler und Funktionsanfragen für das Repository microsoft/eventtracing-processing auf GitHub – also an derselben Stelle, wo auch die Microsoft.Windows.EventTracing.* NuGet-Pakete verwaltet werden, auf denen das MCP basiert.
Wir interessieren uns besonders für:
- Prompts, die unerwartet gut (oder unerwartet schlecht) funktioniert haben.
- Szenarien, von denen Sie sich wünschen, dass der MCP sie von Haus aus versteht.
- Größen und Formen identifizieren, die den MCP-Server belasten.
- Orte, an denen der MCP weitere unterstützende Nachweise verfügbar machen sollte.