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