Services controleren en diagnosticeren in een ontwikkelomgeving met lokale machines
Door services te bewaken, detecteren, diagnosticeren en problemen op te lossen, kunnen services de gebruikerservaring zo min mogelijk verstoren. Hoewel bewaking en diagnose essentieel zijn in een werkelijke geïmplementeerde productieomgeving, is de efficiëntie afhankelijk van het aannemen 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 ontwikkelconfiguraties met één machine als configuraties voor productieclusters in de echte wereld.
Gebeurtenistracering voor Windows
Event Tracing 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 echte clusterconfiguraties. Dit betekent dat u uw traceringscode niet opnieuw hoeft te schrijven wanneer u klaar bent om uw code te implementeren in een echt cluster.
- Service Fabric-systeemcode maakt ook gebruik van ETW voor interne tracering. Hiermee kunt u uw toepassingstraceringen bekijken die zijn gekoppeld aan Service Fabric-systeemtraceringen. Het helpt u ook om de reeksen en relaties tussen uw toepassingscode en gebeurtenissen in het onderliggende systeem gemakkelijker te begrijpen.
- Er is ingebouwde ondersteuning in Service Fabric Visual Studio-hulpprogramma's om ETW-gebeurtenissen weer te geven. 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 te helpen begrijpen wat er in het platform gebeurt. Als u dit nog niet hebt gedaan, gaat u verder met de stappen in Het maken van uw eerste toepassing in Visual Studio. Deze informatie helpt u om een toepassing aan de slag te laten gaan met de Viewer voor diagnostische gebeurtenissen met de traceringsberichten.
Als het venster diagnostische gebeurtenissen niet automatisch wordt weergegeven, gaat u naar het tabblad Beeld in Visual Studio, kiest u Andere Windows en vervolgens diagnostische gebeurtenissenviewer.
Elke gebeurtenis bevat standaardmetagegevens waarmee u het knooppunt, de toepassing en de service kunt zien van waaruit de gebeurtenis 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 de details van gebeurtenissen bekijkt, kunt u ook onderbreken met behulp van de knop Onderbreken boven aan het gebeurtenissenvenster en later hervatten zonder dat er gebeurtenissen verloren gaan.
Uw eigen aangepaste traceringen toevoegen aan de toepassingscode
De Service Fabric Visual Studio-projectsjablonen bevatten voorbeeldcode. De code laat zien hoe u ETW-traceringen voor aangepaste 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) zoekt u naar de RunAsync
implementatie:
- De aanroep in
ServiceEventSource.Current.ServiceMessage
deRunAsync
methode toont een voorbeeld van een aangepaste ETW-tracering uit de toepassingscode. - 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):
- Open het bestand ProjectName .cs waarin ProjectName de naam is die u hebt gekozen voor uw Visual Studio-project.
- Zoek de code
ActorEventSource.Current.ActorMessage(this, "Doing Work");
in de Methode DoWorkAsync . Dit is een voorbeeld van een aangepaste ETW-trace die is geschreven vanuit toepassingscode. - In 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 aan uw servicecode hebt toegevoegd, 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 met F5 opssport, 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 op een Azure-cluster. Bekijk deze artikelen waarin de verschillende opties voor de hulpprogramma's worden besproken en wordt beschreven hoe u deze kunt instellen.