Diagnostické funkce pro stavové služby Reliable Services
Třída StatefulServiceBase stavové služby Azure Service Fabric generuje události EventSource , které je možné použít k ladění služby, poskytují přehledy o provozu modulu runtime a pomáhají s řešením potíží.
Události EventSource
Název EventSource pro stateful Reliable Services StatefulServiceBase třída je Microsoft-ServiceFabric-Services. Události z tohoto zdroje událostí se zobrazí v okně Diagnostické události při ladění služby v sadě Visual Studio.
Mezi příklady nástrojů a technologií, které pomáhají shromažďovat a zobrazovat události EventSource, patří PerfView, Azure Diagnostics a Knihovna Microsoft TraceEvent.
Události
Název události | ID události | Level | Popis události |
---|---|---|---|
StatefulRunAsyncInvocation | 0 | Informační | Vygenerováno při spuštění úlohy RunAsync služby |
StatefulRunAsyncCancellation | 2 | Informační | Vygenerováno při zrušení úlohy RunAsync služby |
StatefulRunAsyncCompletion | 3 | Informační | Po dokončení úlohy RunAsync služby se vygeneruje |
StatefulRunAsyncSlowCancellation | 4 | Upozorňující | Vygenerováno, když dokončení zrušení úlohy RunAsync služby trvá příliš dlouho. |
StatefulRunAsyncFailure | 5 | Chyba | Vygenerováno, když úloha RunAsync služby vyvolá výjimku |
Interpretace událostí
Události StatefulRunAsyncInvocation, StatefulRunAsyncCompletion a StatefulRunAsyncCancellation jsou užitečné pro zapisovač služby, aby porozuměli životnímu cyklu služby a také časování spuštění, zrušení nebo dokončení služby. Tyto informace můžou být užitečné při ladění problémů se službou nebo pochopení životního cyklu služby.
Zapisovače služeb by měly věnovat pozornost událostem StatefulRunAsyncSlowCancellation a StatefulRunAsyncFailure, protože indikují problémy se službou.
StatefulRunAsyncFailure se vygeneruje pokaždé, když úloha RunAsync() služby vyvolá výjimku. Vyvolání výjimky obvykle značí chybu nebo chybu ve službě. Kromě toho výjimka způsobí selhání služby, takže se přesune do jiného uzlu. Tato operace může být náročná a při přesunu služby může zpozdit příchozí požadavky. Zapisovače služeb by měly určit příčinu výjimky a pokud je to možné, zmírnit ji.
StatefulRunAsyncSlowCancellation se vygeneruje vždy, když požadavek na zrušení úlohy RunAsync trvá déle než čtyři sekundy. Pokud dokončení zrušení služby trvá příliš dlouho, ovlivňuje možnost rychlého restartování služby na jiném uzlu. Tento scénář může ovlivnit celkovou dostupnost služby.
Čítače výkonu
Modul runtime Reliable Services definuje následující kategorie čítačů výkonu:
Kategorie | Popis |
---|---|
Transakční replikátor Service Fabric | Čítače specifické pro transakční replikátor služby Azure Service Fabric |
Service Fabric TStore | Čítače specifické pro úložiště TStore služby Azure Service Fabric |
Správce spolehlivého stavu používá transakční replikátor Service Fabric k replikaci transakcí v rámci dané sady replik.
Service Fabric TStore je komponenta používaná v Reliable Collections k ukládání a načítání párů klíč-hodnota.
Aplikace Windows Sledování výkonu, která je ve výchozím nastavení dostupná v operačním systému Windows, lze použít ke shromažďování a zobrazení dat čítačů výkonu. Azure Diagnostics je další možností shromažďování dat čítačů výkonu a jejich nahrání do tabulek Azure.
Názvy instancí čítačů výkonu
Cluster s velkým počtem spolehlivých služeb nebo spolehlivých oddílů služby bude mít velký počet instancí čítačů výkonu transakčního replikátoru. Jedná se také o případ čítačů výkonu úložiště TStore, ale také se vynásobí počtem použitých spolehlivých slovníků a spolehlivých front. Názvy instancí čítače výkonu můžou pomoct při identifikaci konkrétního oddílu, repliky služby a zprostředkovatele stavu v případě TStore, ke kterému je přidružena instance čítače výkonu.
Kategorie transakčního replikátoru Service Fabric
Pro kategorii Service Fabric Transactional Replicator
jsou názvy instancí čítačů v následujícím formátu:
ServiceFabricPartitionId:ServiceFabricReplicaId
ServiceFabricPartitionId je řetězcová reprezentace ID oddílu Service Fabric, ke které je přidružena instance čítače výkonu. ID oddílu je IDENTIFIKÁTOR GUID a jeho řetězcové vyjádření se generuje pomocí Guid.ToString
specifikátoru formátu "D".
ServiceFabricReplicaId je ID přidružené k dané replice spolehlivé služby. ID repliky je součástí názvu instance čítače výkonu, aby se zajistila jeho jedinečnost a zabránilo konfliktu s jinými instancemi čítače výkonu vygenerovanými stejným oddílem. Další podrobnosti o replikách a jejich roli ve spolehlivých službách najdete tady.
Následující název instance čítače je typický pro čítač v Service Fabric Transactional Replicator
kategorii:
00d0126d-3e36-4d68-98da-cc4f7195d85e:131652217797162571
V předchozím příkladu 00d0126d-3e36-4d68-98da-cc4f7195d85e
je řetězcová reprezentace ID oddílu Service Fabric a 131652217797162571
je ID repliky.
Kategorie Úložiště úložiště Service Fabric
Pro kategorii Service Fabric TStore
jsou názvy instancí čítačů v následujícím formátu:
ServiceFabricPartitionId:ServiceFabricReplicaId:StateProviderId_PerformanceCounterInstanceDifferentiator_StateProviderName
ServiceFabricPartitionId je řetězcová reprezentace ID oddílu Service Fabric, ke které je přidružena instance čítače výkonu. ID oddílu je IDENTIFIKÁTOR GUID a jeho řetězcové vyjádření se generuje pomocí Guid.ToString
specifikátoru formátu "D".
ServiceFabricReplicaId je ID přidružené k dané replice spolehlivé služby. ID repliky je součástí názvu instance čítače výkonu, aby se zajistila jeho jedinečnost a zabránilo konfliktu s jinými instancemi čítače výkonu vygenerovanými stejným oddílem. Další podrobnosti o replikách a jejich roli ve spolehlivých službách najdete tady.
StateProviderId je ID přidružené k poskytovateli stavu v rámci spolehlivé služby. ID zprostředkovatele stavu je součástí názvu instance čítače výkonu pro rozlišení úložiště TStore od jiného.
PerformanceCounterInstanceDifferentiator je odlišné ID přidružené k instanci čítače výkonu v rámci zprostředkovatele stavu. Tento rozdílový objekt je součástí názvu instance čítače výkonu, aby se zajistila jedinečnost a zabránilo konfliktu s jinými instancemi čítače výkonu vygenerovanými stejným poskytovatelem stavu.
StateProviderName je název přidružený k poskytovateli stavu v rámci spolehlivé služby. Název zprostředkovatele stavu je součástí názvu instance čítače výkonu, aby uživatelé mohli snadno zjistit, jaký stav poskytuje.
Následující název instance čítače je typický pro čítač v Service Fabric TStore
kategorii:
00d0126d-3e36-4d68-98da-cc4f7195d85e:131652217797162571:142652217797162571_1337_urn:MyReliableDictionary/dataStore
V předchozím příkladu 00d0126d-3e36-4d68-98da-cc4f7195d85e
je řetězcová reprezentace ID oddílu Service Fabric, 131652217797162571
je ID repliky, 142652217797162571
ID zprostředkovatele stavu a 1337
je to rozdílná instance čítače výkonu. urn:MyReliableDictionary/dataStore
je název zprostředkovatele stavu, který ukládá data pro kolekci s názvem urn:MyReliableDictionary
.
Čítače výkonu transakčního replikátoru
Modul runtime Reliable Services generuje následující události v Service Fabric Transactional Replicator
kategorii.
Název čítače | Popis |
---|---|
Zahájení operací Txn za sekundu | Počet nových transakcí zápisu vytvořených za sekundu. |
Txn Operations/s | Počet operací přidání, aktualizace nebo odstranění provedených u spolehlivých kolekcí za sekundu |
Protokol vyprázdnění bajtů za sekundu | Počet bajtů vyprázdněných na disk transakčním replikátorem za sekundu |
Omezené operace za sekundu | Počet operací odmítnutých každou sekundu transakčním replikátorem kvůli omezování. |
Prům. Transakce ms/Commit | Průměrná latence potvrzení na transakci v milisekundách |
Prům. Latence vyprázdnění (ms) | Průměrná doba trvání operací vyprázdnění disku iniciovaného transakčním replikátorem v milisekundách |
Čítače výkonu úložiště dat
Modul runtime Reliable Services generuje následující události v Service Fabric TStore
kategorii.
Název čítače | Popis |
---|---|
Počet položek | Počet položek v úložišti |
Velikost disku | Celková velikost disku v bajtech souborů kontrolních bodů úložiště. |
Bajty zápisu souboru kontrolního bodu za sekundu | Počet bajtů zapsaných za sekundu pro poslední soubor kontrolního bodu. |
Kopírování bajtů přenosu disku za sekundu | Počet čtení bajtů disku (na primární replice) nebo zápisu (na sekundární replice) za sekundu během kopie úložiště. |