Sdílet prostřednictvím


Použití sestav o stavu systému k řešení problémů

Komponenty Azure Service Fabric poskytují sestavy stavu systému pro všechny entity v clusteru přímo od tohoto pole. Ú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 o modelu 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 se entity implementují a chovají se správně z pohledu Service Fabric. Sestavy neposkytují žádné monitorování stavu obchodní logiky služby ani zjišťování procesů, které nereagují. Uživatelské služby můžou obohatit data o stavu informacemi specifickými pro jejich logiku.

Poznámka:

Sestavy stavu odesílané uživatelskými kukátkami jsou viditelné až po vytvoření entity systémovými komponentami. Když je entita odstraněna, úložiště stavu automaticky odstraní všechny sestavy stavu přidružené k ní. 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.. Watchdogs nemůže použít stejnou předponu pro své zdroje, protože sestavy s neplatnými parametry jsou odmítnuty.

Pojďme se podívat na některé systémové sestavy, abychom pochopili, co je aktivuje, a zjistěte, jak opravit potenciální problémy, které představují.

Poznámka:

Service Fabric dál přidává sestavy o podmínkách zájmu, které zlepšují přehled o tom, co se děje v clusteru a aplikacích. Existují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 automaticky vytvoří 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 je z jednotlivých uzlů a ID uzlu je součástí názvu vlastnosti. Pokud dojde ke ztrátě jedné čtvrti v celém okruhu Service Fabric, můžete obvykle očekávat dvě události, které představují obě strany sestavy mezery. Pokud dojde ke ztrátě více sousedství, dojde k více událostem.

Sestava určuje časový limit globálního zapůjčení jako hodnotu TTL (Time to Live). Sestava se znovu odešle po polovinu doby trvání hodnoty TTL, dokud podmínka zůstane aktivní. Událost se automaticky odebere, jakmile vyprší její platnost. Chování odebrání po vypršení platnosti zajišťuje, že se sestava správně vyčistí z úložiště stavu, i když je uzel pro generování sestav mimo provoz.

  • SourceId: System.Federation
  • Vlastnost: Začíná s okolím a obsahuje informace o uzlu.
  • Další kroky: Prozkoumejte, proč se okolí ztratí. 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í data a přejde do ztráty dat, nemůže zaručit, že obsahuje nejaktuálnější informace o uzlech clusteru. V tomto případě systém prochází opětovným sestavením a System.FM shromažďuje data ze všech uzlů v clusteru za účelem opětovného sestavení stavu. Někdy se kvůli problémům se sítěmi nebo uzly může opětovné sestavení zaseknout nebo zastavit. Totéž se může stát u 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 FM v clusteru. Primárním serverem FMM je vždy uzel s ID nejblíže 0. Pokud se tento uzel zahodí, aktivuje se opětovné sestavení. Když dojde k některé z předchozích podmínek, System.FM nebo System.FMM ji označí prostřednictvím zprávy o chybě. Opětovné sestavení může být zablokované v jedné ze dvou fází:

  • Čekání na vysílání: FM/FMM čeká na odpověď zprávy všesměrového vysílání z ostatních uzlů.

    • Další kroky: Zkontrolujte, jestli mezi uzly nedochází k problému s připojením k síti.
  • Čekání na uzly: FM/FMM již obdržela odpověď vysílání z ostatních uzlů a čeká na odpověď z konkrétních uzlů. Zpráva o stavu uvádí uzly, pro které FM/FMM čeká na odpověď.

    • Další kroky: Prozkoumejte síťové připojení mezi FM/FMM a uvedenými uzly. Prozkoumejte každý uvedený uzel, kde najdete další možné problémy.
  • ID zdroje: System.FM nebo System.FMM

  • Vlastnost: Znovu sestavit.

  • Další kroky: Prozkoumejte síťové připojení mezi uzly a stav všech konkrétních uzlů, které jsou uvedeny v popisu sestavy 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 vzhůru vytvořením zapůjčení s jinými uzly a obsluhou jako tiebreakery během určitých druhů selhání sítě. Pokud je většina počátečních uzlů v clusteru vypnutá a nepřinesou se zpět, cluster se automaticky vypne.

Počáteční uzel není v pořádku, pokud je jeho stav uzlu nižší, odebraný nebo neznámý. Zpráva upozornění pro stav počátečního uzlu zobrazí seznam všech počátečních uzlů, které nejsou v pořádku, s podrobnými informacemi.

  • ID zdroje: System.FM
  • Vlastnost: SeedNodeStatus
  • Další kroky: Pokud se v clusteru zobrazí toto upozornění, postupujte podle následujících pokynů a opravte ho: V případě clusteru Service Fabric verze 6.5 nebo vyšší: V případě clusteru Service Fabric v Azure se po výpadku počátečního uzlu pokusí Service Fabric automaticky změnit na jiný než počáteční uzel. Aby k tomu došlo, ujistěte se, že počet uzlů, které nejsou počátečními uzly v primárním typu uzlu, je větší nebo roven počtu počátečních uzlů dolů. 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 nějakou dobu trvat, než problém vyřešíte. Jakmile to uděláte, sestava upozornění se automaticky vymaže.

Pokud chcete vymazat sestavu upozornění, musí být všechny počáteční uzly v samostatném clusteru Service Fabric v pořádku. V závislosti na tom, proč počáteční uzly nejsou v pořádku, je potřeba provést různé akce: pokud je počáteční uzel down, uživatelé musí tento počáteční uzel přenést nahoru; Pokud je počáteční uzel odebrán nebo Neznámý, je nutné tento počáteční uzel z clusteru odebrat. Když se všechny počáteční uzly stanou v pořádku, sestava upozornění se automaticky vymaže.

V případě clusteru se starší verzí Service Fabric než 6.5: V tomto případě musí být zpráva upozornění vymazána ručně. Uživatelé by měli před vymazáním sestavy zajistit, aby byly všechny počáteční uzly v pořádku: pokud je počáteční uzel nižší, uživatelé musí tento počáteční uzel přenést nahoru; Pokud je počáteční uzel odebrán nebo Neznámý, musí být z clusteru odebrán počáteční uzel. 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 se stavem. Entity uzlu se odeberou při odebrání stavu uzlu. Další informace naleznete v tématu RemoveNodeStateAsync.

Uzel nahoru/dolů

System.FM sestavy jako OK, když se uzel připojí k okruhu (je spuštěný). Hlásí chybu, když uzel odchází z okruhu (je vypnutý, buď kvůli upgradu, nebo jednoduše proto, že selhal). Hierarchie stavu vytvořená úložištěm stavu funguje na nasazených entitách v korelaci se sestavami System.FM uzlů. Považuje uzel za virtuální nadřazený prvek všech nasazených entit. Nasazené entity na tomto uzlu se zveřejňují prostřednictvím dotazů, pokud je uzel hlášený System.FM se stejnou instancí jako instance přidružená k entitám. Když System.FM sestavy, že uzel je vypnutý nebo restartovaný jako nová instance, úložiště stavu automaticky vyčistí nasazené entity, které můžou existovat pouze v dolním uzlu nebo v předchozí instanci uzlu.

  • SourceId: System.FM
  • Vlastnost: State.
  • Další kroky: Pokud je uzel pro upgrade mimo provoz, měl by se po upgradu vrátit zpět. V takovém případě by se stav měl přepnout zpět na OK. Pokud se uzel nevrátí nebo selže, problém potřebuje další šetření.

Následující příklad ukazuje událost System.FM se stavem OK pro uzel nahoru:

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 aspoň dva týdny pryč, 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á certifikátem a obsahuje další informace o typu certifikátu.
  • Další kroky: Aktualizujte certifikáty, pokud se blíží vypršení platnosti.

Narušení kapacity zatížení

Service Fabric Load Balancer hlásí upozornění, když zjistí porušení kapacity uzlu.

  • SourceId: System.PLB
  • Vlastnost: Začíná s 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 uzlů pro metriky zásad správného řízení prostředků (paměť a jádra procesoru). Sestava stavu se zobrazí, když první balíček služby, který používá registr zásad správného řízení prostředků v 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 se správnými kapacitami 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.

State

System.CM sestavy jako OK, když byla aplikace vytvořena nebo aktualizována. Informuje úložiště stavu, když je aplikace odstraněna, aby ji bylo možné z úložiště odebrat.

  • SourceId: System.CM
  • Vlastnost: State.
  • 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 vystavením dotazu. Použijte například rutinu PowerShellu Get-ServiceFabricApplication -ApplicationName applicationName.

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žeb

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.

State

System.FM sestavy jako OK při vytváření služby. Při odstranění služby odstraní entitu z úložiště stavu.

  • SourceId: System.FM
  • Vlastnost: State.

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 souvisí s jinou službou, která vytváří řetěz vztahů. Sestava se vymaže, když dojde k úspěšné aktualizaci.

  • SourceId: System.PLB
  • Vlastnost: ServiceDescription.
  • Další kroky: Zkontrolujte popisy korelovaných služeb.

Sestavy stavu systému oddílů

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.

State

System.FM sestavy jako OK, když byl oddíl vytvořen a je v pořádku. Při odstranění oddílu odstraní entitu z úložiště stavu.

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 pod počtem cílových replik, hlásí upozornění. Pokud dochází ke ztrátě kvora oddílu, System.FM hlásí chybu.

Mezi další velmi vhodné události patří upozornění, když rekonfigurace trvá déle, než se čekalo, a když sestavení trvá déle, než se čekalo. Očekávané časy sestavení a rekonfigurace se dají konfigurovat na základě scénářů 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.

  • SourceId: System.FM
  • Vlastnost: State.
  • Další kroky: Pokud stav není v pořádku, je možné, že některé repliky nebyly vytvořeny, otevřeny nebo povýšeny na primární nebo sekundární správně.

Pokud popis popisuje ztrátu kvora, prozkoumáte podrobnou sestavu stavu pro repliky, které jsou dole, a jejich zálohování pomáhá přenést oddíl zpět do režimu online.

Pokud popis popisuje oddíl zablokovaný v rekonfiguraci, pak sestava stavu na primární replice poskytuje další informace.

V případě jiných System.FM zpráv o stavu by existovaly sestavy replik nebo oddílů nebo služeb 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, což je v tomto případě pět. V tomto případě tedy nelze 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 neresektuje token zrušení v metodě RunAsync . Zkoumání zprávy o stavu jakékoli repliky označené jako primární (P) může pomoct přejít k podrobnostem problému dál.

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 ukazuje stav replik oddílů, které procházejí rekonfigurací:

  P/S Ready Node1 131482789658160654
  S/P Ready Node2 131482789688598467
  S/S Ready Node3 131482789688598468

Pro každou repliku obsahuje sestava stavu:

  • 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ě podobném příkladu je potřeba další šetření. Prozkoumejte stav každé jednotlivé repliky počínaje replikami označenými jako Primary a Secondary (131482789658160654 a 131482789688598467) v předchozím příkladu.

Porušení omezení repliky

System.PLB hlásí upozornění, pokud zjistí porušení omezení repliky a nemůže umístit všechny repliky oddílů. Podrobnosti sestavy ukazují, která omezení a vlastnosti brání umístění repliky.

  • SourceId: System.PLB
  • Vlastnost: Začíná replikouConstraintViolation.

Sestavy stavu systému repliky

System.RA, která představuje součást agenta rekonfigurace, je autorita pro stav repliky.

State

System.RA hlásí OK, když byla vytvořena replika.

  • SourceId: System.RA
  • Vlastnost: State.

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 slouží k označení upozornění nebo selhání při pokusu o otevření repliky, zavření repliky nebo převod repliky z jedné role na jinou. Další informace najdete v tématu Životní cyklus repliky. Selhání můžou být výjimky vyvolané voláním rozhraní API nebo selháním 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 jazyka C# přidá Service Fabric do sestavy stavu výjimku a trasování zásobníku.

Tato upozornění stavu se vyvolá po opakování akce místně (v závislosti na zásadách). Service Fabric opakuje akci až do maximální prahové hodnoty. Po dosažení maximální prahové hodnoty se může pokusit situaci opravit. Tento pokus může způsobit, že se tato upozornění vymažou, protože se vrátí k akci na tomto uzlu. Pokud se například replika nedaří otevřít na uzlu, Service Fabric vyvolá upozornění na stav. Pokud se replika stále nedaří otevřít, Service Fabric se chová jako samoobslužná oprava. Tato akce může zahrnovat pokus o stejnou operaci na jiném uzlu. Tento pokus způsobí vymazání upozornění vyvolané 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á se během zavření neustále chybově ukončuje:

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 je rekonfigurace zastavená nebo zablokovaná. Tato sestava stavu může být na replice, jejíž aktuální role je primární, s výjimkou případů prohození primární rekonfigurace, kde může být na replice, která se degraduje z primární na aktivní sekundární.

Rekonfigurace se může zaseknout z jednoho z následujících důvodů:

  • Akce na místní replice, která je stejná jako replika provádějící rekonfiguraci, se nedokončuje. V tomto případě může vyšetřování zpráv o stavu této repliky z jiných komponent, System.RAP nebo System.RE poskytnout další informace.

  • Akce se nedokončuje na vzdálené replice. Repliky, na které čekají akce, jsou uvedené v sestavě stavu. Další šetření by se mělo provést u zpráv o stavu těchto vzdálených replik. Mezi tímto uzlem a vzdáleným uzlem můžou být také problémy s komunikací.

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

Následující příklad ukazuje sestavu stavu, ve které je rekonfigurace zablokovaná na místní replice. V této ukázce je příčinou služba, která nedotkuje 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, kde 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ího primárního oddílu.

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 se zasekla 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í konfigurační role
  • Aktuální konfigurační role
  • Stav repliky
  • ID uzlu
  • ID repliky

Odblokování rekonfigurace:

  • Repliky dolů by se měly zobrazit.
  • Repliky inbuild by měly dokončit sestavení a přechod 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ž je 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ě, kdy rozhraní API čeká na vyřízení.
  • Další kroky: Zjistěte, proč volání trvá déle, než se čekalo.

Následující příklad ukazuje událost stavu ze system.RAP pro spolehlivou službu, která neresektuje 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 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 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á nedotkuje token zrušení předaný RunAsyncdo . Může to být také tak, že ICommunicationListener.CloseAsyncse při přepsání OnCloseAsync zasekne.

  • IStatefulServiceReplica.ChangeRole(S) a IStatefulServiceReplica.ChangeRole(N): Nejběžnějším případem je služba, která nedotkuje token zrušení předaný 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í IReplicatoru . Příklad:

  • IReplicator.CatchupReplicaSet: Toto upozornění označuje jednu ze dvou věcí. Repliky nejsou dostatečné. Pokud chcete zjistit, jestli tomu tak je, podívejte se na stav replik replik v oddílu nebo na sestavu stavu System.FM pro zablokované rekonfigurace. 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 hodnotou primárního CommittedSequenceNumber serveru.

  • 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 chybná konfigurace adresy replikátoru. Další informace naleznete v tématu Konfigurace stavových Reliable Services a Určení prostředků v manifestu služby. Může se jednat také o problém na vzdáleném uzlu.

Sestavy stavu systému replikátoru

Plná fronta replikace: System.Replicator hlásí upozornění, když je fronta replikace plná. Fronta replikace se obvykle zaplní, protože jedna nebo více sekundárních replik je pomalé potvrdit operace. Na sekundární straně k tomu obvykle dochází v případě, že je služba pomalá, aby operace použila. Upozornění se vymaže, když už fronta není plná.

  • 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, pro použití operací může existovat alespoň jedna pomalá sekundární s vysokou latencí disku. Pokud je sestava na sekundárním serveru, nejprve zkontrolujte využití disku a výkon na uzlu. Potom zkontrolujte odchozí připojení z pomalého uzlu do primárního uzlu.

RemoteReplicatorConnectionStatus:System.Replicator na primární replice hlásí upozornění, když není připojení k sekundárnímu (vzdálenému) replikátoru v pořádku. Adresa vzdáleného replikátoru se zobrazí ve zprávě sestavy, což usnadňuje zjištění, jestli byla předána nesprávná konfigurace nebo jestli došlo k problémům se sítí mezi replikátory.

  • SourceId: System.Replicator
  • Vlastnost: RemoteReplicatorConnectionStatus.
  • Další kroky: Zkontrolujte chybovou zprávu a ujistěte se, že je adresa vzdáleného replikátoru správně nakonfigurovaná. Pokud je například vzdálený replikátor otevřen s adresou naslouchacího procesu localhost, není dostupný zvenčí. 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í.

Plná fronta replikace

System.Replicator hlásí upozornění, když je fronta replikace zaplněná. Fronta replikace se obvykle zaplní, protože jedna nebo více sekundárních replik je pomalé potvrdit operace. Na sekundární straně k tomu obvykle dochází v případě, že je služba pomalá, aby operace použila. Upozornění se vymaže, když už fronta není plná.

  • SourceId: System.Replicator
  • Vlastnost: PrimaryReplicationQueueStatus nebo SecondaryReplicationQueueStatus v závislosti na roli repliky.

Pomalé operace pojmenování

System.NamingService hlásí stav 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 rámci metod správy služeb nebo metod správy vlastností.

Poznámka:

Služba pojmenování překládá 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ým dělením. 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ík názvu, takže je služba 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, operace se označí upozorněním na primární repliku oddílu služby Pojmenování, který tuto operaci obsluhuje. Pokud se operace úspěšně dokončí, upozornění se vymaže. Pokud se operace dokončí s chybou, sestava 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ém se operace použije. Pokud například vytvoření služby s názvem fabric:/MyApp/MyService trvá příliš dlouho, je tato vlastnost Duration_AOCreateService.fabric:/MyApp/MyService. AO odkazuje na roli oddílu pojmenování 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. Například služba odstranění může být zablokovaná. Služba může být zablokovaná, protože hostitel aplikace se na uzlu pořád chybově ukončí 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" opakuje pokusy a odesílá práci do "NE". Funkce NE dokončila poslední operaci s časovým limitem. V tomto případě je stejná replika primární pro role AO i NO.

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

Nasazené sestavy stavu systémuApplication

System.Hosting je autorita nasazených entit.

Aktivace

System.Hosting sestavy jako OK, pokud byla aplikace úspěšně aktivována na uzlu. 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č aktivace selhala.

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: Zjistěte, proč stahování uzlu selhalo.

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 v 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 sestavy jako OK pro každý balíček kódu, pokud je aktivace úspěšná. Pokud se aktivace nezdaří, nahlásí upozornění podle konfigurace. Pokud se codePackage nepodaří aktivovat nebo ukončit s chybou větší než nakonfigurovaná chyba CodePackageHealthErrorThreshold, hostování hlásí chybu. Pokud balíček služby obsahuje více balíčků kódu, vygeneruje se pro každý z nich aktivační sestava.

  • 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 sestavy jako OK, pokud byl typ služby úspěšně zaregistrován. Hlásí chybu, pokud se registrace nekonfigurovala včas, jak je nakonfigurováno pomocí ServiceTypeRegistrationTimeout. Pokud je modul runtime zavřený, typ služby se z uzlu zruší a hostitel oznámí 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, který je 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: Zjistěte, proč stahování uzlu selhalo.

Ověření upgradu

System.Hosting hlásí chybu, pokud ověření během upgradu selže nebo pokud upgrade selže na uzlu.

  • SourceId: System.Hosting
  • Vlastnost: Používá předponu FabricUpgradeValidation a obsahuje verzi upgradu.
  • Popis: Odkazuje na zjištěnou chybu.

Nedefinovaná kapacita uzlu pro metriky zásad správného řízení prostředků

System.Hosting hlásí upozornění, pokud kapacity uzlů nejsou definovány v manifestu clusteru 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 v zadaném uzlu.

  • SourceId: System.Hosting
  • Vlastnost: ResourceGovernance.
  • Další kroky: Upřednostňovaným způsobem, jak tento problém překonat, je změnit manifest clusteru tak, aby umožňoval automatické zjišťování dostupných prostředků. Dalším způsobem je aktualizace manifestu clusteru pomocí správně zadaných kapacit uzlů pro tyto metriky.

Další kroky