Sdílet prostřednictvím


Přístup k datům trasování

.NET TraceProcessing je k dispozici z NuGetu s následujícím ID balíčku:

Microsoft.Windows.EventTracing.Processing.All

Tento balíček umožňuje přístup k datům v trasovacím souboru. Pokud ještě nemáte trasovací soubor, můžete ho vytvořit pomocí nástroje Windows Performance Recorder .

Následující příklad konzolové aplikace ukazuje, jak získat přístup k příkazovému řádku všech procesů obsažených v trasování:

using Microsoft.Windows.EventTracing;
using Microsoft.Windows.EventTracing.Processes;
using System;

class Program
{
    static void Main(string[] args)
    {
        if (args.Length != 1)
        {
            Console.Error.WriteLine("Usage: <trace.etl>");
            return;
        }

        using (ITraceProcessor trace = TraceProcessor.Create(args[0]))
        {
            IPendingResult<IProcessDataSource> pendingProcessData = trace.UseProcesses();

            trace.Process();

            IProcessDataSource processData = pendingProcessData.Result;

            foreach (IProcess process in processData.Processes)
            {
                Console.WriteLine(process.CommandLine);
            }
        }
    }
}

Použití TraceProcessoru

Chcete-li zpracovat trasu, zavolejte TraceProcessor.Create. Základní rozhraní je ITraceProcessor a použití tohoto rozhraní zahrnuje následující vzor:

  1. Nejprve řekněte zpracovateli, jaká data chcete použít z trasování.
  2. Za druhé, zpracujte trasování; a
  3. Nakonec přejděte k výsledkům.

Když procesoru řeknete, jaké druhy dat chcete mít předem, nemusíte ztrácet čas zpracováním velkých objemů všech možných druhů dat trasování. Místo toho TraceProcessor pouze provede práci potřebnou k poskytnutí konkrétních typů dat, která požadujete.

Pro použití s TraceProcessorem doporučujeme použít několik nastavení projektu:

  1. Doporučujeme spustit exe jako 64bitovou verzi.

    Výchozí nastavení ve Visual Studio pro novou konzolovou aplikaci C# .NET Framework je "Any CPU" s preferovaným nastavením 32bitové verze. Výchozí hodnota pro .NET už může obsahovat doporučené nastavení.

    Zpracování trasování může být náročné na paměť, zejména u větších trasování, a doporučujeme změnit cíl platformy na x64 (nebo zrušit zaškrtnutí políčka Preferovat 32bitovou verzi) v exe, které používají TraceProcessor. Pokud chcete tato nastavení změnit, podívejte se na kartu Sestavení v části Vlastnosti projektu. Chcete-li změnit tato nastavení pro všechny konfigurace, ujistěte se, že rozevírací seznam Konfigurace je nastavený na Všechny konfigurace, a ne na výchozí hodnotu pouze aktuální konfigurace.

  2. Doporučujeme použít NuGet s novějším režimem PackageReference místo staršího režimu packages.config.

    Pokud chcete změnit výchozí nastavení pro nové projekty, přečtěte si téma Nástroje, Správce balíčků NuGet, Nastavení Správce balíčků, Správa balíčků, Výchozí formát správy balíčků.

Předdefinované zdroje dat

Soubor .etl může zachytit mnoho druhů dat v trasování. Upozorňujeme, že data obsažená v souboru .etl závisí na tom, jaký zprostředkovatel byl povolen při zachycení trasování. Následující seznam ukazuje druhy trasovacích dat dostupných z TraceProcessoru:

Kód Popis Související položky WPA
sledovat.UseClassicEvents() Poskytuje klasické události ETW z trasování, které neobsahují informace o schématu. Obecná tabulka Událostí (pokud je typ události Classic nebo WPP)
sledování.UseConnectedStandbyData() Poskytuje data ze sledování o systému vstupujícím do a opouštějícím připojený pohotovostní režim. Souhrnná tabulka CS
trasování.UseCpuIdleStates() Poskytuje data z trasování o stavech C procesoru. Tabulka nečinných stavů procesoru (pokud je typ aktuální)
trasování.UseCpuSamplingData() Poskytuje data z trasování využití CPU na základě pravidelného vzorkování instrukčního ukazatele. Tabulka Využití procesoru (vzorkovaná)
stopa. UseCpuSchedulingData() Poskytuje data z trasovacího záznamu o plánování vláken CPU, včetně přepínání kontextu a událostí vláken připravených k použití. Tabulka Využití procesoru (přesné)
sledování.UseDevicePowerData() Poskytuje data z trasování o stavech D-zařízení. Tabulka stavu zařízení
stopa. UseDirectXData() Poskytuje data ze sledování o aktivitě DirectX. Tabulka využití GPU
traceUseDiskIOData() Poskytuje data z trasování o aktivitě vstupně-výstupních operací disku. Tabulka Využití disků
sled.UseEnergyEstimationData() Poskytuje data ze sledování o odhadované spotřebě energie pro jednotlivé procesy z Energy Estimation Engine. Tabulka shrnutí mechanismu odhadu energie (podle procesu)
stopa. UseEnergyMeterData() Poskytuje data ze sledování měřené spotřeby energie z rozhraní EMI (Energy Meter Interface). Tabulka motoru odhadu energie (by Emi)
sledovat.UseFileIOData() Poskytuje data ze záznamu o vstupně-výstupní aktivitě souboru. Tabulka vstupně-výstupních operací souborů
Trace.UseGenericEvents() Poskytuje manifestované a TraceLogging události ze sledování. Obecná tabulka Událostí (pokud je typ události manifestovaný nebo TraceLogging)
sledování.UseHandles() Poskytuje částečná data ze záznamu o aktivních popisovačích jádra. Úchyty tabulky
stopa. UseHardFaults() Poskytuje data ze sledování o chybách při načítání pevných stránek. Tabulka závažných chyb
trasování.UseHeapSnapshots() Poskytuje data ze sledování využití haldy procesu. Tabulka snímků haldy
Trace.UseHypercalls() Poskytuje data o Hyper-V hypervolacích, ke kterým došlo během trasování.
sleduj.UseImageSections() Poskytuje data z trasování částí obrázku. Sloupec Název oddílu tabulky Využití procesoru (vzorek)
trasování.UseInterruptHandlingData() Poskytuje data z trasování o aktivitě Interrupt Service Routine (ISR) a Deferred Procedure Call (DPC). Tabulka DPC/ISR
výpis.PoužijZnačky() Poskytuje značky (označené časová razítka) ze stopy. Označí tabulku
Sledujte.UseMemoryUtilizationData() Poskytuje data ze sledování o celkovém využití systémové paměti. Tabulka využití paměti
sledování. UseMetadata() Poskytuje metadata trasování dostupná bez dalšího zpracování. Konfigurace systému, trasování a obecné
stopa. UsePlatformIdleStates() Poskytuje data ze sledování o cílových a skutečných stavech nečinnosti platformy v systému. Tabulka stavu nečinnosti platformy
stopa. UsePoolAllocations() Poskytuje data ze sledování využití paměti fondu jádra. Souhrnná tabulka bazénu
sledovat.UsePowerConfigurationData() Poskytuje data ze sledování konfigurace napájení systému. Konfigurace systému, nastavení napájení
trasování.UsePowerDependencyCoordinatorData() Poskytuje data z trasování o fázích koordinátoru aktivní závislosti výkonu. Tabulka souhrnu fáze oznámení
sledovat.PoužítProcesy() Poskytuje data o procesech aktivních během trasování a o jejich obrazových souborech a souborech PDB. Tabulka procesů; Tabulka obrázků; Centrum symbolů
trasování.UseProcessorCounters() Poskytuje data ze sledování hodnot čítače výkonu procesoru pomocí nástroje Processor Counter Monitor (PCM).
Trace.UseProcessorFrequencyData() Poskytuje data z trasování o tom, jak často procesory běžely. Tabulka Frekvence procesoru (pokud je typ skutečný)
sledování.UseProcessorProfileData() Poskytuje data z trasování aktivního profilu výkonu procesoru. Tabulka Profilů procesoru
stopa. UseProcessorParkingData() Poskytuje data ze záznamu o tom, které procesory byly zaparkovány nebo odparkovány. Tabulka Stavu parkování procesoru
trasování.UseProcessorParkingLimits() Poskytuje data ze záznamu o maximálním povoleném počtu neparkovaných procesorů. Tabulka stavu omezení parkování jader
sledování.PoužítDataKvalitySlužbyProcesoru() Poskytuje data z trasování o kvalitě úrovně služeb pro každý procesor. Tabulka třídy Qos procesoru
Sledování.UseProcessorThrottlingData() Poskytuje data ze sledování o škrcení maximální frekvence procesoru. Tabulka omezení procesoru
stopa. UseReadyBootData() Poskytuje data z trasování o aktivitách předběžného načítání při spuštění z Ready Boot. Tabulka událostí Ready Boot
stopa. UseReferenceSetData() Poskytuje data z trasování stránek virtuální paměti používané každým procesem. Tabulka referenčních sad
sleduj.UseRegionsOfInterest() Poskytuje pojmenované oblasti intervalů zájmu z trasování, jak je uvedeno v konfiguračním souboru XML. Tabulka Oblastí zájmu
trasování.UseRegistryData() Poskytuje data o činnosti registru během sledování. Tabulka registru
stopa. UseResidentSetData() Poskytuje data z trasování o stránkách virtuální paměti pro jednotlivé procesy, které byly rezidentní ve fyzické paměti. Tabulka Rezidentní sada
trasování.UseRundownData() Poskytuje data z trasování o intervalech, během kterých probíhalo shromažďování dat z odstavení trasování. Stínované oblasti na časové ose grafu
stopa. UseScheduledTasks() Poskytuje data o určených úlohách, které se spustily během sledování. Tabulka Naplánované úkoly
sledování.UseServices() Poskytuje data o službách, které byly aktivní nebo měly svůj stav zaznamenaný během sledování. Tabulka služeb; Konfigurace systému, služby
sledování.UseStacks() Poskytuje data o zásobníkech zaznamenaných během trasování.
sledování.UseStackEvents() Poskytuje data o událostech spojených se zásobníky zaznamenanými během trasování. Tabulka zásobníků
sledování.UseStackTags() Poskytuje mapovač, který seskupuje zásobníky z trasování do značek zásobníku, jak je uvedeno v konfiguračním souboru XML. Sloupce, jako je značka zásobníku a zásobník (značky rámců)
sledování.UseSymbols() Poskytuje možnost načíst symboly pro trasování. Konfigurace cest symbolů; Načtení symbolů
stopa. UseSyscalls() Poskytuje data o systémových voláních, která se vyskytla během trasování. Tabulka Syscalls
trasování.UseSystemMetadata() Poskytuje obecná metadata pro celý systém z trasování. Konfigurace systému
sledování.UseSystemPowerSourceData() Poskytuje data ze sledování o aktivním zdroji energie systému (střídavý proud vs. stejnosměrný proud). Systémová tabulka zdroje napájení
trasovat.UseSystemSleepData() Poskytuje data z trasování o celkovém stavu napájení systému. Tabulka přechodu moci
PoužijCílovéStavyNečinnostiCentrálníhoProcesoru() Poskytuje data ze záznamu o C-stavech cílového procesoru. Tabulka stavy nečinnosti procesoru (pokud je typ target)
trace. UseTargetProcessorFrequencyData() Poskytuje data ze sledování o frekvencích cílových procesorů. Tabulka Frekvence procesoru (pokud je typ target)
stopa. UseThreads() Poskytuje data o aktivních vláknech během trasování. Tabulka Životnosti vláken
stopa. UseTraceStatistics() Poskytuje statistiky o událostech v trasování. Konfigurace systému, statistika trasování
trasování.UseUtcData() Poskytuje data ze sledování aktivity telemetrie Microsoftu pomocí univerzálního klienta telemetrie (UTC). Tabulka UTC
trasovat.UseWindowInFocus() Poskytuje data ze sledování o změnách aktivního okna uživatelského rozhraní v centru pozornosti. Okno v tabulce Focus
stopa. UseWindowsTracePreprocessorEvents() Poskytuje události preprocesoru softwarového trasování systému Windows (WPP) z trasování. Tabulka trasování WPP; Obecná tabulka Událostí (pokud je typ události WPP)
stopa. UseWinINetData() Poskytuje data ze sledování internetové aktivity prostřednictvím Windows Internet (WinINet). Stáhnout tabulku Podrobností
stopa. UseWorkingSetData() Poskytuje data ze sledování stránek virtuální paměti, které byly součástí pracovní sady pro jednotlivé procesy nebo kategorie jádra. Tabulka snímků virtuální paměti

Viz také rozšiřující metody na ITraceSource pro všechna dostupná trasovací data, nebo prozkoumejte metodu dostupnou z "trasování", kterou ukazuje IntelliSense.

Další kroky

V tomto přehledu jste zjistili, jak získat přístup k datům trasování pomocí TraceProcessoru a integrovaných zdrojů dat, ke kterým má přístup.

V dalším kroku se dozvíte, jak rozšířit TraceProcessor pro přístup k vlastním trasovacím datům.