Rastreamento ETW
O exemplo do AnalyticTrace demonstra como implementar o rastreamento de Ponta a Ponta (E2E) usando o ETW (Rastreamento de Eventos para Windows) e o ETWTraceListener
que é fornecido com esse exemplo. O exemplo é baseado no Introdução e inclui o rastreamento ETW.
Observação
Os procedimentos de instalação e as instruções de compilação para esse exemplo estão localizadas no final deste tópico.
Este exemplo pressupõe que você esteja familiarizado com o Registro em log de mensagem e rastreamento.
Cada fonte de rastreamento no modelo de rastreamento System.Diagnostics pode ter vários ouvintes de rastreamento que determinam onde e como os dados são rastreados. O tipo de ouvinte define o formato no qual os dados de rastreamento são registrados. O exemplo de código a seguir mostra como adicionar o ouvinte à configuração.
<system.diagnostics>
<sources>
<source name="System.ServiceModel"
switchValue="Verbose,ActivityTracing"
propagateActivity="true">
<listeners>
<add type=
"System.Diagnostics.DefaultTraceListener"
name="Default">
<filter type="" />
</add>
<add name="ETW">
<filter type="" />
</add>
</listeners>
</source>
</sources>
<sharedListeners>
<add type=
"Microsoft.ServiceModel.Samples.EtwTraceListener, ETWTraceListener"
name="ETW" traceOutputOptions="Timestamp">
<filter type="" />
</add>
</sharedListeners>
</system.diagnostics>
Antes de usar esse ouvinte, uma Sessão de Rastreamento do ETW deve ser iniciada. Esta sessão pode ser iniciada usando Logman.exe ou Tracelog.exe. Um arquivo SetupETW.bat é incluído com este exemplo para que você possa configurar a Sessão de Rastreamento do ETW juntamente com um arquivo CleanupETW.bat para fechar a sessão e concluir o arquivo de log.
Observação
O procedimento de instalação e as instruções de compilação dessa amostra estão no final deste tópico. Para obter mais informações sobre essas ferramentas, consulte https://go.microsoft.com/fwlink/?LinkId=56580
Ao usar o ETWTraceListener, os rastreamentos são registrados em arquivos .etl binários. Com o rastreamento ServiceModel ativado, todos os rastreamentos gerados aparecem no mesmo arquivo. Use a Ferramenta Visualizador de rastreamento de serviço (SvcTraceViewer.exe) para exibir arquivos de log .etl e .svclog. O visualizador cria uma exibição de ponta a ponta do sistema que possibilita rastrear uma mensagem de sua origem até seu destino e ponto de consumo.
O Ouvinte de Rastreamento do ETW dá suporte ao registro em log circular. Para habilitar esse recurso, acesse Iniciar, Executar e digite cmd
para iniciar um console de comando. No comando a seguir, substitua o parâmetro <logfilename>
pelo nome do arquivo de log.
logman create trace Wcf -o <logfilename> -p "{411a0819-c24b-428c-83e2-26b41091702e}" -f bincirc -max 1000
As opções -f
e -max
são opcionais. Eles especificam o formato circular binário e o tamanho máximo do log de 1000 MB, respectivamente. A opção -p
é usada para especificar o provedor de rastreamento. Em nosso exemplo, "{411a0819-c24b-428c-83e2-26b41091702e}"
é o GUID para "Provedor de Exemplo de ETW XML".
Para iniciar a sessão, digite o comando a seguir.
logman start Wcf
Depois de concluir o registro em log, você poderá interromper a sessão com o comando a seguir.
logman stop Wcf
Esse processo gera logs circulares binários que você pode processar com sua ferramenta de escolha, incluindo a Ferramenta Visualizador de rastreamento de serviço (SvcTraceViewer.exe) ou Tracerpt.
Você também pode examinar o exemplo de Rastreamento Circular para obter mais informações sobre um ouvinte alternativo para executar o log circular.
Para configurar, compilar, e executar o exemplo
Verifique se você executou as Amostras de Procedimento de Instalação Única para o Windows Communication Foundation.
Para compilar a solução, siga as instruções contidas em Compilar as amostras do Windows Communication Foundation.
Observação
Para usar os comandos RegisterProvider.bat, SetupETW.bat e CleanupETW.bat, você deve executar em uma conta de administrador local. Se você estiver usando o Windows Vista ou posterior, também deverá executar o prompt de comando com privilégios elevados. Para fazer isso, clique com o botão direito do mouse no ícone do prompt de comando e clique em Executar como administrador.
Antes de executar o exemplo, execute RegisterProvider.bat no cliente e no servidor. Isso configura o arquivo ETWTracingSampleLog.etl resultante para gerar rastreamentos que podem ser lidos pelo Visualizador de Rastreamento de Serviço. Esse arquivo pode ser encontrado na pasta C:\logs. Se essa pasta não existir, ela deverá ser criada ou nenhum rastreamento será gerado. Em seguida, execute SetupETW.bat nos computadores cliente e servidor para iniciar a Sessão de Rastreamento do ETW. O arquivo SetupETW.bat pode ser encontrado na pasta CS\Client.
Para executar o exemplo em uma configuração de computador único ou entre computadores, siga as instruções em Como executar os exemplos do Windows Communication Foundation.
Quando o exemplo for concluído, execute CleanupETW.bat para concluir a criação do arquivo ETWTracingSampleLog.etl.
Abra o arquivo ETWTracingSampleLog.etl de dentro do Visualizador de Rastreamento de Serviço. Você será solicitado a salvar o arquivo formatado binário como um arquivo .svclog.
Abra o arquivo .svclog recém-criado no Visualizador de Rastreamento de Serviço para exibir os rastreamentos de ETW e ServiceModel.