Dela via


Diagnostisk funktionalitet för tillståndskänsliga Reliable Services

Klassen Azure Service Fabric Stateful Reliable Services StatefulServiceBase genererar EventSource-händelser som kan användas för att felsöka tjänsten, ge insikter om hur körningen fungerar och hjälp med felsökning.

EventSource-händelser

EventSource-namnet för klassen Stateful Reliable Services StatefulServiceBase är "Microsoft-ServiceFabric-Services". Händelser från den här händelsekällan visas i fönstret Diagnostikhändelser när tjänsten debuggas i Visual Studio.

Exempel på verktyg och tekniker som hjälper dig att samla in och/eller visa EventSource-händelser är PerfView, Azure Diagnostics och Microsoft TraceEvent Library.

Händelser

Händelsenamn Händelse-ID Nivå Händelsebeskrivning
StatefulRunAsyncInvocation 1 Information Genereras när tjänstens RunAsync-uppgift startas
StatefulRunAsyncCancellation 2 Information Genereras när tjänstens RunAsync-uppgift avbryts
StatefulRunAsyncCompletion 3 Information Genereras när tjänstens RunAsync-uppgift är klar
StatefulRunAsyncSlowCancellation 4 Varning Genereras när tjänstens RunAsync-uppgift tar för lång tid att slutföra annulleringen
StatefulRunAsyncFailure 5 Fel Genereras när tjänsten RunAsync-uppgiften utlöser ett undantag

Tolka händelser

TillståndskänsligaRunAsyncInvocation-, StatefulRunAsyncCompletion- och StatefulRunAsyncCancellation-händelser är användbara för tjänstskrivaren för att förstå livscykeln för en tjänst samt tidpunkten för när en tjänst startar, avbryter eller slutförs. Den här informationen kan vara användbar när du felsöker tjänstproblem eller förstår tjänstens livscykel.

Tjänstförfattare bör vara noga med statefulRunAsyncSlowCancellation- och StatefulRunAsyncFailure-händelser eftersom de indikerar problem med tjänsten.

StatefulRunAsyncFailure genereras när tjänsten RunAsync() utlöser ett undantag. Ett undantag som utlöses indikerar vanligtvis ett fel eller en bugg i tjänsten. Dessutom gör undantaget att tjänsten misslyckas, så den flyttas till en annan nod. Den här åtgärden kan vara dyr och kan fördröja inkommande begäranden medan tjänsten flyttas. Tjänstförfattare bör fastställa orsaken till undantaget och, om möjligt, minimera det.

StatefulRunAsyncSlowCancellation genereras när en annulleringsbegäran för RunAsync-aktiviteten tar längre tid än fyra sekunder. När en tjänst tar för lång tid att slutföra annulleringen påverkas tjänstens möjlighet att snabbt startas om på en annan nod. Det här scenariot kan påverka tjänstens övergripande tillgänglighet.

Prestandaräknare

Reliable Services-körningen definierar följande kategorier för prestandaräknare:

Kategori beskrivning
Service Fabric Transactional Replicator Räknare som är specifika för Azure Service Fabric Transactional Replicator
Service Fabric TStore Räknare som är specifika för Azure Service Fabric TStore

Service Fabric Transactional Replicator används av Reliable State Manager för att replikera transaktioner inom en viss uppsättning repliker.

Service Fabric TStore är en komponent som används i Reliable Collections för att lagra och hämta nyckel/värde-par.

Windows Performance Monitor-programmet som är tillgängligt som standard i Windows-operativsystemet kan användas för att samla in och visa prestandaräknardata. Azure Diagnostics är ett annat alternativ för att samla in prestandaräknare och ladda upp dem till Azure-tabeller.

Instansnamn för prestandaräknare

Ett kluster som har ett stort antal tillförlitliga tjänster eller tillförlitliga tjänstpartitioner har ett stort antal instanser av prestandaräknare för transaktionsreplikatorer. Detta gäller även för TStore-prestandaräknare, men multipliceras också med antalet tillförlitliga ordlistor och tillförlitliga köer som används. Instansnamnen för prestandaräknaren kan hjälpa dig att identifiera den specifika partitionen, tjänstrepliken och tillståndsprovidern när det gäller TStore, som prestandaräknarens instans är associerad med.

Service Fabric Transactional Replicator-kategori

För kategorin Service Fabric Transactional Replicatorär räknarinstansnamnen i följande format:

ServiceFabricPartitionId:ServiceFabricReplicaId

ServiceFabricPartitionId är strängrepresentationen av service fabric-partitions-ID:t som prestandaräknarens instans är associerad med. Partitions-ID:t är ett GUID och dess strängrepresentation genereras med Guid.ToString formatspecificeraren "D".

ServiceFabricReplicaId är det ID som är associerat med en viss replik av en tillförlitlig tjänst. Replik-ID:t ingår i prestandaräknarens instansnamn för att säkerställa dess unika egenskaper och undvika konflikter med andra prestandaräknareinstanser som genereras av samma partition. Mer information om repliker och deras roll i tillförlitliga tjänster finns här.

Följande räknarinstansnamn är typiskt för en räknare under Service Fabric Transactional Replicator kategorin:

00d0126d-3e36-4d68-98da-cc4f7195d85e:131652217797162571

I föregående exempel 00d0126d-3e36-4d68-98da-cc4f7195d85e är strängrepresentationen av Service Fabric-partitions-ID:t och 131652217797162571 replik-ID: t.

Service Fabric TStore-kategori

För kategorin Service Fabric TStoreär räknarinstansnamnen i följande format:

ServiceFabricPartitionId:ServiceFabricReplicaId:StateProviderId_PerformanceCounterInstanceDifferentiator_StateProviderName

ServiceFabricPartitionId är strängrepresentationen av service fabric-partitions-ID:t som prestandaräknarens instans är associerad med. Partitions-ID:t är ett GUID och dess strängrepresentation genereras med Guid.ToString formatspecificeraren "D".

ServiceFabricReplicaId är det ID som är associerat med en viss replik av en tillförlitlig tjänst. Replik-ID:t ingår i prestandaräknarens instansnamn för att säkerställa dess unika egenskaper och undvika konflikter med andra prestandaräknareinstanser som genereras av samma partition. Mer information om repliker och deras roll i tillförlitliga tjänster finns här.

StateProviderId är det ID som är associerat med en tillståndsprovider i en tillförlitlig tjänst. Tillståndsproviderns ID ingår i prestandaräknarens instansnamn för att skilja en TStore från en annan.

PerformanceCounterInstanceDifferentiator är ett differentierande ID som är associerat med en prestandaräknareinstans inom en tillståndsprovider. Den här differentiatorn ingår i prestandaräknarens instansnamn för att säkerställa dess unika egenskaper och undvika konflikter med andra instanser av prestandaräknare som genereras av samma tillståndsprovider.

StateProviderName är namnet som är associerat med en tillståndsprovider i en tillförlitlig tjänst. Namnet på tillståndsprovidern ingår i prestandaräknarens instansnamn så att användarna enkelt kan identifiera vilket tillstånd det ger.

Följande räknarinstansnamn är typiskt för en räknare under Service Fabric TStore kategorin:

00d0126d-3e36-4d68-98da-cc4f7195d85e:131652217797162571:142652217797162571_1337_urn:MyReliableDictionary/dataStore

I föregående exempel 00d0126d-3e36-4d68-98da-cc4f7195d85e är strängrepresentationen av Service Fabric-partitions-ID: t, 131652217797162571 är replik-ID: t, 142652217797162571 är tillståndsproviderns ID och 1337 är differentieraren för prestandaräknarens instans. urn:MyReliableDictionary/dataStore är namnet på den tillståndsprovider som lagrar data för samlingen med namnet urn:MyReliableDictionary.

Prestandaräknare för transaktionsreplikator

Reliable Services-körningen genererar följande händelser under Service Fabric Transactional Replicator kategorin

Räknarens namn beskrivning
Påbörja Txn-åtgärder per sekund Antalet nya skrivtransaktioner som skapats per sekund.
Txn-åtgärder/s Antalet åtgärder för att lägga till/uppdatera/ta bort som utförs på tillförlitliga samlingar per sekund.
Logga töm byte per sekund Antalet byte som töms till disken av transaktionsreplikatorn per sekund
Begränsade åtgärder per sekund Antalet åtgärder som avvisas varje sekund av transaktionsreplikatorn på grund av begränsning.
Genomsnittlig transaktion ms/commit Genomsnittlig fördröjning för incheckning per transaktion i millisekunder
Genomsnittlig svarstid för tömning (ms) Genomsnittlig varaktighet för diskrensningsåtgärder som initierats av transaktionsreplikatorn i millisekunder

Prestandaräknare för TStore

Reliable Services-körningen genererar följande händelser under Service Fabric TStore kategorin

Räknarens namn beskrivning
Antal objekt Antalet objekt i arkivet.
Diskstorlek Den totala diskstorleken, i byte, för kontrollpunktsfiler för arkivet.
Kontrollpunktsfil, skrivbyte per sekund Antalet byte som skrivits per sekund för den senaste kontrollpunktsfilen.
Kopiera byte för disköverföring per sekund Antalet lästa diskbyte (på den primära repliken) eller skrivet (på en sekundär replik) per sekund under en butikskopia.

Nästa steg

EventSource-leverantörer i PerfView