Zum Hauptinhalt springen
Version: 2.6.7

Experimente mit Chaosd suchen und wiederherstellen

Inoffizielle Beta-Übersetzung

Diese Seite wurde von PageTurner AI übersetzt (Beta). Nicht offiziell vom Projekt unterstützt. Fehler gefunden? Problem melden →

Mit Chaosd können Sie Experimente nach Bedingungen durchsuchen und Experimente anhand spezifischer UIDs wiederherstellen. Dieses Dokument erläutert die Vorgehensweise für beide Funktionen und liefert praktische Beispiele.

Experimente mit Chaosd suchen

In diesem Abschnitt lernen Sie, wie Sie über den Befehlszeilenmodus und den Dienstmodus Experimente in Chaosd finden.

Suche im Befehlszeilenmodus

Mit folgendem Befehl zeigen Sie die unterstützten Konfigurationen des search-Befehls an:

$ chaosd search --help
Search chaos attack, you can search attacks through the uid or the state of the attack

Usage:
chaosd search UID [flags]

Flags:
-A, --all list all chaos attacks
--asc order by CreateTime, default value is false that means order by CreateTime desc
-h, --help help for search
-k, --kind string attack kind, supported value: network, process, stress, disk, host, jvm
-l, --limit uint32 limit the count of attacks
-o, --offset uint32 starting to search attacks from offset
-s, --status string attack status, supported value: created, success, error, destroyed, revoked

Global Flags:
--log-level string the log level of chaosd, the value can be 'debug', 'info', 'warn' and 'error'

Konfigurationsbeschreibung

Configuration itemAbbreviationDescriptionType
allALists all experimentsbool
ascNoneSorts the experiments in ascending order of the creation time. The default value is false.bool
kindkLists experiments of the specified kindstring. The supported kinds are as follows: network, process, stress, disk, host, jvm
limitlThe number of listed experimentsint
offsetoSearches from the specified offsetint
statussLists experiments with the specified statusstring. The supported types are as follows: created, success, error, destroyed, revoked

Beispiel

./chaosd search --kind network --status destroyed --limit 1

Dieser Befehl sucht Experimente des Typs network im Status destroyed (was die erfolgreiche Wiederherstellung anzeigt).

Nach Ausführung wird nur eine Datenzeile im Ergebnis ausgegeben:

                  UID                     KIND     ACTION    STATUS            CREATE TIME                                                                                                                  CONFIGURATION
--------------------------------------- --------- -------- ----------- --------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1f6c1253-522a-43d9-83f8-42607102b3b9 network delay destroyed 2021-11-02T15:14:07+08:00 {"schedule":"","duration":"","action":"delay","kind":"network","uid":"1f6c1253-522a-43d9-83f8-42607102b3b9","latency":"2s","jitter":"0ms","correlation":"0","device":"eth0","ip-address":"220.181.38.251","ip-protocol":"all"}

Suche im Dienstmodus

Der Dienstmodus unterstützt derzeit nur die Suche nach allen Experimenten. Die Daten erhalten Sie über den Pfad /api/experiments/ des Chaosd-Dienstes.

Beispiel

curl -X GET 127.0.0.1:31767/api/experiments/

Das Ergebnis sieht wie folgt aus:

[{"id":1,"uid":"ddc5ca81-b677-4595-b691-0ce57bedb156","created_at":"2021-10-18T16:01:18.563542491+08:00","updated_at":"2021-10-18T16:07:27.87111393+08:00","status":"success","kind":"stress","action":"mem","recover_command":"{\"schedule\":\"\",\"duration\":\"\",\"action\":\"mem\",\"kind\":\"stress\",\"uid\":\"ddc5ca81-b677-4595-b691-0ce57bedb156\",\"Load\":0,\"Workers\":0,\"Size\":\"100MB\",\"Options\":null,\"StressngPid\":0}","launch_mode":"svr"}]

Experimente mit Chaosd wiederherstellen

Nach der Erstellung eines Experiments können Sie dessen Auswirkungen mit der Wiederherstellungsfunktion rückgängig machen.

Wiederherstellung im Befehlszeilenmodus

Stellen Sie ein Experiment mit Chaosd recover UID wieder her.

Die folgende Anleitung demonstriert die Wiederherstellung im Befehlszeilenmodus.

  1. Erstellen Sie ein CPU-Auslastungsexperiment mit Chaosd:

    chaosd attack stress cpu --workers 2 --load 10

    Das Ergebnis:

    [2021/05/12 03:38:33.698 +00:00] [INFO] [stress.go:66] ["stressors normalize"] [arguments=" --cpu 2 --cpu-load 10"]
    [2021/05/12 03:38:33.702 +00:00] [INFO] [stress.go:82] ["Start stress-ng process successfully"] [command="/usr/bin/stress-ng --cpu 2 --cpu-load 10"] [Pid=27483]
    Attack stress cpu successfully, uid: 4f33b2d4-aee6-43ca-9c43-0f12867e5c9c

    Notieren Sie die UID für spätere Verwendung.

  2. Beenden Sie die CPU-Auslastungssimulation mit dem recover-Befehl:

    chaosd recover 4f33b2d4-aee6-43ca-9c43-0f12867e5c9c

Wiederherstellung im Dienstmodus

Senden Sie eine DELETE-HTTP-Anfrage an /api/attack/{uid}, um ein Experiment wiederherzustellen.

Die folgende Anleitung zeigt die Wiederherstellung im Dienstmodus.

  1. Erstellen Sie ein CPU-Auslastungsexperiment per POST-Anfrage:

    curl -X POST 172.16.112.130:31767/api/attack/stress -H "Content-Type:application/json" -d '{"load":10, "action":"cpu","workers":1}'

    Das Ergebnis:

    {"status":200,"message":"attack successfully","uid":"c3c519bf-819a-4a7b-97fb-e3d0814481fa"}

    Notieren Sie die UID für spätere Verwendung.

  2. Wenn Sie das Szenario mit CPU-Auslastung nicht mehr simulieren müssen, führen Sie folgenden Befehl aus, um das Experiment mit der entsprechenden UID zurückzusetzen:

    curl -X DELETE 172.16.112.130:31767/api/attack/c3c519bf-819a-4a7b-97fb-e3d0814481fa