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:

Hur kan jag se ohanterade undantag i mitt program?

  1. Gå till din Application Insights-resurs som ditt program har konfigurerats med.

  2. Välj Sök längst upp till vänster. Välj sedan filter på nästa panel.

    AI-översikt

  3. Du ser många typer av händelser (spårningar, begäranden, anpassade händelser). Välj "Undantag" som filter.

    AI-filterlista

    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.

    AI-undantag

Hur visar jag vilka HTTP-anrop som används i mina tjänster?

  1. 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

  2. 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"

    Bladet AI-appkartaAI-appkarta

    Mer information om programkartan finns i dokumentationen för Programkarta

Hur skapar jag en avisering när en nod slutar fungera

  1. Nodhändelser spåras av service fabric-klustret. Gå till Service Fabric Analytics-lösningsresursen med namnet ServiceFabric(NameofResourceGroup)

  2. Välj diagrammet längst ned på bladet med rubriken "Sammanfattning"

    Lösning för Azure Monitor-loggar

  3. 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.

  4. 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
    
  5. 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.

    Azure Monitor loggar ny avisering

Hur kan jag få aviseringar om återställningar av programuppgradering?

  1. 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
    
  2. 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.

Log Analytics-containermått

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?

  1. 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.

    Fliken Log Analytics-arbetsyta

  2. När du är på arbetsytans sida väljer du "Avancerade inställningar" på samma vänstra meny.

    Avancerade inställningar för Log Analytics

  3. 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

      Log Analytics Perf-räknare

  4. 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