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ą kontynuowanie minimalnych zakłóceń w środowisku użytkownika przez usługi. Chociaż monitorowanie i diagnostyka mają krytyczne znaczenie w rzeczywistym wdrożonym środowisku produkcyjnym, wydajność będzie zależeć od wdrożenia podobnego modelu podczas opracowywania usług, aby zapewnić, że działają 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) to zalecana technologia śledzenia komunikatów w usłudze Service Fabric. Oto niektóre korzyści wynikające z korzystania z funkcji ETW:

  • EtW jest szybki. Został on 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 terrelationship 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 w uruchomieniu aplikacji z podglądem zdarzeń diagnostycznych z wyświetlonymi komunikatami śledzenia.

  1. Jeśli okno zdarzeń diagnostycznych nie jest automatycznie wyświetlane, 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ć w polu Nazwa węzła lub Nazwa usługi. Gdy patrzysz na szczegóły 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. W kodzie pokazano, jak dodać niestandardowe ślady ETW kodu aplikacji wyświetlane w przeglądarce ETW programu Visual Studio obok śladów systemu z usługi Service Fabric. Zaletą tej metody jest to, że metadane są automatycznie dodawane do śladów, a przeglądarka zdarzeń diagnostycznych programu Visual Studio jest już skonfigurowana 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 pokazuje RunAsync 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 pliku ActorEventSource.cs znajdziesz przeciążenie metody, która powinna być używana dla ActorEventSource.ActorMessage 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ą klawisza F5, przeglądarka zdarzeń diagnostycznych zostanie otwarta automatycznie.

Następne kroki

Ten sam kod śledzenia dodany do aplikacji powyżej do 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.