Experimente mit Chaosd suchen und wiederherstellen
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 item | Abbreviation | Description | Type |
|---|---|---|---|
all | A | Lists all experiments | bool |
asc | None | Sorts the experiments in ascending order of the creation time. The default value is false. | bool |
kind | k | Lists experiments of the specified kind | string. The supported kinds are as follows: network, process, stress, disk, host, jvm |
limit | l | The number of listed experiments | int |
offset | o | Searches from the specified offset | int |
status | s | Lists experiments with the specified status | string. 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.
-
Erstellen Sie ein CPU-Auslastungsexperiment mit Chaosd:
chaosd attack stress cpu --workers 2 --load 10Das 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-0f12867e5c9cNotieren Sie die UID für spätere Verwendung.
-
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.
-
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.
-
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