Aller au contenu principal
Version : Suivant

Rechercher et récupérer les expériences de Chaosd

Traduction Bêta Non Officielle

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 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

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.

  1. Créez une expérience de stress CPU avec Chaosd :

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

    Le 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-0f12867e5c9c

    Conservez l'UID de l'expérience pour la suite.

  2. Lorsque vous n'avez plus besoin du scénario de stress CPU, utilisez la commande recover pour 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.

  1. Envoyez une requête HTTP POST au 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.

  2. 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