Śledzenie za pomocą funkcji ETW
W przykładzie AnalyticTrace pokazano, jak zaimplementować śledzenie end-to-end (E2E) przy użyciu śledzenia zdarzeń dla systemu Windows (ETW) i ETWTraceListener
który jest dostarczany z tym przykładem. Przykład jest oparty na przewodniku Wprowadzenie i zawiera śledzenie ETW.
Uwaga
Procedura konfiguracji i instrukcje kompilacji dla tego przykładu znajdują się na końcu tego tematu.
W tym przykładzie założono, że znasz śledzenie i rejestrowanie komunikatów.
Każde źródło śledzenia w System.Diagnostics modelu śledzenia może mieć wiele odbiorników śledzenia, które określają, gdzie i jak są śledzone dane. Typ odbiornika definiuje format, w którym rejestrowane są dane śledzenia. Poniższy przykładowy kod pokazuje, jak dodać odbiornik do konfiguracji.
<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>
Przed rozpoczęciem korzystania z tego odbiornika należy uruchomić sesję śledzenia ETW. Tę sesję można uruchomić przy użyciu Logman.exe lub Tracelog.exe. Plik SetupETW.bat jest dołączony do tego przykładu, aby można było skonfigurować sesję śledzenia ETW wraz z plikiem CleanupETW.bat w celu zamknięcia sesji i ukończenia pliku dziennika.
Uwaga
Procedura instalacji i instrukcje kompilacji dla tego przykładu znajdują się na końcu tego tematu. Aby uzyskać więcej informacji na temat tych narzędzi, zobacz https://go.microsoft.com/fwlink/?LinkId=56580
W przypadku korzystania z programu ETWTraceListener ślady są rejestrowane w plikach binarnych etl. Po włączeniu śledzenia modelu ServiceModel wszystkie wygenerowane ślady są wyświetlane w tym samym pliku. Użyj narzędzia podglądu śledzenia usługi (SvcTraceViewer.exe) do wyświetlania plików dziennika etl i svclog. Przeglądarka tworzy całościowy widok systemu, który umożliwia śledzenie komunikatu ze źródła do miejsca docelowego i punktu zużycia.
Odbiornik śledzenia ETW obsługuje rejestrowanie cykliczne. Aby włączyć tę funkcję, przejdź do pozycji Start, Uruchom i wpisz cmd
polecenie , aby uruchomić konsolę poleceń. W poniższym poleceniu zastąp <logfilename>
parametr nazwą pliku dziennika.
logman create trace Wcf -o <logfilename> -p "{411a0819-c24b-428c-83e2-26b41091702e}" -f bincirc -max 1000
Przełączniki -f
i -max
są opcjonalne. Określają one format binarny cykliczny i maksymalny rozmiar dziennika odpowiednio 1000 MB. Przełącznik -p
służy do określania dostawcy śledzenia. W naszym przykładzie "{411a0819-c24b-428c-83e2-26b41091702e}"
jest to identyfikator GUID "XML ETW Sample Provider".
Aby rozpocząć sesję, wpisz następujące polecenie.
logman start Wcf
Po zakończeniu rejestrowania możesz zatrzymać sesję za pomocą następującego polecenia.
logman stop Wcf
Ten proces generuje binarne dzienniki cykliczne, które można przetworzyć za pomocą wybranego narzędzia, w tym narzędzia podglądu śledzenia usług (SvcTraceViewer.exe) lub Tracerpt.
Możesz również przejrzeć przykład śledzenia cyklicznego, aby uzyskać więcej informacji na temat alternatywnego odbiornika do przeprowadzania rejestrowania cyklicznego.
Aby skonfigurować, skompilować i uruchomić przykład
Upewnij się, że wykonano procedurę instalacji jednorazowej dla przykładów programu Windows Communication Foundation.
Aby skompilować rozwiązanie, postępuj zgodnie z instrukcjami w temacie Building the Windows Communication Foundation Samples (Tworzenie przykładów programu Windows Communication Foundation).
Uwaga
Aby użyć RegisterProvider.bat, SetupETW.bat i CleanupETW.bat poleceń, należy uruchomić polecenie na koncie administratora lokalnego. Jeśli używasz systemu Windows Vista lub nowszego, musisz również uruchomić wiersz polecenia z podwyższonym poziomem uprawnień. W tym celu kliknij prawym przyciskiem myszy ikonę wiersza polecenia, a następnie kliknij polecenie Uruchom jako administrator.
Przed uruchomieniem przykładu uruchom RegisterProvider.bat na kliencie i serwerze. Spowoduje to skonfigurowanie wynikowego pliku ETWTracingSampleLog.etl w celu wygenerowania śladów, które można odczytać za pomocą przeglądarki śledzenia usługi. Ten plik można znaleźć w folderze C:\logs. Jeśli ten folder nie istnieje, musi zostać utworzony lub nie zostaną wygenerowane żadne ślady. Następnie uruchom SetupETW.bat na komputerach klienckich i serwerowych, aby rozpocząć sesję śledzenia ETW. Plik SetupETW.bat można znaleźć w folderze CS\Client.
Aby uruchomić przykład w konfiguracji pojedynczej lub między komputerami, postępuj zgodnie z instrukcjami w temacie Uruchamianie przykładów programu Windows Communication Foundation.
Po zakończeniu przykładu uruchom CleanupETW.bat, aby ukończyć tworzenie pliku ETWTracingSampleLog.etl.
Otwórz plik ETWTracingSampleLog.etl z poziomu przeglądarki śledzenia usługi. Zostanie wyświetlony monit o zapisanie pliku binarnego sformatowanego jako pliku svclog.
Otwórz nowo utworzony plik svclog z poziomu przeglądarki śledzenia usługi, aby wyświetlić ślady ETW i ServiceModel.