Ö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 utvecklingsinstallationer för en enda 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 att spåra meddelanden i Service Fabric. Några fördelar med att använda ETW är:
- ETW är snabbt. Den skapades 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 mellanlagrade med Service Fabric-systemspårningar. Det hjälper dig också att lättare förstå sekvenserna och sambanden mellan programkoden och händelserna 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 kan du gå vidare och följa 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.
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.
Varje händelse har standardinformation om metadata som talar om för dig vilken nod, program och tjänst händelsen kommer från. Du kan också filtrera listan över händelser med hjälp av rutan Filtrera händelser överst i händelsefönstret. Du kan till exempel filtrera efter nodnamn eller tjänstnamn. Och när du tittar på händelseinformation kan du också pausa med hjälp av knappen Pausa överst i händelsefönstret och återuppta senare utan förlust av 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
:
- Anropet
RunAsync
tillServiceEventSource.Current.ServiceMessage
i metoden visar ett exempel på en anpassad ETW-spårning från programkoden. - I filen ServiceEventSource.cs hittar du en överlagring för metoden
ServiceEventSource.ServiceMessage
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):
- Öppna filen "ProjectName" .cs där ProjectName är det namn du har valt för ditt Visual Studio-projekt.
- 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. - I fil 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. Kolla in de här artiklarna som beskriver de olika alternativen för verktygen och beskriver hur du kan konfigurera dem.