Acquisire e visualizzare i dati traceLogging

È possibile acquisire e visualizzare i dati di TraceLoggging usando le versioni interne più recenti di Windows Performance Tools (WPT). Prima di pubblicare la strumentazione, è necessario testare il codice del provider TraceLogging per assicurarsi che i dati dell'evento vengano generati e che vengano generati dati significativi al momento appropriato.

Il processo di verifica che la strumentazione sia corretta, prevede questi due passaggi:

  • Acquisire traccia con Windows Performance Recorder (wpr.exe o wprui.exe).
  • Visualizzare la traccia con windows analizzatore prestazioni (wpa.exe).

Nota Per Windows Phone, è anche possibile usare Tracelog.exe e Xperf.exe per acquisire traccia. Vedere "Per acquisire traccia sul telefono (usando Tracelog e XPerf)" di seguito.

Prerequisiti

Gli strumenti WPR e WPA devono essere compatibili con la versione di TraceLogging a cui si è collegati. Se non è possibile acquisire o decodificare gli eventi, potrebbe essere perché gli strumenti non corrispondono e non sono compatibili.

Per acquisire dati di traccia con WPR

  1. Creare o modificare un profilo WPR (con estensione wprp) per TraceLoggingProvider.

    È possibile usare l'esempio seguente. Salvare il contenuto in un file con l'estensione del nome file wprp. Sostituire le sezioni TODO con i valori appropriati per il provider. Ad esempio, se è stato registrato il provider da GUID, specificare il GUID in questo file.

    Nota Per i provider di modalità kernel, aggiungere NonPagedMemory="true" all'elemento Id EventProvider, vedere il commento nell'esempio XML seguente.

File WPRP di esempio:

<?xml version="1.0" encoding="utf-8"?>
<!-- TODO: 
1. Find and replace "WorkshopTraceLoggingProvider" with your component name.
2. See TODO below to update GUID for your event provider
-->
<WindowsPerformanceRecorder Version="1.0" Author="Microsoft Corporation" 
    Copyright="Microsoft Corporation" Company="Microsoft Corporation">
  <Profiles>
    <EventCollector Id="EventCollector_WorkshopTraceLoggingProvider" 
      Name="WorkshopTraceLoggingProviderCollector">
      <BufferSize Value="64" />
      <Buffers Value="4" />
    </EventCollector>

<!-- TODO: 
 1. Update Name attribute in EventProvider xml element with your provider GUID, 
    or if you specify an EventSource C# provider or call TraceLoggingRegister(...) 
    without a GUID, use star(*) before your provider name, 
    eg: Name="*MyEventSourceProvider" which will enable your provider appropriately.
 2. This sample lists more than 1 EventProvider xml element and references them again 
    in a Profile with EventProviderId xml element. For your component wprp, enable 
    the required number of providers and fix the Profile xml element appropriately
--> 
    <EventProvider Id="EventProvider_WorkshopTraceLoggingProvider" 
      Name="f9bc6c5d-4b98-43b5-90a1-1d0c8f45bf5a" />
<!-- For Kernel Mode providers, add NonPagedMemory="true" attribute to the 
  EventProvider Id element:

  Example:
  <EventProvider Id="EventProvider_UMDFReflector" 
    Name="263dd596-513b-4fd9-969c-022b691bb130" NonPagedMemory="true"/> 

-->

    <Profile Id="WorkshopTraceLoggingProvider.Verbose.File" 
      Name="WorkshopTraceLoggingProvider" Description="WorkshopTraceLoggingProvider" 
      LoggingMode="File" DetailLevel="Verbose">
      <Collectors>
        <EventCollectorId Value="EventCollector_WorkshopTraceLoggingProvider">
          <EventProviders>
<!-- TODO:
 1. Fix your EventProviderId with Value same as the Id attribute on EventProvider 
    xml element above
-->
            <EventProviderId Value="EventProvider_WorkshopTraceLoggingProvider" />
          </EventProviders>
        </EventCollectorId>
      </Collectors>
    </Profile>

    <Profile Id="WorkshopTraceLoggingProvider.Light.File" 
      Name="WorkshopTraceLoggingProvider" 
      Description="WorkshopTraceLoggingProvider" 
      Base="WorkshopTraceLoggingProvider.Verbose.File" 
      LoggingMode="File" 
      DetailLevel="Light" />

    <Profile Id="WorkshopTraceLoggingProvider.Verbose.Memory" 
      Name="WorkshopTraceLoggingProvider" 
      Description="WorkshopTraceLoggingProvider" 
      Base="WorkshopTraceLoggingProvider.Verbose.File" 
      LoggingMode="Memory" 
      DetailLevel="Verbose" />

    <Profile Id="WorkshopTraceLoggingProvider.Light.Memory" 
      Name="WorkshopTraceLoggingProvider" 
      Description="WorkshopTraceLoggingProvider" 
      Base="WorkshopTraceLoggingProvider.Verbose.File" 
      LoggingMode="Memory" 
      DetailLevel="Light" />

  </Profiles>
</WindowsPerformanceRecorder>
  1. Per i provider di modalità kernel, è necessario aggiungere l'attributo NonPagedMemory="true" all'elemento Id EventProvider.

    <EventProvider Id="EventProvider_myTraceLoggingProviderKM" 
      Name="263dd596-513b-4fd9-969c-022b691bb130" NonPagedMemory="true"/>
    
  2. Salvare il file con l'estensione del nome file (. WPRP).

  3. Avviare l'acquisizione usando WPR da una finestra del prompt dei comandi.

    <path to wpr>\wpr.exe -start GeneralProfile -start  yourTraceLoggingProvider.wprp
    

    GeneralProfile acquisisce gli eventi di sistema. Per il debug generale, è consigliabile acquisire eventi di sistema insieme agli eventi del provider.

  4. Eseguire lo scenario di test (caricare e scaricare il driver o il componente per attivare gli eventi).

  5. Arrestare l'acquisizione della traccia e unire tutte le registrazioni.

    <path to wpr>\wpr.exe -stop GeneralProfile -stop  yourTraceCaptureFile.etl description
    

È anche possibile usare l'interfaccia utente di Windows Performance Recorder (Wprui.exe) per raccogliere i dati di traccia.

<path to wpr>\wprui.exe
  1. Nella finestra WPR, se le opzioni sono nascoste, fare clic su Altre opzioni.
  2. Fare clic su Aggiungi profilo e passare al percorso del file con estensione wprp.
  3. Selezionare il file con estensione wprp e fare clic su Apri. WPR convalida lo schema XML del profilo.
  4. Fare clic su Avvia ed eseguire lo scenario di test.
  5. Fare clic su Salva per unire i risultati e salvarli in un file. Se si usa l'interfaccia utente WPR, è anche possibile aprire il file di log con estensione etl in WPA.

Per acquisire traccia sul telefono (usando Tracelog e XPerf)

  1. Avviare l'acquisizione di traccia del provider.

    cmdd tracelog '-start test -f c:\test.etl -guid #providerguid'
    
  2. Eseguire gli scenari di test per registrare gli eventi.

  3. Arrestare l'acquisizione della traccia.

    cmdd tracelog '-stop test'
    
  4. Unire i risultati della traccia.

    cmdd xperf -merge c:\test.etl c:\testmerged.etl
    
  5. Recuperare il file di log unito.

    getd c:\testmerged.etl
    

Visualizzare i dati di TraceLogging tramite WPA

Attualmente, WPA è l'unico visualizzatore che è possibile usare per visualizzare i file etl generati da TraceLogging.

  1. Avviare WPA.

    <path to wpr>\wpa.exe
    
  2. Caricare il file di traccia (con estensione etl).

  3. Visualizzare gli eventi del provider. In Graph Explorer espandere Attività di sistema.

  4. Fare doppio clic su Eventi generici per visualizzarli nella visualizzazione Analisi.

  5. Nella visualizzazione Analisi individuare gli eventi dal provider per verificare che la registrazione funzioni.

    Nella colonna Nome provider della tabella Eventi generici trovare e selezionare la riga con il nome del provider.

    È possibile fare clic sull'intestazione di colonna per ordinare in base al nome della colonna, che potrebbe rendere più semplice trovare il provider. Quando si trova il provider, fare clic con il pulsante destro del mouse sul nome e scegliere Filtra per selezione.