Services controleren en diagnosticeren in een ontwikkelomgeving met lokale machines

Met bewaking, detectie, diagnose en probleemoplossing kunnen services doorgaan met minimale onderbreking van de gebruikerservaring. Hoewel bewaking en diagnose essentieel zijn in een daadwerkelijk geïmplementeerde productieomgeving, is de efficiëntie afhankelijk van het gebruik van een vergelijkbaar model tijdens de ontwikkeling van services om ervoor te zorgen dat ze werken wanneer u overstapt op een echte installatie. Service Fabric maakt het eenvoudig voor serviceontwikkelaars om diagnostische gegevens te implementeren die naadloos kunnen werken in zowel lokale ontwikkelinstellingen met één machine als configuraties voor productieclusters in de praktijk.

Gebeurtenistracering voor Windows

Gebeurtenistracering voor Windows (ETW) is de aanbevolen technologie voor het traceren van berichten in Service Fabric. Enkele voordelen van het gebruik van ETW zijn:

  • ETW is snel. Het is gebouwd als traceringstechnologie die minimale invloed heeft op de uitvoeringstijden van code.
  • ETW-tracering werkt naadloos in lokale ontwikkelomgevingen en ook in echte clusterconfiguraties. Dit betekent dat u uw traceringscode niet opnieuw hoeft te schrijven wanneer u klaar bent om uw code in een echt cluster te implementeren.
  • Service Fabric-systeemcode maakt ook gebruik van ETW voor interne tracering. Hiermee kunt u uw toepassingstraceringen weergeven die zijn gekoppeld aan Service Fabric-systeemtraceringen. Het helpt u ook om de reeksen en onderlinge verbanden tussen uw toepassingscode en gebeurtenissen in het onderliggende systeem gemakkelijker te begrijpen.
  • Er is ingebouwde ondersteuning in Service Fabric Visual Studio-hulpprogramma's voor het weergeven van ETW-gebeurtenissen. ETW-gebeurtenissen worden weergegeven in de weergave Diagnostische gebeurtenissen van Visual Studio zodra Visual Studio correct is geconfigureerd met Service Fabric.

Service Fabric-systeemevenementen weergeven in Visual Studio

Service Fabric verzendt ETW-gebeurtenissen om toepassingsontwikkelaars inzicht te geven in wat er gebeurt in het platform. Als u dit nog niet hebt gedaan, gaat u verder en volgt u de stappen in Uw eerste toepassing maken in Visual Studio. Met deze informatie kunt u een toepassing aan de slag laten gaan met de Viewer voor diagnostische gebeurtenissen waarin de traceringsberichten worden weergegeven.

  1. Als het venster diagnostische gebeurtenissen niet automatisch wordt weergegeven, gaat u naar het tabblad Weergave in Visual Studio, kiest u Andere vensters en vervolgens Viewer voor diagnostische gebeurtenissen.

  2. Elke gebeurtenis bevat standaardgegevens over metagegevens die u vertellen van het knooppunt, de toepassing en de service waar de gebeurtenis van afkomstig is. U kunt de lijst met gebeurtenissen ook filteren met behulp van het vak Gebeurtenissen filteren boven aan het venster met gebeurtenissen. U kunt bijvoorbeeld filteren op Knooppuntnaam of Servicenaam. En wanneer u naar details van gebeurtenissen kijkt, kunt u ook pauzeren met behulp van de knop Onderbreken bovenaan het venster met gebeurtenissen en later hervatten zonder verlies van gebeurtenissen.

    Visual Studio Diagnostics Events Viewer

Uw eigen aangepaste traceringen toevoegen aan de toepassingscode

De Service Fabric Visual Studio-projectsjablonen bevatten voorbeeldcode. De code laat zien hoe u aangepaste ETW-traceringen voor toepassingscode toevoegt die worden weergegeven in de Visual Studio ETW-viewer, naast systeemtraceringen van Service Fabric. Het voordeel van deze methode is dat metagegevens automatisch worden toegevoegd aan traceringen en dat de Viewer voor diagnostische gebeurtenissen van Visual Studio al is geconfigureerd om deze weer te geven.

Voor projecten die zijn gemaakt op basis van de servicesjablonen (staatloos of stateful), hoeft u alleen maar te zoeken naar de RunAsync implementatie:

  1. De aanroep naar ServiceEventSource.Current.ServiceMessage in de RunAsync methode toont een voorbeeld van een aangepaste ETW-tracering uit de toepassingscode.
  2. In het bestand ServiceEventSource.cs vindt u een overbelasting voor de ServiceEventSource.ServiceMessage methode die moet worden gebruikt voor gebeurtenissen met een hoge frequentie vanwege prestatieredenen.

Voor projecten die zijn gemaakt op basis van de actorsjablonen (staatloos of stateful):

  1. Open het bestand ProjectName.cs , waarbij ProjectName de naam is die u hebt gekozen voor uw Visual Studio-project.
  2. Zoek de code ActorEventSource.Current.ActorMessage(this, "Doing Work"); in de methode DoWorkAsync . Dit is een voorbeeld van een aangepaste ETW-tracering die is geschreven op basis van toepassingscode.
  3. In het bestand ActorEventSource.cs vindt u een overbelasting voor de ActorEventSource.ActorMessage methode die moet worden gebruikt voor gebeurtenissen met een hoge frequentie vanwege prestatieredenen.

Nadat u aangepaste ETW-tracering hebt toegevoegd aan uw servicecode, kunt u de toepassing opnieuw bouwen, implementeren en uitvoeren om uw gebeurtenissen weer te geven in de Viewer voor diagnostische gebeurtenissen. Als u fouten in de toepassing opspoort met F5, wordt de Viewer voor diagnostische gebeurtenissen automatisch geopend.

Volgende stappen

Dezelfde traceringscode die u hierboven hebt toegevoegd aan uw toepassing voor lokale diagnostische gegevens, werkt met hulpprogramma's die u kunt gebruiken om deze gebeurtenissen weer te geven bij het uitvoeren van uw toepassing in een Azure-cluster. Bekijk deze artikelen waarin de verschillende opties voor de hulpprogramma's worden besproken en wordt beschreven hoe u deze kunt instellen.