Sdílet prostřednictvím


sfctl chaos

Spusťte, zastavte a nahlaste testovací službu chaosu.

Podskupiny

Podskupina Popis
schedule Získejte a nastavte plán chaosu.

Příkazy

Příkaz Popis
events Získá další segment událostí chaosu na základě tokenu pokračování nebo časového rozsahu.
get Získejte stav Chaosu.
start Spustí chaos v clusteru.
Zastavit Zastaví chaos, pokud je spuštěný v clusteru a umístí plán chaosu do zastaveného stavu.

sfctl chaos events

Získá další segment událostí chaosu na základě tokenu pokračování nebo časového rozsahu.

Pokud chcete získat další segment událostí chaosu, můžete zadat ContinuationToken. Chcete-li získat začátek nového segmentu událostí chaosu, můžete určit časový rozsah prostřednictvím StartTimeUtc a EndTimeUtc. Ve stejném volání nelze zadat hodnotu ContinuationToken i časový rozsah. Pokud existuje více než 100 událostí chaosu, vrátí se události Chaosu ve více segmentech, kde segment neobsahuje více než 100 událostí chaosu a získat další segment, který zavoláte do tohoto rozhraní API s tokenem pokračování.

Argumenty

Argument Popis
--continuation-token Parametr tokenu pokračování slouží k získání další sady výsledků. Token pro pokračování s neprázdnou hodnotou se zahrne do odpovědi rozhraní API, když se výsledky ze systému nevejdou do jedné odpovědi. Když se tato hodnota předá dalšímu volání rozhraní API, vrátí rozhraní API další sadu výsledků. Pokud neexistují žádné další výsledky, token pokračování neobsahuje hodnotu. Hodnota tohoto parametru by neměla být zakódovaná adresou URL.
--end-time-utc Čas souboru systému Windows představující koncový čas časového rozsahu, pro který má být generována sestava Chaos. Podrobnosti najdete v metodě DateTime.ToFileTimeUtc .
--max-results Maximální počet výsledků, které se mají vrátit jako součást stránkovaných dotazů. Tento parametr definuje horní mez počtu vrácených výsledků. Vrácené výsledky můžou být menší než zadané maximální výsledky, pokud se nevejdou do zprávy podle omezení maximální velikosti zprávy definované v konfiguraci. Pokud je tento parametr nulový nebo není zadaný, stránkovaný dotaz obsahuje co nejvíce výsledků, které se vejdou do návratové zprávy.
--start-time-utc Čas souboru systému Windows představující počáteční čas časového rozsahu, pro který se má vygenerovat sestava chaosu. Podrobnosti najdete v metodě DateTime.ToFileTimeUtc .
--timeout -t Časový limit serveru pro provedení operace v sekundách. Tento časový limit určuje dobu, po kterou je klient ochotný počkat na dokončení požadované operace. Výchozí hodnota tohoto parametru je 60 sekund. Výchozí hodnota: 60.

Globální argumenty

Argument Popis
--ladicí Zvyšte úroveň podrobností protokolování, aby se zobrazily všechny protokoly ladění.
--help -h Zobrazte tuto zprávu nápovědy a ukončete ji.
--output -o Výstupní formát Povolené hodnoty: json, jsonc, table, tsv. Výchozí hodnota: json.
--dotaz Řetězec dotazu JMESPath Další http://jmespath.org/ informace a příklady najdete v tématu.
--užvaněný Zvyšte úroveň podrobností protokolování. K úplnému ladění protokolů použijte příkaz --debug.

sfctl chaos get

Získejte stav Chaosu.

Získejte stav Chaos označující, jestli je chaos spuštěný, parametry chaosu používané pro spuštění chaosu a stav plánu chaosu.

Argumenty

Argument Popis
--timeout -t Časový limit serveru pro provedení operace v sekundách. Tento časový limit určuje dobu, po kterou je klient ochotný počkat na dokončení požadované operace. Výchozí hodnota tohoto parametru je 60 sekund. Výchozí hodnota: 60.

Globální argumenty

Argument Popis
--ladicí Zvyšte úroveň podrobností protokolování, aby se zobrazily všechny protokoly ladění.
--help -h Zobrazte tuto zprávu nápovědy a ukončete ji.
--output -o Výstupní formát Povolené hodnoty: json, jsonc, table, tsv. Výchozí hodnota: json.
--dotaz Řetězec dotazu JMESPath Další http://jmespath.org/ informace a příklady najdete v tématu.
--užvaněný Zvyšte úroveň podrobností protokolování. K úplnému ladění protokolů použijte příkaz --debug.

sfctl chaos start

Spustí chaos v clusteru.

Pokud chaos v clusteru ještě není spuštěný, spustí chaos s předanými parametry chaosu. Pokud je při tomto volání spuštěný chaos, volání selže s kódem chyby FABRIC_E_CHAOS_ALREADY_RUNNING. Další podrobnosti najdete v článku Indukování řízeného chaosu v clusterech Service Fabric.

Argumenty

Argument Popis
--app-type-health-policy-map Pole položek slovníku (klíč/hodnota) s kódováním JSON s maximálním procentem aplikací, které nejsou v pořádku, pro konkrétní typy aplikací. Každá položka slovníku určuje jako klíč název typu aplikace a celé číslo pro hodnotu, která představuje procento MaxPercentUnhealthyApplications použité k vyhodnocení aplikací zadaného typu aplikace.

Definuje mapu s maximálním procentem aplikací, které nejsou v pořádku pro konkrétní typy aplikací. Mapu zásad stavu typu aplikace je možné použít při vyhodnocování stavu clusteru k popisu jednotlivých typů aplikací. Typy aplikací zahrnuté v mapě se vyhodnocují v procentech zadaných v mapě, a ne u globálních maxPercentUnhealthyApplications definovaných v zásadách stavu clusteru. Aplikace typů aplikací zadaných v mapě se nezapočítávají do globálního fondu aplikací. Pokud jsou například některé aplikace typu kritické, může správce clusteru přidat položku do mapy pro daný typ aplikace a přiřadit ji hodnotě 0 % (netolerujte žádné chyby). Všechny ostatní aplikace je možné vyhodnotit pomocí MaxPercentUnhealthyApplications nastavené na 20 %, aby tolerovaly některá selhání z tisíců instancí aplikace. Mapa zásad stavu typu aplikace se používá pouze v případě, že manifest clusteru umožňuje vyhodnocení stavu typu aplikace pomocí položky konfigurace pro HealthManager/EnableApplicationTypeHealthEvaluation.

Příklad řetězce kódovaného ve formátu JSON: [{"key": "fabric:/Voting", "value": "0"}]
--chaos-target-filter Kódovaný slovník JSON se dvěma klíči typu řetězce Dva klíče jsou NodeTypeInclusionList a ApplicationInclusionList. Hodnoty obou těchto klíčů jsou seznamem řetězců. chaos_target_filter definuje všechny filtry pro cílené chyby chaosu, například chybování pouze určitých typů uzlů nebo chybování pouze určitých aplikací.

Pokud se chaos_target_filter nepoužívá, chaos chybuje všechny entity clusteru. Pokud chaos_target_filter použijete, chaos chybuje pouze entity, které splňují specifikaci chaos_target_filter. NodeTypeInclusionList a ApplicationInclusionList umožňují sémantika sjednocení pouze. Není možné zadat průnik NodeTypeInclusionList a ApplicationInclusionList. Například není možné zadat "chyba této aplikace pouze v případě, že je v daném typu uzlu". Jakmile je entita zahrnuta v NodeTypeInclusionList nebo ApplicationInclusionList, nelze tuto entitu vyloučit pomocí ChaosTargetFilter. I když se applicationX nezobrazí v ApplicationInclusionList, v některých Chaos iteration applicationX může být chybný, protože se stane na uzlu nodeTypeY, který je součástí NodeTypeInclusionList. Pokud jsou oba NodeTypeInclusionList a ApplicationInclusionList prázdné, je vyvolána výjimka ArgumentException. Pro uzly těchto typů uzlů jsou povolené všechny typy chyb (restartování uzlu, restartování balíčku kódu, odebrání repliky, restartování repliky, přesunutí primárního a sekundárního). Pokud se typ uzlu (řekněme NodeTypeX) nezobrazuje v NodeTypeInclusionListu, chyby na úrovni uzlů (například NodeRestart) se pro uzly NodeTypeX nikdy nepovolí, ale chyby balíčku kódu a repliky je možné povolit pro NodeTypeX, pokud se aplikace v ApplicationInclusionListu nachází na uzlu NodeTypeX. Do tohoto seznamu je možné zahrnout maximálně 100 názvů typů uzlů, aby se zvýšilo toto číslo, vyžaduje se upgrade konfigurace MaxNumberOfNodeTypesInChaosEntityFilter. Všechny repliky, které patří ke službám těchto aplikací, se dají přizpůsobit chybám replik (restartování repliky, odebrání repliky, přesunutí primárního serveru a sekundárního přesunutí) pomocí Chaosu. Chaos může restartovat balíček kódu pouze v případě, že balíček kódu hostuje pouze repliky těchto aplikací. Pokud se aplikace v tomto seznamu nezobrazí, může být v některých iteraci chaosu chybná, pokud aplikace skončí na uzlu typu uzlu, který je součástí NodeTypeInclusionList. Pokud je však applicationX vázán na nodeTypeY prostřednictvím omezení umístění a applicationX chybí v ApplicationInclusionList a nodeTypeY chybí nodeTypeInclusionList, applicationX nebude nikdy chybný. Do tohoto seznamu lze zahrnout maximálně 1000 názvů aplikací, aby se zvýšilo toto číslo, je pro konfiguraci MaxNumberOfApplicationsInChaosEntityFilter vyžadován upgrade konfigurace konfigurace MaxNumberOfApplicationsInChaosEntityFilter.
--kontext Mapování párů klíč-hodnota v kódu JSON (řetězec, řetězec) Mapu lze použít k zaznamenání informací o spuštění chaosu. Nemůže existovat více než 100 takových párů a každý řetězec (klíč nebo hodnota) může mít maximálně 4095 znaků. Tato mapa je nastavena počátečním spuštěním chaosu a volitelně uloží kontext o konkrétním spuštění.
--disable-move-replica-faults Zakáže přesunutí primárních a sekundárních chyb.
--max-cluster-stabilizace Maximální doba čekání na to, aby všechny entity clusteru byly stabilní a v pořádku. Výchozí hodnota: 60.

Chaos provádí iterace a na začátku každé iterace ověřuje stav entit clusteru. Během ověřování, pokud entita clusteru není stabilní a v pořádku v rámci MaxCluster StableTimeoutInSeconds, Chaos vygeneruje událost ověření selhání.
--max-concurrent-faults Maximální počet souběžných chyb vyvolaných při iteraci. Chaos se provádí v iteracích a dvě po sobě jdoucí iterace jsou odděleny ověřovací fází. Čím vyšší je souběžnost, tím agresivnější injektáž chyb – inducuje složitější řadu stavů k odhalení chyb. Doporučujeme začít hodnotou 2 nebo 3 a při pohybu nahoru postupovat opatrně. Výchozí hodnota: 1.
--max-percent-unhealthy-apps Při vyhodnocování stavu clusteru během chaosu je maximální povolené procento aplikací, které nejsou v pořádku, před hlášením chyby.

Maximální povolené procento aplikací, které nejsou v pořádku, před hlášením chyby Pokud například chcete umožnit, aby 10 % aplikací bylo v pořádku, bude tato hodnota 10. Procento představuje maximální tolerované procento aplikací, které mohou být v pořádku, než se cluster považuje za chybný. Pokud se procento respektuje, ale existuje alespoň jedna aplikace, která není v pořádku, vyhodnotí se stav jako Upozornění. Vypočítá se tak, že vydělíte počet aplikací, které nejsou v pořádku, na celkový počet instancí aplikace v clusteru, s výjimkou aplikací typů aplikací, které jsou zahrnuty v Objektu ApplicationTypeHealthPolicyMap. Výpočet zaokrouhlí nahoru tak, aby toleroval jedno selhání u malých čísel aplikací. Výchozí procento je nula.
--max-percent-unhealthy-nodes Při vyhodnocování stavu clusteru během chaosu je maximální povolené procento uzlů, které nejsou v pořádku, před nahlášením chyby.

Maximální povolené procento uzlů, které nejsou v pořádku, před hlášením chyby. Pokud například chcete povolit, aby 10 % uzlů šlo v pořádku, bude tato hodnota 10. Procento představuje maximální tolerované procento uzlů, které může být v pořádku, než se cluster považuje za chybný. Pokud se procento respektuje, ale existuje alespoň jeden uzel, který není v pořádku, vyhodnotí se stav jako Upozornění. Procento se vypočítá tak, že vydělí počet uzlů, které nejsou v pořádku, nad celkovým počtem uzlů v clusteru. Výpočet zaokrouhlí nahoru tak, aby toleroval jedno selhání u malých čísel uzlů. Výchozí procento je nula. Ve velkých clusterech budou některé uzly vždy mimo provoz pro opravy, takže toto procento by mělo být nakonfigurované tak, aby tolerovaly.
--time-to-run Celkový čas (v sekundách), pro který se chaos spustí před automatickým zastavením. Maximální povolená hodnota je 4 294 967 295 (System.UInt32.MaxValue). Výchozí hodnota: 4294967295.
--timeout -t Výchozí hodnota: 60.
--wait-time-between-faults Doba čekání (v sekundách) mezi po sobě jdoucími chybami v rámci jedné iterace Výchozí hodnota: 20.

Čím větší je hodnota, tím nižší je překrývání mezi chybami a jednodušší posloupnost přechodů stavu, kterými cluster prochází. Doporučuje se začít s hodnotou mezi 1 a 5 a při pohybu nahoru postupovat opatrně.
--wait-time-between-iterations Časové oddělení (v sekundách) mezi dvěma po sobě jdoucími iteracemi chaosu Čím je hodnota větší, tím nižší je míra injektáže selhání. Výchozí hodnota: 30.
--warning-as-error Označuje, zda jsou upozornění zpracovávána se stejnou závažností jako chyby.

Globální argumenty

Argument Popis
--ladicí Zvyšte úroveň podrobností protokolování, aby se zobrazily všechny protokoly ladění.
--help -h Zobrazte tuto zprávu nápovědy a ukončete ji.
--output -o Výstupní formát Povolené hodnoty: json, jsonc, table, tsv. Výchozí hodnota: json.
--dotaz Řetězec dotazu JMESPath Další http://jmespath.org/ informace a příklady najdete v tématu.
--užvaněný Zvyšte úroveň podrobností protokolování. K úplnému ladění protokolů použijte příkaz --debug.

sfctl chaos stop

Zastaví chaos, pokud je spuštěný v clusteru a umístí plán chaosu do zastaveného stavu.

Zastaví chaos v provádění nových chyb. Chyby v letu se budou dál spouštět, dokud nebudou dokončeny. Aktuální plán chaosu se umístí do zastaveného stavu. Jakmile se plán zastaví, zůstane v zastaveném stavu a nebude použit k plánování nových spuštění chaosu. Aby bylo možné pokračovat v plánování, musíte nastavit nový plán chaosu.

Argumenty

Argument Popis
--timeout -t Časový limit serveru pro provedení operace v sekundách. Tento časový limit určuje dobu, po kterou je klient ochotný počkat na dokončení požadované operace. Výchozí hodnota tohoto parametru je 60 sekund. Výchozí hodnota: 60.

Globální argumenty

Argument Popis
--ladicí Zvyšte úroveň podrobností protokolování, aby se zobrazily všechny protokoly ladění.
--help -h Zobrazte tuto zprávu nápovědy a ukončete ji.
--output -o Výstupní formát Povolené hodnoty: json, jsonc, table, tsv. Výchozí hodnota: json.
--dotaz Řetězec dotazu JMESPath Další http://jmespath.org/ informace a příklady najdete v tématu.
--užvaněný Zvyšte úroveň podrobností protokolování. K úplnému ladění protokolů použijte příkaz --debug.

Další kroky