Ř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.OpenAsyncnebo 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, že ICommunicationListener.CloseAsyncse zablokuje , nebo pokud se přepisuje OnCloseAsync .

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

Další kroky