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.
gebeurtenis
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 | Error | 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 Replicator
hebben 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 TStore
hebben 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. |