Diagnostisera vanliga scenarier med Service Fabric
Den här artikeln illustrerar vanliga scenarier som användare har stött på när det gäller övervakning och diagnostik med Service Fabric. De scenarier som presenteras omfattar alla tre skikten av Service Fabric: Program, kluster och infrastruktur. Varje lösning använder Application Insights- och Azure Monitor-loggar, Azure-övervakningsverktyg, för att slutföra varje scenario. Stegen i varje lösning ger användarna en introduktion till hur de använder Application Insights- och Azure Monitor-loggar i samband med Service Fabric.
Krav och rekommendationer
Lösningarna i den här artikeln använder följande verktyg. Vi rekommenderar att du har konfigurerat följande:
- Application Insights med Service Fabric
- Aktivera Azure Diagnostics i klustret
- Konfigurera en Log Analytics-arbetsyta
- Log Analytics-agent för att spåra prestandaräknare
Hur kan jag se ohanterade undantag i mitt program?
Gå till din Application Insights-resurs som ditt program har konfigurerats med.
Välj Sök längst upp till vänster. Välj sedan filter på nästa panel.
Du ser många typer av händelser (spårningar, begäranden, anpassade händelser). Välj "Undantag" som filter.
Genom att klicka på ett undantag i listan kan du titta på mer information, inklusive tjänstkontexten om du använder Service Fabric Application Insights SDK.
Hur visar jag vilka HTTP-anrop som används i mina tjänster?
I samma Application Insights-resurs kan du filtrera på "begäranden" i stället för undantag och visa alla begäranden som görs
Om du använder Service Fabric Application Insights SDK kan du se en visuell representation av dina tjänster som är anslutna till varandra och antalet lyckade och misslyckade begäranden. Till vänster väljer du "Programkarta"
Mer information om programkartan finns i dokumentationen för Programkarta
Hur skapar jag en avisering när en nod slutar fungera
Nodhändelser spåras av service fabric-klustret. Gå till Service Fabric Analytics-lösningsresursen med namnet ServiceFabric(NameofResourceGroup)
Välj diagrammet längst ned på bladet med rubriken "Sammanfattning"
Här finns många grafer och paneler som visar olika mått. Välj ett av diagrammet så tar det dig till loggsökningen. Här kan du fråga efter eventuella klusterhändelser eller prestandaräknare.
Ange följande fråga. Dessa händelse-ID:er finns i referensen för Node-händelser
ServiceFabricOperationalEvent | where EventID >= 25622 and EventID <= 25626
Välj "Ny aviseringsregel" högst upp och när en händelse kommer baserat på den här frågan får du en avisering i din valda kommunikationsmetod.
Hur kan jag få aviseringar om återställningar av programuppgradering?
I samma loggsökningsfönster som tidigare anger du följande fråga för återställningar av uppgradering. Dessa händelse-ID:er finns under Referens för programhändelser
ServiceFabricOperationalEvent | where EventID == 29623 or EventID == 29624
Välj "Ny aviseringsregel" högst upp och när en händelse kommer baserat på den här frågan får du en avisering.
Hur ser jag containermått?
I samma vy med alla grafer ser du några paneler för dina containrars prestanda. Du behöver Log Analytics-agenten och containerövervakningslösningen för att dessa paneler ska fyllas i.
Kommentar
Om du vill instrumentera telemetri inifrån containern måste du lägga till Nuget-paketet Application Insights för containrar.
Hur kan jag övervaka prestandaräknare?
När du har lagt till Log Analytics-agenten i klustret måste du lägga till de specifika prestandaräknare som du vill spåra. Gå till Log Analytics-arbetsytans sida i portalen – från lösningssidan finns arbetsytefliken på den vänstra menyn.
När du är på arbetsytans sida väljer du "Avancerade inställningar" på samma vänstra meny.
Välj Data > Windows-prestandaräknare (Data > Linux-prestandaräknare för Linux-datorer) för att börja samla in specifika räknare från dina noder via Log Analytics-agenten. Här är exempel på formatet för räknare som ska läggas till
.NET CLR Memory(<ProcessNameHere>)\\# Total committed Bytes
Processor(_Total)\\% Processor Time
I snabbstarten är VotingData och VotingWeb de processnamn som används, så att spåra dessa räknare skulle se ut som
.NET CLR Memory(VotingData)\\# Total committed Bytes
.NET CLR Memory(VotingWeb)\\# Total committed Bytes
På så sätt kan du se hur infrastrukturen hanterar dina arbetsbelastningar och ange relevanta aviseringar baserat på resursanvändning. Du kanske till exempel vill ange en avisering om den totala processoranvändningen överskrider 90 % eller under 5 %. Räknarnamnet som du använder för detta är %-processortid. Du kan göra detta genom att skapa en aviseringsregel för följande fråga:
Perf | where CounterName == "% Processor Time" and InstanceName == "_Total" | where CounterValue >= 90 or CounterValue <= 5.
Hur spårar jag prestanda för mina Reliable Services och Actors?
Om du vill spåra prestanda för Reliable Services eller Actors i dina program bör du även samla in räknarna Service Fabric Actor, Actor Method, Service och Service Method. Här är exempel på tillförlitliga prestandaräknare för tjänster och aktörer att samla in
Kommentar
Prestandaräknare för Service Fabric kan för närvarande inte samlas in av Log Analytics-agenten, men kan samlas in av andra diagnostiklösningar
Service Fabric Service(*)\\Average milliseconds per request
Service Fabric Service Method(*)\\Invocations/Sec
Service Fabric Actor(*)\\Average milliseconds per request
Service Fabric Actor Method(*)\\Invocations/Sec
Kontrollera dessa länkar för den fullständiga listan över prestandaräknare på Reliable Services och Actors
Nästa steg
- Slå upp vanliga fel vid aktivering av kodpaket
- Konfigurera aviseringar i AI som ska meddelas om ändringar i prestanda eller användning
- Smart identifiering i Application Insights utför en proaktiv analys av telemetrin som skickas till AI för att varna dig om potentiella prestandaproblem
- Läs mer om aviseringar om Azure Monitor-loggar för att underlätta identifiering och diagnostik.
- För lokala kluster erbjuder Azure Monitor-loggar en gateway (HTTP Forward Proxy) som kan användas för att skicka data till Azure Monitor-loggar. Läs mer om det i Ansluta datorer utan Internetåtkomst till Azure Monitor-loggar med hjälp av Log Analytics-gatewayen
- Bekanta dig med loggsöknings - och frågefunktionerna som erbjuds som en del av Azure Monitor-loggar
- En detaljerad översikt över Azure Monitor-loggar och vad den erbjuder finns i Vad är Azure Monitor-loggar?