Rechercher et récupérer les expériences de Chaosd
Cette page a été traduite par PageTurner AI (bêta). Non approuvée officiellement par le projet. Vous avez trouvé une erreur ? Signaler un problème →
Vous pouvez rechercher des expériences selon des conditions et récupérer les expériences correspondant à des UID spécifiés avec Chaosd. Ce document explique comment rechercher et récupérer des expériences dans Chaosd, et fournit des exemples pratiques.
Rechercher des expériences dans Chaosd
Cette section présente comment utiliser le mode ligne de commande et le mode service pour trouver des expériences dans Chaosd.
Rechercher des expériences en mode ligne de commande
Exécutez la commande suivante pour voir les configurations prises en charge par la commande search :
$ 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'
Description des configurations
| 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 |
Exemple
./chaosd search --kind network --status destroyed --limit 1
Cette commande permet de rechercher les expériences de type network avec le statut destroyed (indiquant que l'expérience a été récupérée).
Après exécution, le résultat n'affiche qu'une seule ligne de données :
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"}
Rechercher des expériences en mode service
Actuellement, le mode service ne permet que la recherche de toutes les expériences. Accédez aux données via le chemin /api/experiments/ du service Chaosd.
Exemple
curl -X GET 127.0.0.1:31767/api/experiments/
Le résultat est le suivant :
[{"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"}]
Récupérer des expériences dans Chaosd
Après avoir créé une expérience, utilisez la fonction de récupération pour annuler les impacts causés.
Récupérer des expériences en mode ligne de commande
Vous pouvez récupérer une expérience en utilisant Chaosd recover UID.
L'exemple suivant montre comment récupérer une expérience en mode ligne de commande.
-
Créez une expérience de stress CPU avec Chaosd :
chaosd attack stress cpu --workers 2 --load 10Le résultat s'affiche ainsi :
[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-0f12867e5c9cConservez l'UID de l'expérience pour la suite.
-
Lorsque vous n'avez plus besoin du scénario de stress CPU, utilisez la commande
recoverpour récupérer l'expérience correspondant à l'UID :chaosd recover 4f33b2d4-aee6-43ca-9c43-0f12867e5c9c
Récupérer des expériences en mode service
Récupérez une expérience en envoyant une requête HTTP DELETE au chemin /api/attack/{uid} du service Chaosd.
L'exemple suivant montre comment récupérer une expérience en mode service.
-
Envoyez une requête HTTP
POSTau service Chaosd pour créer une expérience de stress CPU :curl -X POST 172.16.112.130:31767/api/attack/stress -H "Content-Type:application/json" -d '{"load":10, "action":"cpu","workers":1}'Le résultat s'affiche ainsi :
{"status":200,"message":"attack successfully","uid":"c3c519bf-819a-4a7b-97fb-e3d0814481fa"}Conservez l'UID de l'expérience pour la suite.
-
Lorsque vous n'avez plus besoin de simuler le scénario de stress CPU, exécutez la commande suivante pour récupérer l'expérience correspondant à l'UID :
curl -X DELETE 172.16.112.130:31767/api/attack/c3c519bf-819a-4a7b-97fb-e3d0814481fa