Monitor and diagnose services in a local machine development setup (Monitorowanie i diagnozowanie usług w konfiguracji środowiska deweloperskiego na maszynie lokalnej)

Monitorowanie, wykrywanie, diagnozowanie i rozwiązywanie problemów umożliwiają korzystanie z usług w celu kontynuowania minimalnej zakłóceń w środowisku użytkownika. Chociaż monitorowanie i diagnostyka mają kluczowe znaczenie w rzeczywistym wdrożonym środowisku produkcyjnym, wydajność będzie zależeć od wdrożenia podobnego modelu podczas opracowywania usług w celu zapewnienia, że działają one podczas przechodzenia do rzeczywistej konfiguracji. Usługa Service Fabric ułatwia deweloperom usług implementowanie diagnostyki, która może bezproblemowo działać zarówno w ramach konfiguracji programowania lokalnego pojedynczego komputera, jak i rzeczywistych konfiguracji klastra produkcyjnego.

Śledzenie zdarzeń systemu Windows

Śledzenie zdarzeń dla systemu Windows (ETW) jest zalecaną technologią do śledzenia komunikatów w usłudze Service Fabric. Oto niektóre korzyści wynikające z używania funkcji ETW:

  • EtW jest szybki. Został utworzony jako technologia śledzenia, która ma minimalny wpływ na czas wykonywania kodu.
  • Śledzenie ETW działa bezproblemowo w lokalnych środowiskach deweloperskich, a także w rzeczywistych konfiguracjach klastrów. Oznacza to, że nie musisz ponownie pisać kodu śledzenia, gdy wszystko będzie gotowe do wdrożenia kodu w rzeczywistym klastrze.
  • Kod systemu usługi Service Fabric używa również funkcji ETW do śledzenia wewnętrznego. Dzięki temu można wyświetlać ślady aplikacji przeplatane śladami systemu usługi Service Fabric. Ułatwia również zrozumienie sekwencji i zniechęcień między kodem aplikacji a zdarzeniami w systemie bazowym.
  • Istnieje wbudowana obsługa narzędzi programu Visual Studio usługi Service Fabric do wyświetlania zdarzeń ETW. Zdarzenia ETW są wyświetlane w widoku Zdarzenia diagnostyczne programu Visual Studio po poprawnym skonfigurowaniu programu Visual Studio z usługą Service Fabric.

Wyświetlanie zdarzeń systemowych usługi Service Fabric w programie Visual Studio

Usługa Service Fabric emituje zdarzenia ETW, aby ułatwić deweloperom aplikacji zrozumienie, co dzieje się na platformie. Jeśli jeszcze tego nie zrobiono, wykonaj kroki opisane w temacie Tworzenie pierwszej aplikacji w programie Visual Studio. Te informacje pomogą Ci uzyskać aplikację uruchomioną w Podglądzie zdarzeń diagnostycznych z wyświetlonymi komunikatami śledzenia.

  1. Jeśli okno zdarzeń diagnostycznych nie jest wyświetlane automatycznie, przejdź do karty Widok w programie Visual Studio, wybierz pozycję Inne okna , a następnie Podgląd zdarzeń diagnostycznych.

  2. Każde zdarzenie zawiera standardowe informacje o metadanych, które informują o węźle, aplikacji i usłudze, z której pochodzi zdarzenie. Listę zdarzeń można również filtrować, używając pola Filtruj zdarzenia w górnej części okna zdarzeń . Można na przykład filtrować według nazwy węzła lub nazwy usługi. Podczas przeglądania szczegółów zdarzenia możesz również wstrzymać, używając przycisku Wstrzymaj w górnej części okna zdarzeń i wznowić później bez utraty zdarzeń.

    Podgląd zdarzeń diagnostycznych programu Visual Studio

Dodawanie własnych niestandardowych śladów do kodu aplikacji

Szablony projektów programu Visual Studio usługi Service Fabric zawierają przykładowy kod. Kod pokazuje, jak dodać niestandardowe ślady ETW kodu aplikacji, które są wyświetlane w podglądzie ETW programu Visual Studio wraz ze śladami systemu z usługi Service Fabric. Zaletą tej metody jest to, że metadane są automatycznie dodawane do śladów, a podgląd zdarzeń diagnostycznych programu Visual Studio jest już skonfigurowany do ich wyświetlania.

W przypadku projektów utworzonych na podstawie szablonów usługi (bezstanowych lub stanowych) wystarczy wyszukać implementację RunAsync :

  1. Wywołanie metody ServiceEventSource.Current.ServiceMessage w metodzie RunAsync pokazuje przykład niestandardowego śledzenia ETW z kodu aplikacji.
  2. W pliku ServiceEventSource.cs znajdziesz przeciążenie ServiceEventSource.ServiceMessage metody, która powinna być używana dla zdarzeń o wysokiej częstotliwości ze względu na wydajność.

W przypadku projektów utworzonych na podstawie szablonów aktorów (bezstanowych lub stanowych):

  1. Otwórz plik "ProjectName".cs, w którym ProjectName jest nazwą wybraną dla projektu programu Visual Studio.
  2. Znajdź kod ActorEventSource.Current.ActorMessage(this, "Doing Work"); w metodzie DoWorkAsync . Jest to przykład niestandardowego śledzenia ETW napisanego z kodu aplikacji.
  3. W ActorEventSource.cs pliku znajdziesz przeciążenie ActorEventSource.ActorMessage metody, która powinna być używana dla zdarzeń o wysokiej częstotliwości ze względu na wydajność.

Po dodaniu niestandardowego śledzenia ETW do kodu usługi możesz skompilować, wdrożyć i uruchomić aplikację ponownie, aby wyświetlić zdarzenia w Podglądzie zdarzeń diagnostycznych. Jeśli debugujesz aplikację za pomocą F5, przeglądarka zdarzeń diagnostycznych zostanie otwarta automatycznie.

Następne kroki

Ten sam kod śledzenia dodany do aplikacji powyżej na potrzeby diagnostyki lokalnej będzie działał z narzędziami, których można użyć do wyświetlania tych zdarzeń podczas uruchamiania aplikacji w klastrze platformy Azure. Zapoznaj się z tymi artykułami, które omawiają różne opcje narzędzi i opisują sposób ich konfigurowania.