Traccia ETW

L’esempio AnalyticTrace illustra come implementare la traccia End-to-End (E2E) utilizzando il sistema Event Tracing for Windows (ETW) e il ETWTraceListener fornito in questo esempio. L'esempio si basa sull’Introduzione e include la traccia ETW.

Nota

La procedura di installazione e le istruzioni di compilazione per questo esempio si trovano alla fine di questo argomento.

In questo esempio si presuppone che si abbia familiarità con Traccia e registrazione dei messaggi.

Ogni origine di traccia nel modello di traccia System.Diagnostics può essere dotata di più listener di traccia che determinano dove e come tracciare i dati. Il tipo di listener definisce il formato della registrazione dei dati di traccia. Nell'esempio di codice seguente viene illustrato come aggiungere il listener alla configurazione.

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

Prima di utilizzare questo listener, è necessario avviare una sessione di traccia ETW. Questa sessione può essere avviata utilizzando Logman.exe o Tracelog.exe. Questo esempio comprende un file SetupETW.bat che può essere utilizzato per configurare la sessione di traccia ETW e un file CleanupETW.bat che può essere utilizzato per chiudere la sessione e completare il file di log.

Nota

La procedura di installazione e le istruzioni di compilazione per questo esempio si trovano alla fine di questo argomento. Per ulteriori informazioni su questi strumenti, vedere https://go.microsoft.com/fwlink/?LinkId=56580

Quando si utilizza ETWTraceListener, le tracce vengono registrate in file .etl binari. Se la traccia ServiceModel è attivata, tutte le tracce generate vengono visualizzate nello stesso file. Usare lo strumento Visualizzatore di tracce dei servizi (SvcTraceViewer.exe) per visualizzare i file di log con estensione .etl e .svclog. Il visualizzatore crea una visualizzazione end-to-end del sistema che rende possibile tracciare un messaggio dall'origine alla destinazione e al punto di utilizzo.

Il listener di traccia ETW supporta i log circolari. Per abilitare questa funzionalità, passare a Start, Esegui e digitare cmd per avviare una console dei comandi. Nel comando seguente, sostituire il parametro <logfilename> con il nome del file di log.

logman create trace Wcf -o <logfilename> -p "{411a0819-c24b-428c-83e2-26b41091702e}" -f bincirc -max 1000

Le opzioni -f e -max sono facoltative. Specificano rispettivamente il formato circolare binario e la dimensione massima del log di 1000 MB. L'opzione -p viene utilizzata per specificare il provider di traccia. Nell'esempio "{411a0819-c24b-428c-83e2-26b41091702e}" è il GUID per un l'esempio di provider ETW XML.

Per avviare la sessione, digitare il comando seguente:

logman start Wcf

Una volta completato il log, è possibile interrompere la sessione con il comando seguente.

logman stop Wcf

Questo processo genera log circolari binari che è possibile elaborare con lo strumento preferito, incluso lo strumento Visualizzatore di tracce dei servizi (SvcTraceViewer.exe) o Tracerpt.

È anche possibile esaminare l'esempio di Analisi circolare per altre informazioni su un listener alternativo per eseguire la registrazione circolare.

Per impostare, compilare ed eseguire l'esempio

  1. Assicurarsi di aver eseguito la Procedura di installazione singola per gli esempi di Windows Communication Foundation.

  2. Per compilare la soluzione, seguire le istruzioni in Compilazione degli esempi di Windows Communication Foundation.

    Nota

    Per utilizzare i comandi RegisterProvider.bat, SetupETW.bat e CleanupETW.bat comandi, è necessario aver eseguito l'accesso con un account Administrator locale. Se si utilizza Windows Vista o la versione successiva, sarà inoltre necessario eseguire il prompt dei comandi con privilegi elevati. A tale scopo, fare clic con il pulsante destro del mouse sull'icona del prompt dei comandi, quindi scegliere Esegui come amministratore.

  3. Prima di eseguire l'esempio, eseguire RegisterProvider.bat nel client e nel server. In questo modo viene configurato il file ETWTracingSampleLog.etl risultante per generare tracce che possono essere lette da Service Trace Viewer. Questo file si trova nella cartella C:\log. Se questa cartella non esiste, deve essere creata o non verranno generate tracce. Eseguire quindi SetupETW.bat sui computer client e server per avviare la sessione di traccia ETW. Il file SetupETW.bat si trova nella cartella CS\Client.

  4. Per eseguire l'esempio in un solo computer o tra computer diversi, seguire le istruzioni in Esecuzione degli esempi di Windows Communication Foundation.

  5. Una volta completato l'esempio, eseguire CleanupETW.bat per completare la creazione del file ETWTracingSampleLog.etl.

  6. Aprire il file ETWTracingSampleLog.etl da Service Trace Viewer. Verrà richiesto di salvare il file binario formattato come un file .svclog.

  7. In Service Trace Viewer aprire il file .svclog creato per visualizzare le tracce ETW e ServiceModel.

Vedi anche