Compartilhar via


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

  1. Verifique se você executou as Amostras de Procedimento de Instalação Única para o Windows Communication Foundation.

  2. 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.

  3. 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.

  4. 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.

  5. Quando o exemplo for concluído, execute CleanupETW.bat para concluir a criação do arquivo ETWTracingSampleLog.etl.

  6. 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.

  7. Abra o arquivo .svclog recém-criado no Visualizador de Rastreamento de Serviço para exibir os rastreamentos de ETW e ServiceModel.

Confira também