Övervaka och diagnostisera tjänster i en konfiguration för utveckling lokalt

Övervakning, identifiering, diagnostisering och felsökning gör det möjligt för tjänster att fortsätta med minimala störningar i användarupplevelsen. Övervakning och diagnostik är kritiska i en faktisk distribuerad produktionsmiljö, men effektiviteten beror på att en liknande modell används under utvecklingen av tjänster för att säkerställa att de fungerar när du övergår till en verklig konfiguration. Service Fabric gör det enkelt för tjänstutvecklare att implementera diagnostik som sömlöst kan fungera i både lokala utvecklingskonfigurationer för en enskild dator och konfigurationer av verkliga produktionskluster.

Händelsespårning för Windows

Händelsespårning för Windows (ETW) är den rekommenderade tekniken för spårning av meddelanden i Service Fabric. Några fördelar med att använda ETW är:

  • ETW är snabbt. Den har skapats som en spårningsteknik som har minimal inverkan på körningstiderna för kod.
  • ETW-spårning fungerar sömlöst i lokala utvecklingsmiljöer och även i verkliga klusterkonfigurationer. Det innebär att du inte behöver skriva om spårningskoden när du är redo att distribuera koden till ett riktigt kluster.
  • Service Fabric-systemkoden använder också ETW för intern spårning. På så sätt kan du visa dina programspårningar som är sammankopplade med Service Fabric-systemspårningar. Det hjälper dig också att lättare förstå sekvenser och samband mellan din programkod och händelser i det underliggande systemet.
  • Det finns inbyggt stöd i Service Fabric Visual Studio-verktyg för att visa ETW-händelser. ETW-händelser visas i vyn Diagnostikhändelser i Visual Studio när Visual Studio har konfigurerats korrekt med Service Fabric.

Visa Service Fabric-systemhändelser i Visual Studio

Service Fabric genererar ETW-händelser som hjälper programutvecklare att förstå vad som händer på plattformen. Om du inte redan har gjort det följer du stegen i Skapa ditt första program i Visual Studio. Den här informationen hjälper dig att få igång ett program med visningsprogrammet för diagnostikhändelser som visar spårningsmeddelandena.

  1. Om fönstret diagnostikhändelser inte visas automatiskt går du till fliken Visa i Visual Studio, väljer Andra Windows och sedan Visningsprogram för diagnostikhändelser.

  2. Varje händelse har standardinformation om metadata som talar om för dig vilken nod, vilket program och den tjänst som händelsen kommer från. Du kan också filtrera listan över händelser med hjälp av rutan Filterhändelser överst i händelsefönstret. Du kan till exempel filtrera på Nodnamn eller Tjänstnamn. Och när du tittar på händelseinformation kan du också pausa med hjälp av knappen Pausa längst upp i händelsefönstret och återuppta senare utan förlust av händelser.

    Visningsprogram för Visual Studio Diagnostics-händelser

Lägga till egna anpassade spårningar i programkoden

Service Fabric Visual Studio-projektmallarna innehåller exempelkod. Koden visar hur du lägger till ETW-spårningar för anpassad programkod som visas i Visual Studio ETW-visningsprogrammet tillsammans med systemspårningar från Service Fabric. Fördelen med den här metoden är att metadata läggs till automatiskt i spårningar, och Visual Studio Diagnostic Events Viewer har redan konfigurerats för att visa dem.

För projekt som skapats från tjänstmallarna (tillståndslösa eller tillståndskänsliga) söker du bara efter implementeringen RunAsync :

  1. Anropet RunAsync till ServiceEventSource.Current.ServiceMessage i metoden visar ett exempel på en anpassad ETW-spårning från programkoden.
  2. I filen ServiceEventSource.cs hittar du en överlagring för den ServiceEventSource.ServiceMessage metod som ska användas för händelser med hög frekvens på grund av prestandaskäl.

För projekt som skapats från aktörsmallarna (tillståndslösa eller tillståndskänsliga):

  1. Öppna filen "ProjectName".cs där ProjectName är det namn du valde för ditt Visual Studio-projekt.
  2. Hitta koden ActorEventSource.Current.ActorMessage(this, "Doing Work"); i metoden DoWorkAsync . Det här är ett exempel på en anpassad ETW-spårning som skrivits från programkoden.
  3. I filen ActorEventSource.cs hittar du en överlagring för metoden ActorEventSource.ActorMessage som ska användas för händelser med hög frekvens på grund av prestandaskäl.

När du har lagt till anpassad ETW-spårning i tjänstkoden kan du skapa, distribuera och köra programmet igen för att se dina händelser i visningsprogrammet för diagnostikhändelser. Om du felsöker programmet med F5 öppnas visningsprogrammet för diagnostikhändelser automatiskt.

Nästa steg

Samma spårningskod som du lade till i ditt program ovan för lokal diagnostik fungerar med verktyg som du kan använda för att visa dessa händelser när du kör ditt program i ett Azure-kluster. Läs de här artiklarna som beskriver de olika alternativen för verktygen och beskriver hur du kan konfigurera dem.