Share via


Diagnosefunctionaliteit voor Stateful Reliable Services

De Stateful Reliable Services Stateful Services Stateful ServiceBase-klasse van Azure Service Fabric verzendt EventSource-gebeurtenissen die kunnen worden gebruikt om fouten in de service op te sporen, inzicht te geven in de werking van de runtime en hulp bij het oplossen van problemen.

EventSource-gebeurtenissen

De EventSource-naam voor de stateful Reliable Services StatefulServiceBase-klasse is 'Microsoft-ServiceFabric-Services'. Gebeurtenissen uit deze gebeurtenisbron worden weergegeven in het venster Diagnostische gebeurtenissen wanneer de service fouten opspoort in Visual Studio.

Voorbeelden van hulpprogramma's en technologieën die helpen bij het verzamelen en/of weergeven van EventSource-gebeurtenissen zijn PerfView, Azure Diagnostics en de Microsoft TraceEvent Library.

Gebeurtenissen

Gebeurtenisnaam Gebeurtenis-id Niveau Gebeurtenisbeschrijving
StatefulRunAsyncInvocation 1 Informatief Verzonden wanneer de runAsync-taak van de service wordt gestart
StatefulRunAsyncCancellation 2 Informatief Verzonden wanneer de runAsync-taak van de service wordt geannuleerd
StatefulRunAsyncCompletion 3 Informatief Verzonden wanneer de runAsync-taak van de service is voltooid
StatefulRunAsyncSlowCancellation 4 Waarschuwing Verzonden wanneer de runAsync-taak van de service te lang duurt om de annulering te voltooien
StatefulRunAsyncFailure 5 Fout Verzonden wanneer de runAsync-taak van de service een uitzondering genereert

Gebeurtenissen interpreteren

StatefulRunAsyncInvocation, StatefulRunAsyncCompletion en StatefulRunAsyncCancellation-gebeurtenissen zijn handig voor de serviceschrijver om inzicht te krijgen in de levenscyclus van een service, evenals de tijdsinstellingen voor wanneer een service wordt gestart, geannuleerd of voltooid. Deze informatie kan nuttig zijn bij het opsporen van fouten in serviceproblemen of het begrijpen van de levenscyclus van de service.

Serviceschrijvers moeten goed letten op StatefulRunAsyncSlowCancellation- en StatefulRunAsyncFailure-gebeurtenissen omdat ze problemen met de service aangeven.

StatefulRunAsyncFailure wordt verzonden wanneer de taak RunAsync() van de service een uitzondering genereert. Een uitzondering die is gegenereerd, duidt meestal op een fout of fout in de service. Bovendien zorgt de uitzondering ervoor dat de service mislukt, dus wordt deze verplaatst naar een ander knooppunt. Deze bewerking kan duur zijn en kan binnenkomende aanvragen vertragen terwijl de service wordt verplaatst. Serviceschrijvers moeten de oorzaak van de uitzondering bepalen en, indien mogelijk, beperken.

StatefulRunAsyncSlowCancellation wordt verzonden wanneer een annuleringsaanvraag voor de RunAsync-taak langer duurt dan vier seconden. Wanneer het annuleren van een service te lang duurt, is dit van invloed op de mogelijkheid van de service om snel opnieuw te worden opgestart op een ander knooppunt. Dit scenario kan van invloed zijn op de algehele beschikbaarheid van de service.

Prestatiemeteritems

De Reliable Services-runtime definieert de volgende prestatiemeteritemscategorieën:

Categorie Beschrijving
Transactionele Replicator van Service Fabric Prestatiemeteritems die specifiek zijn voor de Transactionele Replicator van Azure Service Fabric
Service Fabric TStore Prestatiemeteritems die specifiek zijn voor de Azure Service Fabric TStore

De Service Fabric Transactional Replicator wordt door Reliable State Manager gebruikt om transacties binnen een bepaalde set replica's te repliceren.

De Service Fabric TStore is een onderdeel dat wordt gebruikt in Reliable Collections voor het opslaan en ophalen van sleutel-waardeparen.

De Windows Performance Monitor-toepassing die standaard beschikbaar is in het Windows-besturingssysteem, kan worden gebruikt om prestatiemeteritems te verzamelen en weer te geven. Azure Diagnostics is een andere optie voor het verzamelen van prestatiemeteritems en het uploaden ervan naar Azure-tabellen.

Namen van exemplaren van prestatiemeteritems

Een cluster met een groot aantal betrouwbare services of betrouwbare servicepartities heeft een groot aantal exemplaren van transactionele replicatorprestaties. Dit is ook het geval voor TStore-prestatiemeteritems, maar wordt ook vermenigvuldigd met het aantal betrouwbare woordenlijsten en betrouwbare wachtrijen dat wordt gebruikt. De namen van de prestatiemeteritems kunnen helpen bij het identificeren van de specifieke partitie, servicereplica en statusprovider in het geval van TStore, waaraan het prestatiemeteritemexemplaar is gekoppeld.

Service Fabric Transactional Replicator category

Voor de categorie Service Fabric Transactional Replicatorhebben de namen van de tellerexemplaren de volgende indeling:

ServiceFabricPartitionId:ServiceFabricReplicaId

ServiceFabricPartitionId is de tekenreeksweergave van de Service Fabric-partitie-id waaraan het prestatiemeteritemexemplaar is gekoppeld. De partitie-id is een GUID en de tekenreeksweergave wordt gegenereerd Guid.ToString met de notatieaanduiding D.

ServiceFabricReplicaId is de id die is gekoppeld aan een bepaalde replica van een betrouwbare service. De replica-id wordt opgenomen in de naam van het exemplaar van het prestatiemeteritem om de uniekheid ervan te garanderen en conflict te voorkomen met andere exemplaren van prestatiemeteritems die door dezelfde partitie worden gegenereerd. Meer informatie over replica's en hun rol in betrouwbare services vindt u hier.

De volgende naam van het itemexemplaren is typisch voor een teller onder de Service Fabric Transactional Replicator categorie:

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

In het voorgaande voorbeeld 00d0126d-3e36-4d68-98da-cc4f7195d85e is de tekenreeksweergave van de Service Fabric-partitie-id en 131652217797162571 de replica-id.

Categorie Service Fabric TStore

Voor de categorie Service Fabric TStorehebben de namen van de tellerexemplaren de volgende indeling:

ServiceFabricPartitionId:ServiceFabricReplicaId:StateProviderId_PerformanceCounterInstanceDifferentiator_StateProviderName

ServiceFabricPartitionId is de tekenreeksweergave van de Service Fabric-partitie-id waaraan het prestatiemeteritemexemplaar is gekoppeld. De partitie-id is een GUID en de tekenreeksweergave wordt gegenereerd Guid.ToString met de notatieaanduiding D.

ServiceFabricReplicaId is de id die is gekoppeld aan een bepaalde replica van een betrouwbare service. De replica-id wordt opgenomen in de naam van het exemplaar van het prestatiemeteritem om de uniekheid ervan te garanderen en conflict te voorkomen met andere exemplaren van prestatiemeteritems die door dezelfde partitie worden gegenereerd. Meer informatie over replica's en hun rol in betrouwbare services vindt u hier.

StateProviderId is de id die is gekoppeld aan een statusprovider binnen een betrouwbare service. De id van de statusprovider wordt opgenomen in de naam van het exemplaar van het prestatiemeteritem om een TStore van een andere te onderscheiden.

PerformanceCounterInstanceDifferentiator is een differentiërende id die is gekoppeld aan een exemplaar van een prestatiemeteritem binnen een statusprovider. Deze differentiator wordt opgenomen in de naam van het exemplaar van het prestatiemeteritem om de uniekheid ervan te garanderen en conflict te voorkomen met andere exemplaren van prestatiemeteritems die zijn gegenereerd door dezelfde statusprovider.

StateProviderName is de naam die is gekoppeld aan een statusprovider binnen een betrouwbare service. De naam van de statusprovider wordt opgenomen in de exemplaarnaam van het prestatiemeteritem voor gebruikers om eenvoudig te bepalen welke status deze biedt.

De volgende naam van het itemexemplaren is typisch voor een teller onder de Service Fabric TStore categorie:

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

In het voorgaande voorbeeld 00d0126d-3e36-4d68-98da-cc4f7195d85e is de tekenreeksweergave van de Service Fabric-partitie-id, 131652217797162571 de replica-id, 142652217797162571 de id van de statusprovider en 1337 de differentiator van het prestatiemeteritem. urn:MyReliableDictionary/dataStore is de naam van de staatsprovider waarin gegevens voor de verzameling met de naam worden opgeslagen urn:MyReliableDictionary.

Prestatiemeteritems voor transactionele replicator

De Reliable Services-runtime verzendt de volgende gebeurtenissen onder de Service Fabric Transactional Replicator categorie

Naam van het meteritem Beschrijving
Begin Txn Operations/sec Het aantal nieuwe schrijftransacties dat per seconde is gemaakt.
Txn Operations/sec Het aantal bewerkingen voor toevoegen/bijwerken/verwijderen uitgevoerd op betrouwbare verzamelingen per seconde.
Logboek leegmaken van bytes per seconde Het aantal bytes dat op de schijf wordt leeggemaakt door de transactionele replicator per seconde
Beperkte bewerkingen per seconde Het aantal bewerkingen dat elke seconde door de transactionele replicator is geweigerd vanwege beperking.
Avg. Transaction ms/Commit Gemiddelde doorvoerlatentie per transactie in milliseconden
Gem. Flush Latency (ms) Gemiddelde duur van schijfspoelbewerkingen geïnitieerd door de transactionele replicator in milliseconden

TStore-prestatiemeteritems

De Reliable Services-runtime verzendt de volgende gebeurtenissen onder de Service Fabric TStore categorie

Naam van het meteritem Beschrijving
Aantal items Het aantal items in de winkel.
Schijfgrootte De totale schijfgrootte, in bytes, van controlepuntbestanden voor het archief.
Bytes per seconde schrijven van controlepuntbestand Het aantal bytes dat per seconde is geschreven voor het meest recente controlepuntbestand.
Bytes per seconde schijfoverdracht kopiëren Het aantal schijfbytes dat wordt gelezen (op de primaire replica) of geschreven (op een secundaire replica) per seconde tijdens een archiefkopie.

Volgende stappen

EventSource-providers in PerfView