Udostępnij za pośrednictwem


sfctl chaos

Uruchamianie, zatrzymywanie i raportowanie usługi testowej chaosu.

Podgrup

Podgrupa opis
schedule Pobierz i ustaw harmonogram chaosu.

Polecenia

Polecenie opis
zdarzenia Pobiera następny segment zdarzeń chaosu na podstawie tokenu kontynuacji lub zakresu czasu.
get Uzyskaj stan chaosu.
start Uruchamia chaos w klastrze.
zatrzymać Zatrzymuje chaos, jeśli jest uruchomiony w klastrze i umieszcza harmonogram chaosu w stanie zatrzymania.

sfctl chaos events

Pobiera następny segment zdarzeń chaosu na podstawie tokenu kontynuacji lub zakresu czasu.

Aby uzyskać następny segment zdarzeń Chaosu, możesz określić token ContinuationToken. Aby uzyskać początek nowego segmentu zdarzeń chaosu, możesz określić zakres czasu za pośrednictwem startTimeUtc i EndTimeUtc. Nie można określić zarówno parametru ContinuationToken, jak i zakresu czasu w tym samym wywołaniu. Jeśli istnieje więcej niż 100 zdarzeń chaosu, zdarzenia chaosu są zwracane w wielu segmentach, w których segment zawiera nie więcej niż 100 zdarzeń chaosu i aby uzyskać następny segment, który wykonujesz wywołanie tego interfejsu API z tokenem kontynuacji.

Argumenty

Argument opis
--continuation-token Parametr tokenu kontynuacji służy do uzyskiwania następnego zestawu wyników. Token kontynuacji z niepustą wartością jest uwzględniany w odpowiedzi interfejsu API, gdy wyniki z systemu nie mieszczą się w jednej odpowiedzi. Po przekazaniu tej wartości do następnego wywołania interfejsu API interfejs API zwraca następny zestaw wyników. Jeśli nie ma dalszych wyników, token kontynuacji nie zawiera wartości. Wartość tego parametru nie powinna być zakodowana pod adresem URL.
--end-time-utc Czas pliku systemu Windows reprezentujący godzinę zakończenia zakresu czasu, dla którego ma zostać wygenerowany raport chaosu. Aby uzyskać szczegółowe informacje, zapoznaj się z metodą DateTime.ToFileTimeUtc.
--max-results Maksymalna liczba wyników, które mają być zwracane w ramach stronicowanych zapytań. Ten parametr definiuje górną granicę liczby zwróconych wyników. Zwrócone wyniki mogą być mniejsze niż określone maksymalne wyniki, jeśli nie mieszczą się w komunikacie zgodnie z maksymalnymi ograniczeniami rozmiaru komunikatu zdefiniowanymi w konfiguracji. Jeśli ten parametr ma wartość zero lub nie zostanie określony, zapytanie stronicowane zawiera jak najwięcej wyników, które mieszczą się w komunikacie zwrotnym.
--start-time-utc Czas pliku systemu Windows reprezentujący godzinę rozpoczęcia zakresu czasu, dla którego ma zostać wygenerowany raport chaosu. Aby uzyskać szczegółowe informacje, zapoznaj się z metodą DateTime.ToFileTimeUtc.
--timeout -t Limit czasu serwera na potrzeby wykonywania operacji w sekundach. Ten limit czasu określa czas trwania, przez który klient chce poczekać na ukończenie żądanej operacji. Wartość domyślna tego parametru to 60 sekund. Wartość domyślna: 60.

Argumenty globalne

Argument opis
--debugować Zwiększ szczegółowość rejestrowania, aby wyświetlić wszystkie dzienniki debugowania.
--help -h Pokaż ten komunikat pomocy i zakończ pracę.
--output -o Format danych wyjściowych. Dozwolone wartości: json, jsonc, table, tsv. Ustawienie domyślne: json.
--zapytanie Ciąg zapytania JMESPath. Zobacz http://jmespath.org/ , aby uzyskać więcej informacji i przykładów.
--gadatliwy Zwiększ szczegółowość rejestrowania. Użyj --debuguj, aby uzyskać pełne dzienniki debugowania.

sfctl chaos get

Uzyskaj stan chaosu.

Uzyskaj stan Chaosu wskazujący, czy chaos jest uruchomiony, parametry chaosu używane do uruchamiania chaosu i stanu harmonogramu chaosu.

Argumenty

Argument opis
--timeout -t Limit czasu serwera na potrzeby wykonywania operacji w sekundach. Ten limit czasu określa czas trwania, przez który klient chce poczekać na ukończenie żądanej operacji. Wartość domyślna tego parametru to 60 sekund. Wartość domyślna: 60.

Argumenty globalne

Argument opis
--debugować Zwiększ szczegółowość rejestrowania, aby wyświetlić wszystkie dzienniki debugowania.
--help -h Pokaż ten komunikat pomocy i zakończ pracę.
--output -o Format danych wyjściowych. Dozwolone wartości: json, jsonc, table, tsv. Ustawienie domyślne: json.
--zapytanie Ciąg zapytania JMESPath. Zobacz http://jmespath.org/ , aby uzyskać więcej informacji i przykładów.
--gadatliwy Zwiększ szczegółowość rejestrowania. Użyj --debuguj, aby uzyskać pełne dzienniki debugowania.

sfctl chaos start

Uruchamia chaos w klastrze.

Jeśli chaos nie jest jeszcze uruchomiony w klastrze, uruchamia chaos z przekazanymi parametrami chaosu. Jeśli chaos jest już uruchomiony po wywołaniu, wywołanie kończy się niepowodzeniem z kodem błędu FABRIC_E_CHAOS_ALREADY_RUNNING. Aby uzyskać więcej informacji, zapoznaj się z artykułem Wywołanie kontrolowanego chaosu w klastrach usługi Service Fabric.

Argumenty

Argument opis
--app-type-health-policy-map Zakodowana w formacie JSON tablica wpisów słownika (klucz/wartość) z maksymalnym procentem złej kondycji aplikacji dla określonych typów aplikacji. Każdy wpis słownika określa jako klucz nazwę typu aplikacji i liczbę całkowitą dla wartości, która reprezentuje wartość procentową MaxPercentUnhealthyApplications używaną do oceny aplikacji określonego typu aplikacji.

Definiuje mapę z maksymalną wartością procentową złej kondycji aplikacji dla określonych typów aplikacji. Mapa zasad kondycji typu aplikacji może być używana podczas oceny kondycji klastra w celu opisania poszczególnych typów aplikacji. Typy aplikacji uwzględnione na mapie są oceniane względem wartości procentowej określonej na mapie, a nie z globalnymi wartościami MaxPercentUnhealthyApplications zdefiniowanymi w zasadach kondycji klastra. Aplikacje typów aplikacji określonych na mapie nie są liczone do globalnej puli aplikacji. Jeśli na przykład niektóre aplikacje typu mają krytyczne znaczenie, administrator klastra może dodać wpis do mapy dla tego typu aplikacji i przypisać mu wartość 0% (nie tolerować żadnych awarii). Wszystkie inne aplikacje można ocenić za pomocą parametru MaxPercentUnhealthyApplications ustawionego na 20%, aby tolerować niektóre awarie z tysięcy wystąpień aplikacji. Mapa zasad kondycji typu aplikacji jest używana tylko wtedy, gdy manifest klastra umożliwia ocenę kondycji typu aplikacji przy użyciu wpisu konfiguracji HealthManager/EnableApplicationTypeHealthEvaluation.

Przykładowy ciąg zakodowany w formacie JSON: [{"key": "fabric:/Voting", "value": "0"}]
--chaos-target-filter Słownik zakodowany w formacie JSON z dwoma kluczami typów ciągów. Dwa klucze to NodeTypeInclusionList i ApplicationInclusionList. Wartości obu tych kluczy są listą ciągów. chaos_target_filter definiuje wszystkie filtry dla docelowych błędów chaosu, na przykład błędy tylko niektórych typów węzłów lub uszkodzenia tylko niektórych aplikacji.

Jeśli chaos_target_filter nie jest używana, chaos uszkodzi wszystkie jednostki klastra. Jeśli chaos_target_filter jest używana, chaos uszkodzi tylko jednostki spełniające specyfikację chaos_target_filter. NodeTypeInclusionList i ApplicationInclusionList zezwalają tylko na semantyka unii. Nie można określić skrzyżowania wartości NodeTypeInclusionList i ApplicationInclusionList. Na przykład nie można określić "błędu tej aplikacji tylko wtedy, gdy znajduje się ona w tym typie węzła". Po dołączeniu jednostki do elementu NodeTypeInclusionList lub ApplicationInclusionList nie można wykluczyć tej jednostki przy użyciu metody ChaosTargetFilter. Nawet jeśli aplikacjaX nie jest wyświetlana w elemecie ApplicationInclusionList, w niektórych aplikacjach iteracji chaosu X może zostać uszkodzony, ponieważ występuje on w węźle nodeTypeY, który znajduje się w elemecie NodeTypeInclusionList. Jeśli obie wartości NodeTypeInclusionList i ApplicationInclusionList są puste, zgłaszany jest wyjątek ArgumentException. Wszystkie typy błędów (ponowne uruchamianie węzła, ponowne uruchamianie pakietu kodu, usuwanie repliki, ponowne uruchamianie repliki, przenoszenie podstawowe i przenoszenie pomocnicze) są włączone dla węzłów tych typów węzłów. Jeśli typ węzła (np. NodeTypeX) nie jest wyświetlany w elemecie NodeTypeInclusionList, błędy na poziomie węzła (takie jak NodeRestart) nigdy nie będą włączone dla węzłów NodeTypeX, ale nadal można włączyć pakiet kodu i błędy repliki dla nodeTypeX, jeśli aplikacja w elememencie ApplicationInclusionList będzie znajdować się w węźle NodeTypeX. Na tej liście można uwzględnić maksymalnie 100 nazw typów węzłów, aby zwiększyć tę liczbę, uaktualnienie konfiguracji jest wymagane dla konfiguracji MaxNumberOfNodeTypesInChaosEntityFilter. Wszystkie repliki należące do usług tych aplikacji są dostępne do replikacji błędów (ponowne uruchamianie repliki, usuwanie repliki, przenoszenie podstawowej i przenoszenie pomocnicze) przez Chaos. Chaos może ponownie uruchomić pakiet kodu tylko wtedy, gdy pakiet kodu hostuje repliki tych aplikacji. Jeśli aplikacja nie jest wyświetlana na tej liście, nadal może zostać uszkodzona w niektórych iteracji Chaos, jeśli aplikacja kończy się na węźle typu węzła, który jest uwzględniony w nodeTypeInclusionList. Jeśli jednak element applicationX jest powiązany z elementem nodeTypeY za pośrednictwem ograniczeń umieszczania, a element applicationX jest nieobecny w elementy ApplicationInclusionList, a element nodeTypeInclusionList jest nieobecny w pliku NodeTypeInclusionList, aplikacjaX nigdy nie zostanie uszkodzona. Na tej liście można uwzględnić maksymalnie 1000 nazw aplikacji, aby zwiększyć tę liczbę, wymagane jest uaktualnienie konfiguracji dla konfiguracji MaxNumberOfApplicationsInChaosEntityFilter.
--kontekst Zakodowana w formacie JSON mapa par klucz-wartość typu (ciąg, ciąg). Mapa może służyć do rejestrowania informacji o przebiegu chaosu. Nie może być więcej niż 100 takich par, a każdy ciąg (klucz lub wartość) może mieć długość maksymalnie 4095 znaków. Ta mapa jest ustawiana przez początkowy przebieg chaosu, aby opcjonalnie przechowywać kontekst dotyczący określonego przebiegu.
--disable-move-replica-faults Wyłącza przenoszenie błędów podstawowych i pomocniczych.
--max-cluster-stabilization Maksymalny czas oczekiwania na stabilność i kondycję wszystkich jednostek klastra. Wartość domyślna: 60.

Chaos jest wykonywany w iteracji i na początku każdej iteracji weryfikuje kondycję jednostek klastra. Podczas walidacji, jeśli jednostka klastra nie jest stabilna i w dobrej kondycji w maxClusterStabilizationTimeoutInSeconds, Chaos generuje zdarzenie niepowodzenia walidacji.
--max-concurrent-faults Maksymalna liczba współbieżnych błędów wywołanych na iterację. Chaos jest wykonywany w iteracji i dwie kolejne iteracji są oddzielone fazą walidacji. Im wyższa współbieżność, tym bardziej agresywna jest iniekcja błędów — inducing more complex series of states to odkryć błędy. Zaleceniem jest rozpoczęcie od wartości 2 lub 3 i zachowanie ostrożności podczas przechodzenia w górę. Wartość domyślna: 1.
--max-percent-unhealthy-apps Podczas oceniania kondycji klastra podczas chaosu maksymalna dozwolona wartość procentowa aplikacji w złej kondycji przed zgłoszeniem błędu.

Maksymalny dozwolony procent aplikacji w złej kondycji przed zgłoszeniem błędu. Na przykład aby zezwolić 10% aplikacji na złą kondycję, ta wartość będzie wynosić 10. Wartość procentowa reprezentuje maksymalną tolerowaną wartość procentową aplikacji, które mogą być w złej kondycji, zanim klaster zostanie uznany za błąd. Jeśli wartość procentowa jest przestrzegana, ale istnieje co najmniej jedna aplikacja w złej kondycji, kondycja jest oceniana jako Ostrzeżenie. Jest to obliczane przez podzielenie liczby aplikacji w złej kondycji na łączną liczbę wystąpień aplikacji w klastrze, z wyłączeniem aplikacji typów aplikacji uwzględnionych w metryce ApplicationTypeHealthPolicyMap. Obliczenia są zaokrąglone w górę, aby tolerować jedną awarię na małej liczbie aplikacji. Wartość procentowa domyślna to zero.
--max-percent-unhealthy-nodes Podczas oceniania kondycji klastra podczas chaosu maksymalna dozwolona wartość procentowa węzłów w złej kondycji przed zgłoszeniem błędu.

Maksymalny dozwolony procent węzłów w złej kondycji przed zgłoszeniem błędu. Na przykład aby umożliwić 10% węzłów w złej kondycji, ta wartość będzie wynosić 10. Wartość procentowa reprezentuje maksymalny tolerowany procent węzłów, które mogą być w złej kondycji, zanim klaster zostanie uwzględniony w błędzie. Jeśli wartość procentowa jest przestrzegana, ale istnieje co najmniej jeden węzeł w złej kondycji, kondycja jest oceniana jako Ostrzeżenie. Wartość procentowa jest obliczana przez podzielenie liczby węzłów w złej kondycji na łączną liczbę węzłów w klastrze. Obliczenia są zaokrąglone w górę, aby tolerować jedną awarię na małej liczbie węzłów. Wartość procentowa domyślna to zero. W dużych klastrach niektóre węzły będą zawsze wyłączone lub wyłączone w celu naprawy, więc ta wartość procentowa powinna być skonfigurowana tak, aby to tolerowała.
--time-to-run Łączny czas (w sekundach), dla którego chaos będzie uruchamiany przed automatycznym zatrzymywaniem. Maksymalna dozwolona wartość to 4294 967 295 (System.UInt32.MaxValue). Ustawienie domyślne: 4294967295.
--timeout -t Wartość domyślna: 60.
--wait-time-between-faults Czas oczekiwania (w sekundach) między kolejnymi błędami w ramach jednej iteracji. Wartość domyślna: 20.

Im większa wartość, tym niższa nakładanie się między błędami a prostszą sekwencją przejść stanu przechodzi przez klaster. Zaleceniem jest rozpoczęcie od wartości z zakresu od 1 do 5 i ostrożności podczas przechodzenia w górę.
--wait-time-between-iterations Rozdzielenie czasu (w sekundach) między dwiema kolejnymi iteracjami Chaosu. Im większa wartość, tym mniejsza jest szybkość iniekcji błędów. Wartość domyślna: 30.
--warning-as-error Wskazuje, czy ostrzeżenia są traktowane z taką samą ważnością jak błędy.

Argumenty globalne

Argument opis
--debugować Zwiększ szczegółowość rejestrowania, aby wyświetlić wszystkie dzienniki debugowania.
--help -h Pokaż ten komunikat pomocy i zakończ pracę.
--output -o Format danych wyjściowych. Dozwolone wartości: json, jsonc, table, tsv. Ustawienie domyślne: json.
--zapytanie Ciąg zapytania JMESPath. Zobacz http://jmespath.org/ , aby uzyskać więcej informacji i przykładów.
--gadatliwy Zwiększ szczegółowość rejestrowania. Użyj --debuguj, aby uzyskać pełne dzienniki debugowania.

sfctl chaos stop

Zatrzymuje chaos, jeśli jest uruchomiony w klastrze i umieszcza harmonogram chaosu w stanie zatrzymania.

Uniemożliwia chaosowi wykonywanie nowych błędów. Błędy w locie będą nadal wykonywane do czasu ich ukończenia. Bieżący harmonogram chaosu jest umieszczany w stanie zatrzymanym. Po zatrzymaniu harmonogramu pozostanie ona w stanie zatrzymanym i nie będzie używana do nowych uruchomień Chaos Schedule chaosu. Aby wznowić planowanie, należy ustawić nowy harmonogram chaosu.

Argumenty

Argument opis
--timeout -t Limit czasu serwera na potrzeby wykonywania operacji w sekundach. Ten limit czasu określa czas trwania, przez który klient chce poczekać na ukończenie żądanej operacji. Wartość domyślna tego parametru to 60 sekund. Wartość domyślna: 60.

Argumenty globalne

Argument opis
--debugować Zwiększ szczegółowość rejestrowania, aby wyświetlić wszystkie dzienniki debugowania.
--help -h Pokaż ten komunikat pomocy i zakończ pracę.
--output -o Format danych wyjściowych. Dozwolone wartości: json, jsonc, table, tsv. Ustawienie domyślne: json.
--zapytanie Ciąg zapytania JMESPath. Zobacz http://jmespath.org/ , aby uzyskać więcej informacji i przykładów.
--gadatliwy Zwiększ szczegółowość rejestrowania. Użyj --debuguj, aby uzyskać pełne dzienniki debugowania.

Następne kroki

  • Skonfiguruj interfejs wiersza polecenia usługi Service Fabric.
  • Dowiedz się, jak używać interfejsu wiersza polecenia usługi Service Fabric przy użyciu przykładowych skryptów.