Capturar e exibir dados do TraceLogging
Você pode capturar e exibir dados traceLoggging usando as versões internas mais recentes do WPT (Windows Performance Tools). Antes de publicar sua instrumentação, você deve testar o código do provedor TraceLogging para garantir que os dados de evento sejam gerados e que estão produzindo dados significativos nos momentos apropriados.
O processo de verificação de que a instrumentação está correta envolve estas duas etapas:
- Capturar rastreamento com o Gravador de Desempenho do Windows (wpr.exe ou wprui.exe).
- Exibir rastreamento com a Performance Analyzer do Windows (wpa.exe).
Nota Para Windows Phone, você também pode usar Tracelog.exe e Xperf.exe para capturar o rastreamento. Confira "Para capturar rastreamento no telefone (usando Tracelog e XPerf)" abaixo.
Pré-requisitos
As ferramentas WPR e WPA devem ser compatíveis com a versão do TraceLogging com a qual você está vinculado. Se você não conseguir capturar ou decodificar seus eventos, pode ser porque as ferramentas não correspondem e não são compatíveis.
Para capturar dados de rastreamento com WPR
Crie ou edite um perfil WPR (.wprp) para o TraceLoggingProvider.
Você pode usar o exemplo a seguir. Salve o conteúdo em um arquivo com a extensão de nome de arquivo .wprp. Substitua as seções TODO pelos valores apropriados para seu provedor. Por exemplo, se você registrou seu provedor por GUID, especifique o GUID neste arquivo.
Nota Para provedores de modo kernel, adicione NonPagedMemory="true" ao elemento EventProvider Id, consulte o comentário no exemplo XML a seguir.
Arquivo WPRP de exemplo:
<?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>
Para provedores de modo kernel, você precisa adicionar o atributo NonPagedMemory="true" ao elemento EventProvider Id.
<EventProvider Id="EventProvider_myTraceLoggingProviderKM" Name="263dd596-513b-4fd9-969c-022b691bb130" NonPagedMemory="true"/>
Salve o arquivo com a extensão de nome de arquivo (. WPRP).
Inicie a captura usando o WPR de uma janela do Prompt de Comando.
<path to wpr>\wpr.exe -start GeneralProfile -start yourTraceLoggingProvider.wprp
O GeneralProfile capturará eventos do sistema. Para depuração geral, é uma boa ideia capturar eventos do sistema junto com os eventos do seu provedor.
Execute o cenário de teste (carregue e descarregue o driver ou o componente para disparar eventos).
Interrompa a captura de rastreamento e mescle todas as gravações.
<path to wpr>\wpr.exe -stop GeneralProfile -stop yourTraceCaptureFile.etl description
Você também pode usar a interface do usuário do Windows Performance Recorder (Wprui.exe) para coletar dados de rastreamento.
<path to wpr>\wprui.exe
- Na janela WPR, se as opções estiverem ocultas, clique em Mais Opções.
- Clique em Adicionar Perfil e navegue até o local do arquivo .wprp.
- Selecione o arquivo .wprp e clique em Abrir. A WPR validará o esquema XML do seu perfil.
- Clique em Iniciar e execute o cenário de teste.
- Clique em Salvar para mesclar os resultados e salvá-los em um arquivo. Se você usar a interface do usuário do WPR, também será dada a opção de abrir o arquivo de log .etl no WPA.
Para capturar o rastreamento no telefone (usando Tracelog e XPerf)
Inicie a captura de rastreamento do provedor.
cmdd tracelog '-start test -f c:\test.etl -guid #providerguid'
Execute seus cenários de teste para registrar eventos em log.
Interromper a captura de rastreamento.
cmdd tracelog '-stop test'
Mesclar resultados de rastreamento.
cmdd xperf -merge c:\test.etl c:\testmerged.etl
Recupere o arquivo de log mesclado.
getd c:\testmerged.etl
Exibir dados do TraceLogging usando o WPA
Atualmente, o WPA é o único visualizador que você pode usar para exibir os arquivos etl que o TraceLogging produz.
Inicie o WPA.
<path to wpr>\wpa.exe
Carregue o arquivo de rastreamento (.etl).
Exiba os eventos do provedor. No Explorer do Graph, expanda Atividade do Sistema.
Clique duas vezes em Eventos Genéricos para exibi-los no modo de exibição Análise.
No modo de exibição Análise, localize os eventos do provedor para verificar se o registro em log está funcionando.
Na coluna Nome do Provedor da tabela Eventos Genéricos, localize e selecione a linha com o nome do provedor.
Você pode clicar no cabeçalho da coluna para classificar pelo nome da coluna, o que pode facilitar a localização do provedor. Ao localizar seu provedor, clique com o botão direito do mouse no nome e selecione Filtrar para Seleção.