Řešení problémů pomocí sestav o stavu systému
Komponenty Azure Service Fabric poskytují sestavy stavu systému pro všechny entity v clusteru hned po úpravě. Úložiště stavu vytváří a odstraňuje entity na základě systémových sestav. Také je uspořádá v hierarchii, která zachycuje interakce entit.
Poznámka
Pokud chcete porozumět konceptům souvisejícím se stavem, přečtěte si další informace v tématu Model stavu Service Fabric.
Sestavy stavu systému poskytují přehled o funkcích clusteru a aplikací a oznamovat problémy. U aplikací a služeb sestavy stavu systému ověřují, že entity jsou implementované a že se chovají správně z pohledu Service Fabric. Sestavy neposkytují žádné monitorování stavu obchodní logiky služby ani detekci procesů, které nereagují. Služby uživatelů můžou data o stavu rozšířit o informace specifické pro jejich logiku.
Poznámka
Sestavy o stavu odesílané uživateli watchdogy jsou viditelné až poté , co systémové komponenty vytvoří entitu. Když je entita odstraněna, úložiště stavu automaticky odstraní všechny sestavy stavu, které jsou k ní přidružené. Totéž platí při vytvoření nové instance entity. Příkladem je vytvoření nové stavové trvalé instance repliky služby. Všechny sestavy přidružené ke staré instanci se odstraní a vyčistí z úložiště.
Sestavy systémových komponent jsou identifikovány zdrojem, který začíná předponou "System.". Watchdogové nemůžou pro své zdroje použít stejnou předponu, protože sestavy s neplatnými parametry jsou odmítnuty.
Podívejme se na některé systémové sestavy, abychom pochopili, co je spouští, a zjistěte, jak opravit potenciální problémy, které představují.
Poznámka
Service Fabric dál přidává sestavy za podmínek zájmu, které zlepšují přehled o tom, co se děje v clusteru a v aplikacích. Stávající sestavy je možné vylepšit o další podrobnosti, které vám pomůžou rychleji vyřešit problém.
Sestavy stavu systému clusteru
Entita stavu clusteru se vytvoří automaticky v úložišti stavu. Pokud všechno funguje správně, nemá systémovou sestavu.
Ztráta sousedství
System.Federation hlásí chybu, když zjistí ztrátu okolí. Sestava pochází z jednotlivých uzlů a ID uzlu je zahrnuto v názvu vlastnosti. Pokud dojde ke ztrátě jednoho sousedství v celém okruhu Service Fabric, můžete obvykle očekávat dvě události, které představují obě strany sestavy mezer. Pokud dojde ke ztrátě více čtvrtí, dojde k dalším událostem.
Sestava určuje časový limit globálního zapůjčení jako hodnotu TTL (Time to Live). Sestava se znovu odešle každou polovinu doby trvání hodnoty TTL tak dlouho, dokud podmínka zůstane aktivní. Událost se automaticky odebere, jakmile vyprší její platnost. Chování při odebrání po vypršení platnosti zajišťuje, že se sestava správně vyčistí z úložiště stavu, a to i v případě, že je uzel sestav mimo provoz.
- SourceId: System.Federation
- Vlastnost: Začíná na Sousedství a obsahuje informace o uzlu.
- Další kroky: Prozkoumejte, proč se okolí ztratilo. Zkontrolujte například komunikaci mezi uzly clusteru.
Opětovné sestavení (Rebuild)
Služba Správce převzetí služeb při selhání (FM) spravuje informace o uzlech clusteru. Když FM ztratí svá data a dojde ke ztrátě dat, nemůže zaručit, že bude mít nejaktuálnější informace o uzlech clusteru. V tomto případě systém projde opětovným sestavením a System.FM shromažďuje data ze všech uzlů v clusteru za účelem opětovného sestavení jeho stavu. Někdy se kvůli problémům se sítí nebo uzly může opětovné sestavení zaseknout nebo se zaseknout. Totéž se může stát u hlavní služby Správce převzetí služeb při selhání (FMM). FMM je bezstavová systémová služba, která sleduje, kde jsou všechny počítače v clusteru. Primárním serverem FMM je vždy uzel s ID nejblíže 0. Pokud dojde k vyřazení uzlu, aktivuje se opětovné sestavení. Když nastane jedna z předchozích podmínek, System.FM nebo System.FMM ji označí příznakem prostřednictvím zprávy o chybě. Opětovné sestavení může být zablokované v jedné ze dvou fází:
Čeká se na vysílání: FM/FMM čeká na odpověď zprávy vysílání z ostatních uzlů.
- Další kroky: Prozkoumejte, jestli mezi uzly nedochází k problému se síťovým připojením.
Čeká se na uzly: FM/FMM už obdržel odpověď vysílání z ostatních uzlů a čeká na odpověď z konkrétních uzlů. Sestava stavu obsahuje seznam uzlů, pro které FM/FMM čeká na odpověď.
- Další kroky: Prozkoumejte síťové připojení mezi FM/FMM a uvedenými uzly. Prozkoumejte všechny uvedené uzly a zjistěte další možné problémy.
SourceID: System.FM nebo System.FMM
Vlastnost: Znovu sestavit.
Další kroky: Prozkoumejte síťové připojení mezi uzly a také stav všech konkrétních uzlů, které jsou uvedené v popisu sestavy o stavu.
Stav počátečního uzlu
System.FM hlásí upozornění na úrovni clusteru, pokud některé počáteční uzly nejsou v pořádku. Počáteční uzly jsou uzly, které udržují dostupnost základního clusteru. Tyto uzly pomáhají zajistit, aby cluster zůstal v pořádku tím, že navazují zapůjčení s jinými uzly a slouží jako tiebreakery během určitých druhů selhání sítě. Pokud je většina počátečních uzlů v clusteru mimo provoz a nejsou vráceny zpět, cluster se automaticky vypne.
Počáteční uzel není v pořádku, pokud je jeho stav Mimo, Odebraný nebo Neznámý. V sestavě upozornění na stav počátečního uzlu se zobrazí seznam všech počátečních uzlů, které nejsou v pořádku, s podrobnými informacemi.
- SourceID: System.FM
- Vlastnost: SeedNodeStatus
- Další kroky: Pokud se toto upozornění zobrazí v clusteru, opravte ho podle následujících pokynů: V případě clusteru se službou Service Fabric verze 6.5 nebo vyšší: V případě clusteru Service Fabric v Azure se po vypnutí počátečního uzlu Service Fabric pokusí automaticky změnit na jiný než počáteční uzel. Chcete-li k tomu dojít, ujistěte se, že počet neseděných uzlů v primárním typu uzlu je větší nebo roven počtu počátečních uzlů dole. V případě potřeby přidejte k primárnímu typu uzlu další uzly, abyste toho dosáhli. V závislosti na stavu clusteru může oprava problému nějakou dobu trvat. Jakmile to uděláte, sestava upozornění se automaticky vymaže.
U samostatného clusteru Service Fabric musí být všechny počáteční uzly v pořádku, aby se sestava upozornění vymazal. V závislosti na tom, proč počáteční uzly nejsou v pořádku, je třeba provést různé akce: Pokud počáteční uzel je Down, uživatelé musí přenést tento počáteční uzel nahoru; Pokud je počáteční uzel Odebraný nebo Neznámý, je potřeba tento počáteční uzel z clusteru odebrat. Sestava upozornění se automaticky vymaže, když budou všechny počáteční uzly v pořádku.
Pro cluster se službou Service Fabric verze starší než 6.5: V tomto případě je potřeba zprávu upozornění vymazat ručně. Před vymazáním sestavy by se uživatelé měli ujistit, že jsou všechny počáteční uzly v pořádku. Pokud je počáteční uzel mimo provoz, musí uživatelé tento počáteční uzel přivést nahoru. Pokud je počáteční uzel odebraný nebo Neznámý, je potřeba tento počáteční uzel z clusteru odebrat. Jakmile budou všechny počáteční uzly v pořádku, pomocí následujícího příkazu z PowerShellu vymažte sestavu upozornění:
PS C:\> Send-ServiceFabricClusterHealthReport -SourceId "System.FM" -HealthProperty "SeedNodeStatus" -HealthState OK
Sestavy stavu systému uzlů
System.FM, která představuje službu Správce převzetí služeb při selhání, je autorita, která spravuje informace o uzlech clusteru. Každý uzel by měl mít jednu sestavu z System.FM zobrazující jeho stav. Entity uzlů se odeberou při odebrání stavu uzlu. Další informace najdete v tématu RemoveNodeStateAsync.
Uzel nahoru/dolů
System.FM jako OK, když se uzel připojí k okruhu (je spuštěný a spuštěný). Když uzel opustí okruh (je mimo provoz, buď kvůli upgradu, nebo kvůli selhání) hlásí chybu. Hierarchie stavu vytvořená úložištěm stavu funguje na nasazených entitách v korelaci se sestavami System.FM uzlů. Uzel považuje za virtuální nadřazený objekt všech nasazených entit. Nasazené entity na tomto uzlu jsou zpřístupněny prostřednictvím dotazů, pokud uzel hlásí System.FM se stejnou instancí jako instance přidružená k entitám. Když System.FM hlásí, že uzel je mimo provoz nebo restartován jako nová instance, úložiště stavu automaticky vyčistí nasazené entity, které můžou existovat pouze na mimo provoz nebo na předchozí instanci uzlu.
- SourceId: System.FM
- Vlastnost: State.
- Další kroky: Pokud je uzel mimo upgrade, měl by se po upgradu vrátit zpět. V takovém případě by se měl stav přepnout zpět na OK. Pokud se uzel nevrátí nebo selže, je potřeba problém podrobněji prozkoumat.
Následující příklad ukazuje událost System.FM se stavem OK pro uzel up:
PS C:\> Get-ServiceFabricNodeHealth _Node_0
NodeName : _Node_0
AggregatedHealthState : Ok
HealthEvents :
SourceId : System.FM
Property : State
HealthState : Ok
SequenceNumber : 8
SentAt : 7/14/2017 4:54:51 PM
ReceivedAt : 7/14/2017 4:55:14 PM
TTL : Infinite
Description : Fabric node is up.
RemoveWhenExpired : False
IsExpired : False
Transitions : Error->Ok = 7/14/2017 4:55:14 PM, LastWarning = 1/1/0001 12:00:00 AM
Vypršení platnosti certifikátu
System.FabricNode hlásí upozornění, když se blíží vypršení platnosti certifikátů používaných uzlem. Na uzel existují tři certifikáty: Certificate_cluster, Certificate_server a Certificate_default_client. Pokud je vypršení platnosti alespoň dva týdny, stav sestavy je v pořádku. Pokud je vypršení platnosti do dvou týdnů, typ sestavy je upozornění. Hodnota TTL těchto událostí je nekonečná a odeberou se, když uzel opustí cluster.
- SourceId: System.FabricNode
- Vlastnost: Začíná na Certifikát a obsahuje další informace o typu certifikátu.
- Další kroky: Aktualizujte certifikáty, pokud se blíží vypršení jejich platnosti.
Narušení kapacity zatížení
Load Balancer Service Fabric hlásí upozornění, když zjistí narušení kapacity uzlu.
- Id zdroje: System.PLB
- Vlastnost: Začíná kapacitou.
- Další kroky: Zkontrolujte zadané metriky a zobrazte aktuální kapacitu na uzlu.
Neshoda kapacity uzlů pro metriky zásad správného řízení prostředků
System.Hosting hlásí upozornění, pokud jsou definované kapacity uzlů v manifestu clusteru větší než skutečné kapacity uzlu pro metriky zásad správného řízení prostředků (paměťová jádra a jádra procesoru). Sestava stavu se zobrazí, když se první balíček služby, který používá zásady správného řízení prostředků , zaregistruje na zadaném uzlu.
- SourceId: System.Hosting
- Vlastnost: ResourceGovernance.
- Další kroky: Tento problém může být problém, protože řízení balíčků služeb se nevynucuje podle očekávání a zásady správného řízení prostředků nefungují správně. Aktualizujte manifest clusteru pomocí správných kapacit uzlů pro tyto metriky, nebo je nezadávejte a nechte Service Fabric automaticky zjišťovat dostupné prostředky.
Sestavy stavu systému aplikací
System.CM, která představuje službu Správce clusteru, je autorita, která spravuje informace o aplikaci.
Stav
System.CM po vytvoření nebo aktualizaci aplikace se zobrazí jako OK. Informuje úložiště stavu, když je aplikace odstraněna, aby ji bylo možné z úložiště odebrat.
- Id zdroje: System.CM
- Vlastnost: Stav.
- Další kroky: Pokud byla aplikace vytvořena nebo aktualizována, měla by obsahovat sestavu stavu Správce clusteru. V opačném případě zkontrolujte stav aplikace zadáním dotazu. Použijte například rutinu PowerShellu Get-ServiceFabricApplication -ApplicationNameapplicationName.
Následující příklad ukazuje událost stavu v aplikaci fabric:/WordCount :
PS C:\> Get-ServiceFabricApplicationHealth fabric:/WordCount -ServicesFilter None -DeployedApplicationsFilter None -ExcludeHealthStatistics
ApplicationName : fabric:/WordCount
AggregatedHealthState : Ok
ServiceHealthStates : None
DeployedApplicationHealthStates : None
HealthEvents :
SourceId : System.CM
Property : State
HealthState : Ok
SequenceNumber : 282
SentAt : 7/13/2017 5:57:05 PM
ReceivedAt : 7/14/2017 4:55:10 PM
TTL : Infinite
Description : Application has been created.
RemoveWhenExpired : False
IsExpired : False
Transitions : Error->Ok = 7/13/2017 5:57:05 PM, LastWarning = 1/1/0001 12:00:00 AM
Sestavy stavu systému služby
System.FM, která představuje službu Správce převzetí služeb při selhání, je autorita, která spravuje informace o službách.
Stav
po vytvoření služby System.FM sestavy OK. Při odstranění služby odstraní entitu z úložiště stavů.
- Id zdroje: System.FM
- Vlastnost: Stav.
Následující příklad ukazuje událost stavu v service fabric:/WordCount/WordCountWebService:
PS C:\> Get-ServiceFabricServiceHealth fabric:/WordCount/WordCountWebService -ExcludeHealthStatistics
ServiceName : fabric:/WordCount/WordCountWebService
AggregatedHealthState : Ok
PartitionHealthStates :
PartitionId : 8bbcd03a-3a53-47ec-a5f1-9b77f73c53b2
AggregatedHealthState : Ok
HealthEvents :
SourceId : System.FM
Property : State
HealthState : Ok
SequenceNumber : 14
SentAt : 7/13/2017 5:57:05 PM
ReceivedAt : 7/14/2017 4:55:10 PM
TTL : Infinite
Description : Service has been created.
RemoveWhenExpired : False
IsExpired : False
Transitions : Error->Ok = 7/13/2017 5:57:18 PM, LastWarning = 1/1/0001 12:00:00 AM
Chyba korelace služby
System.PLB hlásí chybu, když zjistí, že aktualizace služby koreluje s jinou službou, která vytváří řetěz vztahů. Po úspěšné aktualizaci se sestava vymaže.
- Id zdroje: System.PLB
- Vlastnost: ServiceDescription.
- Další kroky: Zkontrolujte korelované popisy služeb.
Dělení sestav stavu systému
System.FM, která představuje službu Správce převzetí služeb při selhání, je autorita, která spravuje informace o oddílech služby.
Stav
System.FM sestavy OK, když byl oddíl vytvořen a je v pořádku. Při odstranění oddílu odstraní entitu z úložiště stavů.
Pokud je oddíl nižší než minimální počet replik, hlásí chybu. Pokud oddíl není nižší než minimální počet replik, ale je nižší než počet cílových replik, hlásí upozornění. Pokud je oddíl ve ztrátě kvora, System.FM hlásí chybu.
Mezi další události patří upozornění, když rekonfigurace trvá déle, než se čekalo, a sestavení trvá déle, než se čekalo. Očekávané časy sestavení a rekonfigurace se dají konfigurovat v závislosti na scénářích služby. Pokud má například služba terabajt stavu, například Azure SQL Database, trvá sestavení déle než u služby s malým množstvím stavu.
- Id zdroje: System.FM
- Vlastnost: Stav.
- Další kroky: Pokud stav není v pořádku, je možné, že některé repliky nebyly správně vytvořeny, otevřeny nebo povýšeny na primární nebo sekundární.
Pokud popis popisuje ztrátu kvora, pak prozkoumání podrobné sestavy stavu replik, které jsou mimo provoz, a jejich vrácení zpět do stavu pomůže převést oddíl zpět do online režimu.
Pokud popis popisuje oddíl zablokovaný v rekonfiguraci, pak sestava o stavu primární repliky obsahuje další informace.
Pro jiné System.FM sestavy stavu by se na replikách, oddílu nebo službě zobrazily sestavy z jiných systémových komponent.
Následující příklady popisují některé z těchto sestav.
Následující příklad ukazuje oddíl, který je v pořádku:
PS C:\> Get-ServiceFabricPartition fabric:/WordCount/WordCountWebService | Get-ServiceFabricPartitionHealth -ExcludeHealthStatistics -ReplicasFilter None
PartitionId : 8bbcd03a-3a53-47ec-a5f1-9b77f73c53b2
AggregatedHealthState : Ok
ReplicaHealthStates : None
HealthEvents :
SourceId : System.FM
Property : State
HealthState : Ok
SequenceNumber : 70
SentAt : 7/13/2017 5:57:05 PM
ReceivedAt : 7/14/2017 4:55:10 PM
TTL : Infinite
Description : Partition is healthy.
RemoveWhenExpired : False
IsExpired : False
Transitions : Error->Ok = 7/13/2017 5:57:18 PM, LastWarning = 1/1/0001 12:00:00 AM
Následující příklad ukazuje stav oddílu, který je pod počtem cílových replik. Dalším krokem je získání popisu oddílu, který ukazuje, jak je nakonfigurovaný: MinReplicaSetSize je tři a TargetReplicaSetSize je sedm. Pak získejte počet uzlů v clusteru, který je v tomto případě pět. V tomto případě tedy není možné umístit dvě repliky, protože cílový počet replik je vyšší než počet dostupných uzlů.
PS C:\> Get-ServiceFabricPartition fabric:/WordCount/WordCountService | Get-ServiceFabricPartitionHealth -ReplicasFilter None -ExcludeHealthStatistics
PartitionId : af2e3e44-a8f8-45ac-9f31-4093eb897600
AggregatedHealthState : Warning
UnhealthyEvaluations :
Unhealthy event: SourceId='System.FM', Property='State', HealthState='Warning', ConsiderWarningAsError=false.
ReplicaHealthStates : None
HealthEvents :
SourceId : System.FM
Property : State
HealthState : Warning
SequenceNumber : 123
SentAt : 7/14/2017 4:55:39 PM
ReceivedAt : 7/14/2017 4:55:44 PM
TTL : Infinite
Description : Partition is below target replica or instance count.
fabric:/WordCount/WordCountService 7 2 af2e3e44-a8f8-45ac-9f31-4093eb897600
N/S Ready _Node_2 131444422260002646
N/S Ready _Node_4 131444422293113678
N/S Ready _Node_3 131444422293113679
N/S Ready _Node_1 131444422293118720
N/P Ready _Node_0 131444422293118721
(Showing 5 out of 5 replicas. Total available replicas: 5)
RemoveWhenExpired : False
IsExpired : False
Transitions : Error->Warning = 7/14/2017 4:55:44 PM, LastOk = 1/1/0001 12:00:00 AM
SourceId : System.PLB
Property : ServiceReplicaUnplacedHealth_Secondary_af2e3e44-a8f8-45ac-9f31-4093eb897600
HealthState : Warning
SequenceNumber : 131445250939703027
SentAt : 7/14/2017 4:58:13 PM
ReceivedAt : 7/14/2017 4:58:14 PM
TTL : 00:01:05
Description : The Load Balancer was unable to find a placement for one or more of the Service's Replicas:
Secondary replica could not be placed due to the following constraints and properties:
TargetReplicaSetSize: 7
Placement Constraint: N/A
Parent Service: N/A
Constraint Elimination Sequence:
Existing Secondary Replicas eliminated 4 possible node(s) for placement -- 1/5 node(s) remain.
Existing Primary Replica eliminated 1 possible node(s) for placement -- 0/5 node(s) remain.
Nodes Eliminated By Constraints:
Existing Secondary Replicas -- Nodes with Partition's Existing Secondary Replicas/Instances:
--
FaultDomain:fd:/4 NodeName:_Node_4 NodeType:NodeType4 UpgradeDomain:4 UpgradeDomain: ud:/4 Deactivation Intent/Status: None/None
FaultDomain:fd:/3 NodeName:_Node_3 NodeType:NodeType3 UpgradeDomain:3 UpgradeDomain: ud:/3 Deactivation Intent/Status: None/None
FaultDomain:fd:/2 NodeName:_Node_2 NodeType:NodeType2 UpgradeDomain:2 UpgradeDomain: ud:/2 Deactivation Intent/Status: None/None
FaultDomain:fd:/1 NodeName:_Node_1 NodeType:NodeType1 UpgradeDomain:1 UpgradeDomain: ud:/1 Deactivation Intent/Status: None/None
Existing Primary Replica -- Nodes with Partition's Existing Primary Replica or Secondary Replicas:
--
FaultDomain:fd:/0 NodeName:_Node_0 NodeType:NodeType0 UpgradeDomain:0 UpgradeDomain: ud:/0 Deactivation Intent/Status: None/None
RemoveWhenExpired : True
IsExpired : False
Transitions : Error->Warning = 7/14/2017 4:56:14 PM, LastOk = 1/1/0001 12:00:00 AM
PS C:\> Get-ServiceFabricPartition fabric:/WordCount/WordCountService | select MinReplicaSetSize,TargetReplicaSetSize
MinReplicaSetSize TargetReplicaSetSize
----------------- --------------------
2 7
PS C:\> @(Get-ServiceFabricNode).Count
5
Následující příklad ukazuje stav oddílu, který je zablokovaný v rekonfiguraci kvůli tomu, že uživatel nedodržuje token zrušení v metodě RunAsync . Prozkoumání zprávy o stavu jakékoli repliky označené jako primární (P) vám může pomoct přejít k dalším podrobnostem problému.
PS C:\utilities\ServiceFabricExplorer\ClientPackage\lib> Get-ServiceFabricPartitionHealth 0e40fd81-284d-4be4-a665-13bc5a6607ec -ExcludeHealthStatistics
PartitionId : 0e40fd81-284d-4be4-a665-13bc5a6607ec
AggregatedHealthState : Warning
UnhealthyEvaluations :
Unhealthy event: SourceId='System.FM', Property='State', HealthState='Warning',
ConsiderWarningAsError=false.
HealthEvents :
SourceId : System.FM
Property : State
HealthState : Warning
SequenceNumber : 7
SentAt : 8/27/2017 3:43:09 AM
ReceivedAt : 8/27/2017 3:43:32 AM
TTL : Infinite
Description : Partition reconfiguration is taking longer than expected.
fabric:/app/test1 3 1 0e40fd81-284d-4be4-a665-13bc5a6607ec
P/S Ready Node1 131482789658160654
S/P Ready Node2 131482789688598467
S/S Ready Node3 131482789688598468
(Showing 3 out of 3 replicas. Total available replicas: 3)
For more information see: https://aka.ms/sfhealth
RemoveWhenExpired : False
IsExpired : False
Transitions : Ok->Warning = 8/27/2017 3:43:32 AM, LastError = 1/1/0001 12:00:00 AM
Tato sestava stavu zobrazuje stav replik oddílu, který prochází rekonfigurací:
P/S Ready Node1 131482789658160654
S/P Ready Node2 131482789688598467
S/S Ready Node3 131482789688598468
Pro každou repliku sestava stavu obsahuje:
- Předchozí konfigurační role
- Aktuální konfigurační role
- Stav repliky
- Uzel, na kterém je replika spuštěná
- ID repliky
V případě, jako je tento příklad, je potřeba provést další šetření. Prozkoumejte stav jednotlivých replik počínaje replikami označenými jako Primary
a Secondary
(131482789658160654 a 131482789688598467) v předchozím příkladu.
Porušení omezení repliky
Pokud system.PLB zjistí porušení omezení repliky a nemůže umístit všechny repliky oddílů, oznámí upozornění. Podrobnosti sestavy ukazují, která omezení a vlastnosti brání umístění repliky.
- Id zdroje: System.PLB
- Vlastnost: Začíná na ReplicaConstraintViolation.
Sestavy stavu systému repliky
System.RA, který představuje komponentu agenta rekonfigurace, je autoritou pro stav repliky.
Stav
System.RA hlásí, že je po vytvoření repliky v pořádku.
- SourceId: System.RA
- Vlastnost: Stav.
Následující příklad ukazuje repliku, která je v pořádku:
PS C:\> Get-ServiceFabricPartition fabric:/WordCount/WordCountService | Get-ServiceFabricReplica | where {$_.ReplicaRole -eq "Primary"} | Get-ServiceFabricReplicaHealth
PartitionId : af2e3e44-a8f8-45ac-9f31-4093eb897600
ReplicaId : 131444422293118721
AggregatedHealthState : Ok
HealthEvents :
SourceId : System.RA
Property : State
HealthState : Ok
SequenceNumber : 131445248920273536
SentAt : 7/14/2017 4:54:52 PM
ReceivedAt : 7/14/2017 4:55:13 PM
TTL : Infinite
Description : Replica has been created._Node_0
RemoveWhenExpired : False
IsExpired : False
Transitions : Error->Ok = 7/14/2017 4:55:13 PM, LastWarning = 1/1/0001 12:00:00 AM
ReplicaOpenStatus, ReplicaCloseStatus, ReplicaChangeRoleStatus
Tato vlastnost se používá k označení upozornění nebo selhání při pokusu o otevření repliky, zavření repliky nebo převodu repliky z jedné role na jinou. Další informace najdete v tématu Životní cyklus repliky. Selhání mohou být výjimky vyvolané voláním rozhraní API nebo chybami hostitelského procesu služby během této doby. V případě selhání kvůli voláním rozhraní API z kódu C# Service Fabric přidá do sestavy stavu výjimku a trasování zásobníku.
Tato upozornění na stav se aktivují po několika opakováních akce v místním prostředí (v závislosti na zásadách). Service Fabric akci opakuje až do maximální prahové hodnoty. Po dosažení maximální prahové hodnoty se může pokusit situaci napravit. Tento pokus může způsobit, že se tato upozornění vymažou, protože se akce na tomto uzlu uvolní. Pokud se například nedaří otevřít repliku na uzlu, Service Fabric vyvolá upozornění na stav. Pokud se stále nedaří otevřít repliku, Service Fabric se chová k samoobslužné opravě. Tato akce může zahrnovat pokus o stejnou operaci na jiném uzlu. Tento pokus způsobí vymazání upozornění vyvolaného pro tuto repliku.
- SourceId: System.RA
- Vlastnost: ReplicaOpenStatus, ReplicaCloseStatus a ReplicaChangeRoleStatus.
- Další kroky: Prozkoumejte kód služby nebo výpisy stavu systému a zjistěte, proč operace selhává.
Následující příklad ukazuje stav repliky, která je vyvoláná TargetInvocationException
z otevřené metody. Popis obsahuje bod selhání, IStatefulServiceReplica.Open, typ výjimky TargetInvocationException a trasování zásobníku.
PS C:\> Get-ServiceFabricReplicaHealth -PartitionId 337cf1df-6cab-4825-99a9-7595090c0b1b -ReplicaOrInstanceId 131483509874784794
PartitionId : 337cf1df-6cab-4825-99a9-7595090c0b1b
ReplicaId : 131483509874784794
AggregatedHealthState : Warning
UnhealthyEvaluations :
Unhealthy event: SourceId='System.RA', Property='ReplicaOpenStatus', HealthState='Warning',
ConsiderWarningAsError=false.
HealthEvents :
SourceId : System.RA
Property : ReplicaOpenStatus
HealthState : Warning
SequenceNumber : 131483510001453159
SentAt : 8/27/2017 11:43:20 PM
ReceivedAt : 8/27/2017 11:43:21 PM
TTL : Infinite
Description : Replica had multiple failures during open on _Node_0 API call: IStatefulServiceReplica.Open(); Error = System.Reflection.TargetInvocationException (-2146232828)
Exception has been thrown by the target of an invocation.
at Microsoft.ServiceFabric.Replicator.RecoveryManager.d__31.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.ServiceFabric.Replicator.LoggingReplicator.d__137.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.ServiceFabric.Replicator.DynamicStateManager.d__109.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.ServiceFabric.Replicator.TransactionalReplicator.d__79.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.ServiceFabric.Replicator.StatefulServiceReplica.d__21.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.ServiceFabric.Services.Runtime.StatefulServiceReplicaAdapter.d__0.MoveNext()
For more information see: https://aka.ms/sfhealth
RemoveWhenExpired : False
IsExpired : False
Transitions : Error->Warning = 8/27/2017 11:43:21 PM, LastOk = 1/1/0001 12:00:00 AM
Následující příklad ukazuje repliku, která během zavření neustále dochází k chybovému ukončení:
C:>Get-ServiceFabricReplicaHealth -PartitionId dcafb6b7-9446-425c-8b90-b3fdf3859e64 -ReplicaOrInstanceId 131483565548493142
PartitionId : dcafb6b7-9446-425c-8b90-b3fdf3859e64
ReplicaId : 131483565548493142
AggregatedHealthState : Warning
UnhealthyEvaluations :
Unhealthy event: SourceId='System.RA', Property='ReplicaCloseStatus', HealthState='Warning',
ConsiderWarningAsError=false.
HealthEvents :
SourceId : System.RA
Property : ReplicaCloseStatus
HealthState : Warning
SequenceNumber : 131483565611258984
SentAt : 8/28/2017 1:16:01 AM
ReceivedAt : 8/28/2017 1:16:03 AM
TTL : Infinite
Description : Replica had multiple failures during close on _Node_1. The application
host has crashed.
For more information see: https://aka.ms/sfhealth
RemoveWhenExpired : False
IsExpired : False
Transitions : Error->Warning = 8/28/2017 1:16:03 AM, LastOk = 1/1/0001 12:00:00 AM
Rekonfigurace
Tato vlastnost se používá k označení, když replika provádějící rekonfiguraci zjistí, že rekonfigurace je zablokovaná nebo zablokovaná. Tato sestava stavu může být na replice, jejíž aktuální role je primární, s výjimkou případů rekonfigurace prohození primárního serveru, kde může být na replice, která se degraduje z primární na aktivní sekundární.
Rekonfigurace může být zablokovaná z jednoho z následujících důvodů:
Akce místní repliky, která je stejná jako akce provádějící rekonfiguraci, se nedokončuje. V takovém případě může zkoumání sestav o stavu této repliky z jiných komponent System.RAP nebo System.RE poskytnout další informace.
Akce se na vzdálené replice nedokončuje. Repliky, pro které čekají akce, jsou uvedené v sestavě stavu. Další šetření by se mělo provést u sestav stavu těchto vzdálených replik. Může také dojít k problémům s komunikací mezi tímto uzlem a vzdáleným uzlem.
Ve výjimečných případech může být rekonfigurace zablokovaná kvůli komunikaci nebo jiným problémům mezi tímto uzlem a službou Správce převzetí služeb při selhání.
- SourceId: System.RA
- Vlastnost: Rekonfigurace.
- Další kroky: Prozkoumejte místní nebo vzdálené repliky v závislosti na popisu sestavy o stavu.
Následující příklad ukazuje sestavu stavu, ve které je rekonfigurace zablokovaná na místní replice. V této ukázce je to kvůli tomu, že služba nedodržuje token zrušení.
PS C:\> Get-ServiceFabricReplicaHealth -PartitionId 9a0cedee-464c-4603-abbc-1cf57c4454f3 -ReplicaOrInstanceId 131483600074836703
PartitionId : 9a0cedee-464c-4603-abbc-1cf57c4454f3
ReplicaId : 131483600074836703
AggregatedHealthState : Warning
UnhealthyEvaluations :
Unhealthy event: SourceId='System.RA', Property='Reconfiguration', HealthState='Warning',
ConsiderWarningAsError=false.
HealthEvents :
SourceId : System.RA
Property : Reconfiguration
HealthState : Warning
SequenceNumber : 131483600309264482
SentAt : 8/28/2017 2:13:50 AM
ReceivedAt : 8/28/2017 2:13:57 AM
TTL : Infinite
Description : Reconfiguration is stuck. Waiting for response from the local replica
For more information see: https://aka.ms/sfhealth
RemoveWhenExpired : False
IsExpired : False
Transitions : Error->Warning = 8/28/2017 2:13:57 AM, LastOk = 1/1/0001 12:00:00 AM
Následující příklad ukazuje sestavu stavu, ve které je rekonfigurace zablokovaná a čeká na odpověď ze dvou vzdálených replik. V tomto příkladu jsou v oddílu tři repliky, včetně aktuální primární.
PS C:\> Get-ServiceFabricReplicaHealth -PartitionId 579d50c6-d670-4d25-af70-d706e4bc19a2 -ReplicaOrInstanceId 131483956274977415
PartitionId : 579d50c6-d670-4d25-af70-d706e4bc19a2
ReplicaId : 131483956274977415
AggregatedHealthState : Warning
UnhealthyEvaluations :
Unhealthy event: SourceId='System.RA', Property='Reconfiguration', HealthState='Warning', ConsiderWarningAsError=false.
HealthEvents :
SourceId : System.RA
Property : Reconfiguration
HealthState : Warning
SequenceNumber : 131483960376212469
SentAt : 8/28/2017 12:13:57 PM
ReceivedAt : 8/28/2017 12:14:07 PM
TTL : Infinite
Description : Reconfiguration is stuck. Waiting for response from 2 replicas
Pending Replicas:
P/I Down 40 131483956244554282
S/S Down 20 131483956274972403
For more information see: https://aka.ms/sfhealth
RemoveWhenExpired : False
IsExpired : False
Transitions : Error->Warning = 8/28/2017 12:07:37 PM, LastOk = 1/1/0001 12:00:00 AM
Tato sestava stavu ukazuje, že rekonfigurace je zablokovaná a čeká na odpověď ze dvou replik:
P/I Down 40 131483956244554282
S/S Down 20 131483956274972403
Pro každou repliku jsou uvedeny následující informace:
- Předchozí role konfigurace
- Aktuální role konfigurace
- Stav repliky
- ID uzlu
- ID repliky
Odblokování rekonfigurace:
- Repliky dolů by měly být přeneseny.
- Repliky v buildu by měly dokončit sestavení a přejít na připravené.
Pomalé volání rozhraní API služby
System.RAP a System.Replicator hlásí upozornění, pokud volání kódu služby uživatele trvá déle než nakonfigurovaný čas. Po dokončení volání se upozornění vymaže.
- SourceId: System.RAP nebo System.Replicator
- Vlastnost: Název pomalého rozhraní API. Popis obsahuje další podrobnosti o době čekání rozhraní API.
- Další kroky: Prozkoumejte, proč volání trvá déle, než se čekalo.
Následující příklad ukazuje událost stavu z System.RAP pro spolehlivou službu, která nedodržuje token zrušení v RunAsync:
PS C:\> Get-ServiceFabricReplicaHealth -PartitionId 5f6060fb-096f-45e4-8c3d-c26444d8dd10 -ReplicaOrInstanceId 131483966141404693
PartitionId : 5f6060fb-096f-45e4-8c3d-c26444d8dd10
ReplicaId : 131483966141404693
AggregatedHealthState : Warning
UnhealthyEvaluations :
Unhealthy event: SourceId='System.RA', Property='Reconfiguration', HealthState='Warning', ConsiderWarningAsError=false.
HealthEvents :
SourceId : System.RAP
Property : IStatefulServiceReplica.ChangeRole(S)Duration
HealthState : Warning
SequenceNumber : 131483966663476570
SentAt : 8/28/2017 12:24:26 PM
ReceivedAt : 8/28/2017 12:24:56 PM
TTL : Infinite
Description : The api IStatefulServiceReplica.ChangeRole(S) on _Node_1 is stuck. Start Time (UTC): 2017-08-28 12:23:56.347.
RemoveWhenExpired : False
IsExpired : False
Transitions : Error->Warning = 8/28/2017 12:24:56 PM, LastOk = 1/1/0001 12:00:00 AM
Vlastnost a text označují, které rozhraní API se zaseklo. Další kroky, které je potřeba provést pro různá zablokovaná rozhraní API, se liší. Jakékoli rozhraní API na IStatefulServiceReplica nebo IStatelessServiceInstance je obvykle chybou v kódu služby. Následující část popisuje, jak se tyto funkce překládají na model Reliable Services:
IStatefulServiceReplica.Open: Toto upozornění indikuje, že volání
CreateServiceInstanceListeners
,ICommunicationListener.OpenAsync
nebo pokud je přepsáno,OnOpenAsync
je zablokované.IStatefulServiceReplica.Close a IStatefulServiceReplica.Abort: Nejběžnějším případem je služba, která nedodržuje token zrušení předaný do
RunAsync
. Může se také jednat o to, žeICommunicationListener.CloseAsync
se zablokuje , nebo pokud se přepisujeOnCloseAsync
.IStatefulServiceReplica.ChangeRole(S) a IStatefulServiceReplica.ChangeRole(N): Nejběžnějším případem je služba, která nedodržuje token zrušení předaný do
RunAsync
. V tomto scénáři je nejlepším řešením restartovat repliku.IStatefulServiceReplica.ChangeRole(P): Nejběžnějším případem je, že služba nevrátila úlohu z
RunAsync
.
Další volání rozhraní API, která se můžou zaseknout, jsou v rozhraní IReplicator . Příklad:
IReplicator.CatchupReplicaSet: Toto upozornění indikuje jednu ze dvou věcí. Není k dispozici dostatek replik. Pokud chcete zjistit, jestli se jedná o tento případ, podívejte se na stav replik replik v oddílu nebo na System.FM sestavě stavu, kde najdete zablokovanou rekonfiguraci. Nebo repliky nepotvrzují operace. Pomocí rutiny
Get-ServiceFabricDeployedReplicaDetail
PowerShellu můžete určit průběh všech replik. Problém spočívá v replikách, jejichžLastAppliedReplicationSequenceNumber
hodnota je za primárníCommittedSequenceNumber
hodnotou.IReplicator.BuildReplica(<Remote ReplicaId>): Toto upozornění indikuje problém v procesu sestavení. Další informace najdete v tématu Životní cyklus repliky. Příčinou může být nesprávná konfigurace adresy replikátoru. Další informace najdete v tématech Konfigurace stavových reliable services a Určení prostředků v manifestu služby. Může to být také problém na vzdáleném uzlu.
Sestavy stavu systému replikátoru
Fronta replikace je úplná:System.Replicator hlásí upozornění, když je fronta replikace plná. Na primárním serveru se fronta replikace obvykle zaplní, protože jedna nebo více sekundárních replik je pomalé při potvrzování operací. Na sekundárním zařízení k tomu obvykle dochází v případě, že služba provádí operace pomalu. Upozornění se vymaže, když už fronta není zaplněná.
- SourceId: System.Replicator
- Vlastnost: PrimaryReplicationQueueStatus nebo SecondaryReplicationQueueStatus v závislosti na roli repliky.
- Další kroky: Pokud je sestava na primárním serveru, zkontrolujte připojení mezi uzly v clusteru. Pokud jsou všechna připojení v pořádku, může být aspoň jedno pomalé sekundární s vysokou latencí disku, aby bylo možné použít operace. Pokud je sestava na sekundárním serveru, zkontrolujte nejprve využití a výkon disku na uzlu. Pak zkontrolujte odchozí připojení z pomalého uzlu k primárnímu uzlu.
RemoteReplicatorConnectionStatus:System.Replicator na primární replice hlásí upozornění, když připojení k sekundárnímu (vzdálenému) replikátoru není v pořádku. Ve zprávě sestavy se zobrazí adresa vzdáleného replikátoru, což usnadňuje zjišťování, jestli byla předána nesprávná konfigurace nebo jestli mezi replikátory došlo k problémům se sítí.
- SourceId: System.Replicator
- Vlastnost: RemoteReplicatorConnectionStatus.
- Další kroky: Zkontrolujte chybovou zprávu a ujistěte se, že je správně nakonfigurovaná adresa vzdáleného replikátoru. Pokud je například vzdálený replikátor otevřen s adresou naslouchání "localhost", není přístupný z vnějšku. Pokud adresa vypadá správně, zkontrolujte připojení mezi primárním uzlem a vzdálenou adresou a vyhledejte případné problémy se sítí.
Zaplněná fronta replikace
System.Replicator hlásí upozornění, když je fronta replikace plná. Na primárním serveru se fronta replikace obvykle zaplní, protože jedna nebo více sekundárních replik je pomalé při potvrzování operací. Na sekundárním zařízení k tomu obvykle dochází v případě, že služba provádí operace pomalu. Upozornění se vymaže, když už fronta není zaplněná.
- SourceId: System.Replicator
- Vlastnost: PrimaryReplicationQueueStatus nebo SecondaryReplicationQueueStatus v závislosti na roli repliky.
Pomalé operace pojmenování
System.NamingService hlásí stav své primární repliky, když operace pojmenování trvá déle, než je přijatelné. Příklady operací pojmenování jsou CreateServiceAsync nebo DeleteServiceAsync. Další metody najdete v části FabricClient. Najdete je například v části Metody správy služeb nebo metody správy vlastností.
Poznámka
Služba pojmenování přeloží názvy služeb do umístění v clusteru. Uživatelé ho můžou použít ke správě názvů a vlastností služeb. Jedná se o službu Service Fabric s trvalými oddíly. Jeden z oddílů představuje vlastníka autority, který obsahuje metadata o všech názvech a službách Service Fabric. Názvy Service Fabric se mapují na různé oddíly, označované jako oddíly vlastníka názvu , takže služba je rozšiřitelná. Přečtěte si další informace o službě Pojmenování.
Pokud operace pojmenování trvá déle, než se čekalo, označí se varovnou zprávou na primární replice oddílu služby pojmenování, který operaci obsluhuje. Pokud se operace úspěšně dokončí, upozornění se vymaže. Pokud se operace dokončí s chybou, zpráva o stavu obsahuje podrobnosti o chybě.
- SourceId: System.NamingService
- Vlastnost: Začíná předponou "Duration_" a identifikuje pomalou operaci a název Service Fabric, na který se operace používá. Pokud například vytvoření služby na adrese name fabric:/MyApp/MyService trvá příliš dlouho, vlastnost je Duration_AOCreateService.fabric:/MyApp/MyService. "AO" odkazuje na roli oddílu pro vytváření názvů pro tento název a operaci.
- Další kroky: Zkontrolujte, proč operace pojmenování selže. Každá operace může mít různé původní příčiny. Může se například zaseknout služba odstranění. Služba může být zablokovaná, protože hostitel aplikace neustále chybově dochází na uzlu kvůli chybě uživatele v kódu služby.
Následující příklad ukazuje operaci vytvoření služby. Operace trvala déle, než je nakonfigurovaná doba trvání. "AO" opakování a odešle práci na "NE". "NE" dokončila poslední operaci s VYPRŠENÍM ČASOVÉHO LIMITU. V tomto případě je pro roli AO i NE primární stejná replika.
PartitionId : 00000000-0000-0000-0000-000000001000
ReplicaId : 131064359253133577
AggregatedHealthState : Warning
UnhealthyEvaluations :
Unhealthy event: SourceId='System.NamingService', Property='Duration_AOCreateService.fabric:/MyApp/MyService', HealthState='Warning', ConsiderWarningAsError=false.
HealthEvents :
SourceId : System.RA
Property : State
HealthState : Ok
SequenceNumber : 131064359308715535
SentAt : 4/29/2016 8:38:50 PM
ReceivedAt : 4/29/2016 8:39:08 PM
TTL : Infinite
Description : Replica has been created.
RemoveWhenExpired : False
IsExpired : False
Transitions : Error->Ok = 4/29/2016 8:39:08 PM, LastWarning = 1/1/0001 12:00:00 AM
SourceId : System.NamingService
Property : Duration_AOCreateService.fabric:/MyApp/MyService
HealthState : Warning
SequenceNumber : 131064359526778775
SentAt : 4/29/2016 8:39:12 PM
ReceivedAt : 4/29/2016 8:39:38 PM
TTL : 00:05:00
Description : The AOCreateService started at 2016-04-29 20:39:08.677 is taking longer than 30.000.
RemoveWhenExpired : True
IsExpired : False
Transitions : Error->Warning = 4/29/2016 8:39:38 PM, LastOk = 1/1/0001 12:00:00 AM
SourceId : System.NamingService
Property : Duration_NOCreateService.fabric:/MyApp/MyService
HealthState : Warning
SequenceNumber : 131064360657607311
SentAt : 4/29/2016 8:41:05 PM
ReceivedAt : 4/29/2016 8:41:08 PM
TTL : 00:00:15
Description : The NOCreateService started at 2016-04-29 20:39:08.689 completed with FABRIC_E_TIMEOUT in more than 30.000.
RemoveWhenExpired : True
IsExpired : False
Transitions : Error->Warning = 4/29/2016 8:39:38 PM, LastOk = 1/1/0001 12:00:00 AM
Sestavy stavu systému nasazených aplikací
System.Hosting je autorita nasazených entit.
Aktivace
System.Hosting hlásí jako OK, když byla aplikace na uzlu úspěšně aktivována. V opačném případě hlásí chybu.
- SourceId: System.Hosting
- Vlastnost: Aktivace, včetně verze uvedení.
- Další kroky: Pokud aplikace není v pořádku, prozkoumejte, proč se aktivace nezdařila.
Následující příklad ukazuje úspěšnou aktivaci:
PS C:\> Get-ServiceFabricDeployedApplicationHealth -NodeName _Node_1 -ApplicationName fabric:/WordCount -ExcludeHealthStatistics
ApplicationName : fabric:/WordCount
NodeName : _Node_1
AggregatedHealthState : Ok
DeployedServicePackageHealthStates :
ServiceManifestName : WordCountServicePkg
ServicePackageActivationId :
NodeName : _Node_1
AggregatedHealthState : Ok
HealthEvents :
SourceId : System.Hosting
Property : Activation
HealthState : Ok
SequenceNumber : 131445249083836329
SentAt : 7/14/2017 4:55:08 PM
ReceivedAt : 7/14/2017 4:55:14 PM
TTL : Infinite
Description : The application was activated successfully.
RemoveWhenExpired : False
IsExpired : False
Transitions : Error->Ok = 7/14/2017 4:55:14 PM, LastWarning = 1/1/0001 12:00:00 AM
Stáhnout
System.Hosting hlásí chybu, pokud stahování balíčku aplikace selže.
- SourceId: System.Hosting
- Vlastnost: Stáhnout, včetně verze uvedení.
- Další kroky: Prozkoumejte, proč se stahování na uzlu nezdařilo.
Sestavy stavu systému DeployedServicePackage
System.Hosting je autorita nasazených entit.
Aktivace balíčku služby
System.Hosting hlásí jako OK, pokud je aktivace balíčku služby na uzlu úspěšná. V opačném případě hlásí chybu.
- SourceId: System.Hosting
- Vlastnost: Aktivace.
- Další kroky: Zjistěte, proč aktivace selhala.
Aktivace balíčku kódu
System.Hosting hlásí jako OK pro každý balíček kódu, pokud je aktivace úspěšná. Pokud se aktivace nezdaří, hlásí upozornění podle konfigurace. Pokud se codePackage nepodaří aktivovat nebo se ukončí s chybou větší než nakonfigurovaná hodnota CodePackageHealthErrorThreshold, hostitel hlásí chybu. Pokud balíček služby obsahuje více balíčků kódu, pro každý z nich se vygeneruje sestava aktivace.
- SourceId: System.Hosting
- Vlastnost: Používá předponu CodePackageActivation a obsahuje název balíčku kódu a vstupní bod jako CodePackageActivation:CodePackageName:SetupEntryPoint/EntryPoint. Například CodePackageActivation:Code:SetupEntryPoint.
Registrace typu služby
System.Hosting hlásí jako OK, pokud byl typ služby úspěšně zaregistrován. Pokud registrace nebyla provedena včas, jak je nakonfigurované pomocí ServiceTypeRegistrationTimeout, hlásí chybu. Pokud je modul runtime zavřený, typ služby se zruší registrace z uzlu a hostitel hlásí upozornění.
- SourceId: System.Hosting
- Vlastnost: Používá předponu ServiceTypeRegistration a obsahuje název typu služby. Například ServiceTypeRegistration:FileStoreServiceType.
Následující příklad ukazuje balíček nasazené služby v pořádku:
PS C:\> Get-ServiceFabricDeployedServicePackageHealth -NodeName _Node_1 -ApplicationName fabric:/WordCount -ServiceManifestName WordCountServicePkg
ApplicationName : fabric:/WordCount
ServiceManifestName : WordCountServicePkg
ServicePackageActivationId :
NodeName : _Node_1
AggregatedHealthState : Ok
HealthEvents :
SourceId : System.Hosting
Property : Activation
HealthState : Ok
SequenceNumber : 131445249084026346
SentAt : 7/14/2017 4:55:08 PM
ReceivedAt : 7/14/2017 4:55:14 PM
TTL : Infinite
Description : The ServicePackage was activated successfully.
RemoveWhenExpired : False
IsExpired : False
Transitions : Error->Ok = 7/14/2017 4:55:14 PM, LastWarning = 1/1/0001 12:00:00 AM
SourceId : System.Hosting
Property : CodePackageActivation:Code:EntryPoint
HealthState : Ok
SequenceNumber : 131445249084306362
SentAt : 7/14/2017 4:55:08 PM
ReceivedAt : 7/14/2017 4:55:14 PM
TTL : Infinite
Description : The CodePackage was activated successfully.
RemoveWhenExpired : False
IsExpired : False
Transitions : Error->Ok = 7/14/2017 4:55:14 PM, LastWarning = 1/1/0001 12:00:00 AM
SourceId : System.Hosting
Property : ServiceTypeRegistration:WordCountServiceType
HealthState : Ok
SequenceNumber : 131445249088096842
SentAt : 7/14/2017 4:55:08 PM
ReceivedAt : 7/14/2017 4:55:14 PM
TTL : Infinite
Description : The ServiceType was registered successfully.
RemoveWhenExpired : False
IsExpired : False
Transitions : Error->Ok = 7/14/2017 4:55:14 PM, LastWarning = 1/1/0001 12:00:00 AM
Stáhnout
System.Hosting hlásí chybu, pokud stahování balíčku služby selže.
- SourceId: System.Hosting
- Vlastnost: Stáhnout, včetně verze uvedení.
- Další kroky: Prozkoumejte, proč se stahování na uzlu nezdařilo.
Ověření upgradu
System.Hosting hlásí chybu, pokud se ověření během upgradu nezdaří nebo pokud upgrade selže na uzlu.
- SourceId: System.Hosting
- Vlastnost: Používá předponu FabricUpgradeValidation a obsahuje verzi upgradu.
- Popis: Odkazuje na chybu, ke které došlo.
Nedefinovaná kapacita uzlu pro metriky zásad správného řízení prostředků
System.Hosting hlásí upozornění, pokud v manifestu clusteru nejsou definované kapacity uzlů a konfigurace automatického zjišťování je vypnutá. Service Fabric vyvolá upozornění na stav pokaždé, když se balíček služby, který používá zásady správného řízení prostředků , zaregistruje na zadaném uzlu.
- SourceId: System.Hosting
- Vlastnost: ResourceGovernance.
- Další kroky: Upřednostňovaným způsobem, jak tento problém vyřešit, je změnit manifest clusteru tak, aby umožňoval automatické zjišťování dostupných prostředků. Dalším způsobem je aktualizovat manifest clusteru pomocí správně zadaných kapacit uzlů pro tyto metriky.