Bibliothèque d’erreurs et d’actions Azure Chaos Studio

Cet article répertorie les erreurs que vous pouvez utiliser dans Chaos Studio, organisées par type de ressource applicable. Pour comprendre les attributions de rôles recommandées pour chaque type de ressource, consultez l’article Types de ressources et attributions de rôles pris en charge pour Azure Chaos Studio.

Erreurs basées sur l’agent

Les erreurs basées sur l’agent sont injectées dans des instances Machines virtuelles Azure ou Groupe de machines virtuelles identiques en installant l’agent Chaos Studio. Recherchez les options d’erreur directe de service pour ces ressources ci-dessous dans les tableaux pour les machines virtuelles et les groupes de machines virtuelles identiques.

Types de système d’exploitation applicables Nom d’erreur Scénarios applicables
Windows, Linux Sollicitation du processeur Perte de capacité de calcul, sollicitation des ressources
Windows, Linux Arrêter le processus Interruption de dépendance
Windows, Linux Déconnexion réseau Interruption de réseau
Windows, Linux Latence du réseau Détérioration des performances du réseau
Windows, Linux Perte de paquet réseau Problèmes de fiabilité du réseau
Windows, Linux Sollicitation de la mémoire physique Perte de capacité de mémoire, sollicitation des ressources
Windows, Linux Arrêter le service Interruption/redémarrage du service
Windows, Linux Changement d’heure Problèmes de synchronisation de l’heure
Windows, Linux Sollicitation de la mémoire virtuelle Perte de capacité de mémoire, sollicitation des ressources
Linux Contrainte stress-ng arbitraire Test de contrainte du système général
Linux Sollicitation des E/S disque Linux Détérioration des performances des E/S disque
Windows Sollicitation des E/S disque Détérioration des performances des E/S disque
Windows Échec DNS Problèmes de résolution du DNS
Windows Déconnexion du réseau (via le pare-feu) Interruption de réseau

App Service

Cette section s’applique au type de ressource Microsoft.Web/sites. En savoir plus sur App Service.

Nom d’erreur Scénarios applicables
Arrêter App Service Interruption de service

Paramètres de mise à l’échelle automatique

Cette section s’applique au type de ressource Microsoft.Insights/autoscaleSettings. En savoir plus sur la mise à l’échelle automatique.

Nom d’erreur Scénarios applicables
Désactiver la mise à l’échelle automatique Perte de capacité de calcul (lorsqu’elle est utilisée avec l’arrêt VMSS)

Azure Kubernetes Service

Cette section s’applique au type de ressource Microsoft.ContainerService/managedClusters. En savoir plus sur Azure Kubernetes Service.

Nom d’erreur Scénarios applicables
Chaos DNS AKS Chaos Mesh Problèmes de résolution du DNS
Chaos HTTP AKS Chaos Mesh Interruption de réseau
Chaos d’E/S AKS Chaos Mesh Détérioration/sollicitation du disque
Chaos du noyau AKS Chaos Mesh Interruption du noyau
Chaos réseau AKS Chaos Mesh Interruption de réseau
Chaos de pod AKS Chaos Mesh Interruption du conteneur
Chaos de contrainte AKS Chaos Mesh Test de contrainte du système
Chaos d’heure AKS Chaos Mesh Problèmes de synchronisation de l’heure

Cloud Services (classique)

Cette section s’applique au type de ressource Microsoft.ClassicCompute/domainNames. En savoir plus sur Cloud Services (classique).

Nom d’erreur Scénarios applicables
Arrêt de Cloud Services Perte de calcul

Cache en cluster pour Redis

Cette section s’applique au type de ressource Microsoft.Cache/redis. En savoir plus sur Cache en cluster pour Redis.

Nom d’erreur Scénarios applicables
Azure Cache pour Redis (redémarrage) Interruption de dépendance (caches)

Cosmos DB

Cette section s’applique au type de ressource Microsoft.DocumentDB/databaseAccounts. En savoir plus sur Cosmos DB.

Nom d’erreur Scénarios applicables
Basculement de Cosmos DB Basculement de base de données

Event Hubs

Cette section s’applique au type de ressource Microsoft.EventHub/namespaces. En savoir plus sur Event Hubs.

Nom d’erreur Scénarios applicables
Modifier l’état d’Event Hub Configuration incorrecte/interruption de l’infrastructure de messagerie

Key Vault

Cette section s’applique au type de ressource Microsoft.KeyVault/vaults. En savoir plus sur Key Vault.

Nom d’erreur Scénarios applicables
Key Vault : refuser l’accès Déni de certificat
Key Vault : désactiver le certificat Interruption de certificat
Key Vault : incrémenter la version du certificat Incrément de la version du certificat
Key Vault : mise à jour de la stratégie de certification Modifications/configurations incorrectes de la stratégie de certificat

Network Security Group

Cette section s’applique au type de ressource Microsoft.Network/networkSecurityGroups. En savoir plus sur les groupes de sécurité réseau.

Nom d’erreur Scénarios applicables
Règle de sécurité NSG Interruption du réseau (pour de nombreux services Azure)

Service Bus

Cette section s’applique au type de ressource Microsoft.ServiceBus/namespaces. En savoir plus sur Service Bus.

Nom d’erreur Scénarios applicables
Modification de l’état de la file d’attente Configuration incorrecte/interruption de l’infrastructure de messagerie
Modifier l’état de l’abonnement Configuration incorrecte/interruption de l’infrastructure de messagerie
Modifier l’état de la rubrique Configuration incorrecte/interruption de l’infrastructure de messagerie

Machines virtuelles (service direct)

Cette section s’applique au type de ressource Microsoft.Compute/virtualMachines. En savoir plus sur les machines virtuelles.

Nom d’erreur Scénarios applicables
Redéploiement de la machine virtuelle Interruption de calcul, événements de maintenance
Arrêt de la machine virtuelle Perte/interruption de calcul

Groupe de machines virtuelles identiques

Cette section s’applique au type de ressource Microsoft.Compute/virtualMachineScaleSets. En savoir plus sur les groupes de machines virtuelles identiques.

Nom d’erreur Scénarios applicables
Arrêt VMSS Perte/interruption de calcul
Arrêt VMSS (2.0) Perte/interruption de calcul (par zone de disponibilité)

Actions d’orchestration

Ces actions sont des blocs de construction qui permettent de construire des expériences efficaces. Utilisez-les en combinaison avec d’autres erreurs, telles que l’exécution d’un test de charge tout en arrêtant en parallèle les instances de calcul dans une zone.

Catégorie d’action Nom d’erreur
Charge Démarrer le test de charge (Test de charge Azure)
Charge Arrêter le test de charge (Test de charge Azure)
Temporisation Retard

Détails : erreurs basées sur l’agent

Déconnexion réseau

Propriété Valeur
Nom de fonctionnalité NetworkDisconnect-1.1
Type cible Microsoft-Agent
Types de systèmes d’exploitation pris en charge Windows, Linux.
Description Bloque le trafic réseau sortant pour la plage de ports et le bloc réseau spécifiés. Au moins un tableau destinationFilter ou inboundDestinationFilter doit être fourni.
Prérequis Windows : l’agent doit s’exécuter en tant qu’administrateur, ce qui se produit par défaut s’il est installé comme une extension VM.
Linux : le package tc (gestion du trafic) est utilisé pour les erreurs réseau. S’il n’est pas déjà installé, l’agent tente automatiquement de l’installer à partir du gestionnaire de package par défaut.
Urn urn:csci:microsoft:agent:networkDisconnect/1.1
Paramètres (clé, valeur)
destinationFilters Tableau JSON délimité de filtres de paquets définissant les paquets sortants à cibler. 16 au maximum.
inboundDestinationFilters Tableau JSON délimité de filtres de paquets définissant les paquets entrants à cibler. 16 au maximum.
virtualMachineScaleSetInstances Tableau d’identifiant d’instance lorsque vous appliquez cette erreur à un groupe de machines virtuelles identiques. Obligatoire pour les groupes de machines virtuelles identiques en mode d’orchestration uniforme. En savoir plus sur les ID d’instance.

Les paramètres destinationFilters et inboundDestinationFilters utilisent le tableau suivant de filtres de paquets.

Propriété Valeur
address Adresse IP qui indique le début de la plage d’adresses IP.
subnetMask Masque de sous-réseau pour la plage d’adresses IP.
portLow (Facultatif) Numéro de port du début de la plage de ports.
portHigh (Facultatif) Numéro de port de la fin de la plage de ports.

Exemple de code JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "continuous",
      "name": "urn:csci:microsoft:agent:networkDisconnect/1.1",
      "parameters": [
        {
          "key": "destinationFilters",
          "value": "[ { \"address\": \"23.45.229.97\", \"subnetMask\": \"255.255.255.224\", \"portLow\": \"5000\", \"portHigh\": \"5200\" } ]"
        },
        {
          "key": "inboundDestinationFilters",
          "value": "[ { \"address\": \"23.45.229.97\", \"subnetMask\": \"255.255.255.224\", \"portLow\": \"5000\", \"portHigh\": \"5200\" } ]"
        },
        {
          "key": "virtualMachineScaleSetInstances",
          "value": "[0,1,2]"
        }
      ],
      "duration": "PT10M",
      "selectorid": "myResources"
    }
  ]
}

Limites

  • Les défauts du réseau à base d’agents prennent actuellement en charge que les adresses IPv4.
  • L’erreur de déconnexion du réseau n’affecte que les nouvelles connexions. Les connexions actives existantes persistent. Vous pouvez redémarrer le service ou le processus pour forcer l’arrêt des connexions.
  • Lors d’une exécution sur Windows, le défaut de déconnexion du réseau ne fonctionne actuellement qu’avec des paquets TCP ou UDP.

Déconnexion du réseau (via le pare-feu)

Propriété Valeur
Nom de fonctionnalité NetworkDisconnectViaFirewall-1.0
Type cible Microsoft-Agent
Types de systèmes d’exploitation pris en charge Windows
Description Applique une règle de pare-feu Windows afin de bloquer le trafic sortant pour une plage de ports et un bloc réseau spécifiés.
Prérequis L’agent doit être exécuté en tant qu’administrateur. Si l’agent est installé en tant qu’extension de machine virtuelle, il s’exécute par défaut en tant qu’administrateur.
Urn urn:csci:microsoft:agent:networkDisconnectViaFirewall/1.0
Paramètres (clé, valeur)
destinationFilters Tableau JSON délimité de filtres de paquets qui définissent les paquets sortants à cibler pour l’injection d’erreur.
address Adresse IP qui indique le début de la plage d’adresses IP.
subnetMask Masque de sous-réseau pour la plage d’adresses IP.
portLow (Facultatif) Numéro de port du début de la plage de ports.
portHigh (Facultatif) Numéro de port de la fin de la plage de ports.
virtualMachineScaleSetInstances Tableau d’identifiant d’instance lorsque vous appliquez cette erreur à un groupe de machines virtuelles identiques. Obligatoire pour les groupes de machines virtuelles identiques en mode d’orchestration uniforme. En savoir plus sur les ID d’instance.

Exemple de code JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "continuous",
      "name": "urn:csci:microsoft:agent:networkDisconnectViaFirewall/1.0",
      "parameters": [
        {
          "key": "destinationFilters",
          "value": "[ { \"Address\": \"23.45.229.97\", \"SubnetMask\": \"255.255.255.224\", \"PortLow\": \"5000\", \"PortHigh\": \"5200\" } ]"
        },
        {
          "key": "virtualMachineScaleSetInstances",
          "value": "[0,1,2]"
        }
      ],
      "duration": "PT10M",
      "selectorid": "myResources"
    }
  ]
}

Limites

  • Les défauts du réseau à base d’agents prennent actuellement en charge que les adresses IPv4.

Latence du réseau

Propriété Valeur
Nom de fonctionnalité NetworkLatency-1.1
Type cible Microsoft-Agent
Types de systèmes d’exploitation pris en charge Windows, Linux (trafic sortant uniquement)
Description Augmente la latence du réseau pour une plage de ports et un bloc réseau spécifiés. Au moins un tableau destinationFilter ou inboundDestinationFilter doit être fourni.
Prérequis Windows : l’agent doit s’exécuter en tant qu’administrateur, ce qui se produit par défaut s’il est installé comme une extension VM.
Linux : le package tc (gestion du trafic) est utilisé pour les erreurs réseau. S’il n’est pas déjà installé, l’agent tente automatiquement de l’installer à partir du gestionnaire de package par défaut.
Urn urn:csci:microsoft:agent:networkLatency/1.1
Paramètres (clé, valeur)
latencyInMilliseconds Latence à appliquer, exprimée en millisecondes.
destinationFilters Tableau JSON délimité de filtres de paquets définissant les paquets sortants à cibler. 16 au maximum.
inboundDestinationFilters Tableau JSON délimité de filtres de paquets définissant les paquets entrants à cibler. 16 au maximum.
virtualMachineScaleSetInstances Tableau d’identifiant d’instance lorsque vous appliquez cette erreur à un groupe de machines virtuelles identiques. Obligatoire pour les groupes de machines virtuelles identiques en mode d’orchestration uniforme. En savoir plus sur les ID d’instance.

Les paramètres destinationFilters et inboundDestinationFilters utilisent le tableau suivant de filtres de paquets.

Propriété Valeur
address Adresse IP qui indique le début de la plage d’adresses IP.
subnetMask Masque de sous-réseau pour la plage d’adresses IP.
portLow (Facultatif) Numéro de port du début de la plage de ports.
portHigh (Facultatif) Numéro de port de la fin de la plage de ports.

Exemple de code JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "continuous",
      "name": "urn:csci:microsoft:agent:networkLatency/1.1",
      "parameters": [
        {
          "key": "destinationFilters",
          "value": "[ { \"address\": \"23.45.229.97\", \"subnetMask\": \"255.255.255.224\", \"portLow\": \"5000\", \"portHigh\": \"5200\" } ]"
        },
        {
          "key": "inboundDestinationFilters",
          "value": "[ { \"address\": \"23.45.229.97\", \"subnetMask\": \"255.255.255.224\", \"portLow\": \"5000\", \"portHigh\": \"5200\" } ]"
        },
        {
          "key": "latencyInMilliseconds",
          "value": "100",
        },
        {
          "key": "virtualMachineScaleSetInstances",
          "value": "[0,1,2]"
        }
      ],
      "duration": "PT10M",
      "selectorid": "myResources"
    }
  ]
}

Limites

  • Les défauts du réseau à base d’agents prennent actuellement en charge que les adresses IPv4.
  • Lors d’une exécution sur Linux, l’erreur de latence réseau ne peut affecter que le trafic sortant, pas le trafic entrant. L’erreur peut affecter le trafic entrant comme sortant sur les environnements Windows (via les paramètres inboundDestinationFilters et destinationFilters).
  • Lors d’une exécution sur Windows, le défaut de latence réseau ne fonctionne actuellement qu’avec des paquets TCP ou UDP.

Perte de paquet réseau

Propriété Valeur
Nom de fonctionnalité NetworkPacketLoss-1.0
Type cible Microsoft-Agent
Types de systèmes d’exploitation pris en charge Windows, Linux
Description Introduit la perte de paquets pour le trafic sortant à un taux spécifié, entre 0.0 (aucun paquet perdu) et 1.0 (tous les paquets perdus). Cette action permet de simuler des scénarios comme l’encombrement du réseau ou des problèmes matériels du réseau.
Prérequis Windows : l’agent doit s’exécuter en tant qu’administrateur, ce qui se produit par défaut s’il est installé comme une extension VM.
Linux : le package tc (gestion du trafic) est utilisé pour les erreurs réseau. S’il n’est pas déjà installé, l’agent tente automatiquement de l’installer à partir du gestionnaire de package par défaut.
Urn urn:csci:microsoft:agent:networkPacketLoss/1.0
Paramètres (clé, valeur)
packetLossRate Taux de perte des paquets correspondant aux filtres de destination, compris entre 0,0 et 1,0.
virtualMachineScaleSetInstances Tableau d’identifiant d’instance lorsque vous appliquez cette erreur à un groupe de machines virtuelles identiques. Obligatoire pour les groupes de machines virtuelles identiques en mode d’orchestration uniforme. En savoir plus sur les ID d’instance.
destinationFilters Tableau JSON délimité de filtres de paquets (paramètres ci-dessous) qui définissent les paquets sortants à cibler pour l’injection d’erreur. Maximum de trois.
address Adresse IP qui indique le début de la plage d’adresses IP.
subnetMask Masque de sous-réseau pour la plage d’adresses IP.
portLow (Facultatif) Numéro de port du début de la plage de ports.
portHigh (Facultatif) Numéro de port de la fin de la plage de ports.

Exemple de code JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "continuous",
      "name": "urn:csci:microsoft:agent:networkPacketLoss/1.0",
      "parameters": [
            {
                "key": "destinationFilters",
                "value": "[{\"address\":\"23.45.229.97\",\"subnetMask\":\"255.255.255.224\",\"portLow\":5000,\"portHigh\":5200}]"
            },
            {
                "key": "packetLossRate",
                "value": "0.5"
            },
            {
                "key": "virtualMachineScaleSetInstances",
                "value": "[0,1,2]"
            }
        ],
      "duration": "PT10M",
      "selectorid": "myResources"
    }
  ]
}

Limites

  • Les défauts du réseau à base d’agents prennent actuellement en charge que les adresses IPv4.
  • Lors d’une exécution sur Windows, le défaut de perte de paquets réseau ne fonctionne actuellement qu’avec des paquets TCP ou UDP.

Échec DNS

Propriété Valeur
Nom de fonctionnalité DnsFailure-1.0
Type cible Microsoft-Agent
Types de systèmes d’exploitation pris en charge Windows
Description Remplace les réponses aux requêtes de recherche DNS par le code d’erreur spécifié. Les requêtes de recherche DNS remplacées doivent :
  • Provenir de la machine virtuelle.
  • Correspondre aux paramètres d’erreur définis.
Les recherches DNS qui ne sont pas effectuées par le client DNS Windows ne sont pas affectées par cette erreur.
Prérequis Aucune.
Urn urn:csci:microsoft:agent:dnsFailure/1.0
Paramètres (clé, valeur)
hôtes Tableau JSON délimité de noms d’hôtes pour lesquels la demande de recherche DNS doit échouer.

Cette propriété accepte les caractères génériques (*), mais uniquement pour le premier sous-domaine d’une adresse, et s’applique uniquement au sous-domaine pour lequel ils sont spécifiés. Par exemple :
  • *.microsoft.com est pris en charge.
  • sous-domaine.*.microsoft n’est pas pris en charge.
  • *.microsoft.com ne fonctionne pas avec plusieurs sous-domaines dans une adresse, comme subdomain1.subdomain2.microsoft.com.
dnsFailureReturnCode Code d’erreur DNS à retourner au client pour l’échec de recherche (FormErr, ServFail, NXDomain, NotImp, Refused, XDomain, YXRRSet, NXRRSet, NotAuth, NotZone). Pour plus d’informations sur les codes de retour DNS, consultez le site web IANA.
virtualMachineScaleSetInstances Tableau d’identifiant d’instance lorsque vous appliquez cette erreur à un groupe de machines virtuelles identiques. Obligatoire pour les groupes de machines virtuelles identiques en mode d’orchestration uniforme. En savoir plus sur les ID d’instance.

Exemple de code JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "continuous",
      "name": "urn:csci:microsoft:agent:dnsFailure/1.0",
      "parameters": [
        {
          "key": "hosts",
          "value": "[ \"www.bing.com\", \"msdn.microsoft.com\" ]"
        },
        {
          "key": "dnsFailureReturnCode",
          "value": "ServFail"
        },
        {
          "key": "virtualMachineScaleSetInstances",
          "value": "[0,1,2]"
        }
      ],
      "duration": "PT10M",
      "selectorid": "myResources"
    }
  ]
}

Limites

  • L’erreur Échec DNS nécessite Windows 2019 RS5 ou version plus récente.
  • Le cache DNS est ignoré pendant la durée de l’erreur pour les noms d’hôte définis dans l’erreur.

Sollicitation du processeur

Propriété Valeur
Nom de fonctionnalité CPUPressure-1.0
Type cible Microsoft-Agent
Types de systèmes d’exploitation pris en charge Windows, Linux.
Description Ajoute une sollicitation du processeur, jusqu’à la valeur spécifiée, sur la machine virtuelle où cette erreur est injectée durant l’action d’erreur. La sollicitation artificielle du processeur est supprimée à la fin de la durée ou si l’expérience est annulée. Sur Windows, le compteur de performances Pourcentage de rendement du processeur est utilisé au début de l’erreur pour déterminer le pourcentage actuel d’utilisation du processeur, qui est soustrait du paramètre pressureLevel défini dans l’erreur afin que le pourcentage de rendement du processeur atteigne approximativement la valeur pressureLevel définie dans les paramètres d’erreur.
Prérequis Linux : l’utilitaire stress-ng doit être installé. L’installation se fait automatiquement dans le cadre de l’installation de l’agent, en utilisant le gestionnaire de package par défaut, sur plusieurs systèmes d’exploitation dont Debian (comme Ubuntu), Red Hat Enterprise Linux et OpenSUSE. Pour d’autres distributions, notamment Azure Linux, vous devez installer stress-ng manuellement. Pour plus d’informations, consultez le dépôt du projet en amont.
Windows : aucun.
Urn urn:csci:microsoft:agent:cpuPressure/1.0
Paramètres (clé, valeur)
pressureLevel Entier compris entre 1 et 99, qui indique le niveau de sollicitation du processeur (%) appliqué à la machine virtuelle en termes de % d’utilisation du processeur
virtualMachineScaleSetInstances Tableau d’identifiant d’instance lorsque vous appliquez cette erreur à un groupe de machines virtuelles identiques. Obligatoire pour les groupes de machines virtuelles identiques en mode d’orchestration uniforme. En savoir plus sur les ID d’instance.

Exemple de code JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "continuous",
      "name": "urn:csci:microsoft:agent:cpuPressure/1.0",
      "parameters": [
        {
          "key": "pressureLevel",
          "value": "95"
        },
        {
          "key": "virtualMachineScaleSetInstances",
          "value": "[0,1,2]"
        }
      ],
      "duration": "PT10M",
      "selectorid": "myResources"
    }
  ]
}

Limites

Problèmes connus sur Linux :

  • L’effet de contrainte peut ne pas se terminer correctement en cas d’arrêt inopiné de AzureChaosAgent.

Sollicitation de la mémoire physique

Propriété Valeur
Nom de fonctionnalité PhysicalMemoryPressure-1.0
Type cible Microsoft-Agent
Types de systèmes d’exploitation pris en charge Windows, Linux.
Description Ajoute une sollicitation de la mémoire physique, jusqu’à la valeur spécifiée sur la machine virtuelle où cette erreur est injectée durant l’action d’erreur. La sollicitation artificielle de la mémoire physique est supprimée à la fin de la durée ou si l’expérience est annulée.
Prérequis Linux : l’utilitaire stress-ng doit être installé. L’installation se fait automatiquement dans le cadre de l’installation de l’agent, en utilisant le gestionnaire de package par défaut, sur plusieurs systèmes d’exploitation dont Debian (comme Ubuntu), Red Hat Enterprise Linux et OpenSUSE. Pour d’autres distributions, notamment Azure Linux, vous devez installer stress-ng manuellement. Pour plus d’informations, consultez le dépôt du projet en amont.
Windows : aucun.
Urn urn:csci:microsoft:agent:physicalMemoryPressure/1.0
Paramètres (clé, valeur)
pressureLevel Entier compris entre 1 et 99 indiquant la sollicitation de la mémoire physique (%) appliquée à la machine virtuelle.
virtualMachineScaleSetInstances Tableau d’identifiant d’instance lorsque vous appliquez cette erreur à un groupe de machines virtuelles identiques. Obligatoire pour les groupes de machines virtuelles identiques en mode d’orchestration uniforme. En savoir plus sur les ID d’instance.

Exemple de code JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "continuous",
      "name": "urn:csci:microsoft:agent:physicalMemoryPressure/1.0",
      "parameters": [
        {
          "key": "pressureLevel",
          "value": "95"
        },
        {
          "key": "virtualMachineScaleSetInstances",
          "value": "[0,1,2]"
        }
      ],
      "duration": "PT10M",
      "selectorid": "myResources"
    }
  ]
}

Limites

Actuellement, l'agent Windows ne réduit pas la pression de la mémoire lorsque d'autres applications augmentent leur utilisation de la mémoire. Si l’utilisation globale de la mémoire dépasse 100 %, l’agent Windows risque de se bloquer.

Sollicitation de la mémoire virtuelle

Propriété Valeur
Nom de fonctionnalité VirtualMemoryPressure-1.0
Type cible Microsoft-Agent
Types de systèmes d’exploitation pris en charge Windows
Description Ajoute une sollicitation de la mémoire virtuelle, jusqu’à la valeur spécifiée, sur la machine virtuelle où cette erreur est injectée durant l’action d’erreur. La sollicitation artificielle de la mémoire virtuelle est supprimée à la fin de la durée ou si l’expérience est annulée.
Prérequis Aucune.
Urn urn:csci:microsoft:agent:virtualMemoryPressure/1.0
Paramètres (clé, valeur)
pressureLevel Entier compris entre 1 et 99 indiquant la sollicitation de la mémoire physique (%) appliquée à la machine virtuelle.
virtualMachineScaleSetInstances Tableau d’identifiant d’instance lorsque vous appliquez cette erreur à un groupe de machines virtuelles identiques. Obligatoire pour les groupes de machines virtuelles identiques en mode d’orchestration uniforme. En savoir plus sur les ID d’instance.

Exemple de code JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "continuous",
      "name": "urn:csci:microsoft:agent:virtualMemoryPressure/1.0",
      "parameters": [
        {
          "key": "pressureLevel",
          "value": "95"
        },
        {
          "key": "virtualMachineScaleSetInstances",
          "value": "[0,1,2]"
        }
      ],
      "duration": "PT10M",
      "selectorid": "myResources"
    }
  ]
}

Sollicitation des E/S disque

Propriété Valeur
Nom de fonctionnalité DiskIOPressure-1.1
Type cible Microsoft-Agent
Types de systèmes d’exploitation pris en charge Windows
Description Utilise l’utilitaire diskspd pour ajouter une pression sur disque à une machine virtuelle. La pression est ajoutée au disque primaire par défaut, ou au disque spécifié avec le paramètre targetTempDirectory. Cette erreur est déclinée en cinq modes d’exécution différents. La sollicitation artificielle du disque est supprimée à la fin de la durée ou si l’expérience est annulée.
Prérequis Aucune.
Urn urn:csci:microsoft:agent:diskIOPressure/1.1
Paramètres (clé, valeur)
pressureMode Mode prédéfini de sollicitation du disque à ajouter au stockage principal de la machine virtuelle. Il doit s’agir de l’une des valeurs PressureModes dans la table suivante.
targetTempDirectory (Facultatif) Répertoire à utiliser pour appliquer la pression du disque. Par exemple : D:/Temp. Si le paramètre n’est pas inclus, la pression est ajoutée au disque principal.
virtualMachineScaleSetInstances Tableau d’identifiant d’instance lorsque vous appliquez cette erreur à un groupe de machines virtuelles identiques. Obligatoire pour les groupes de machines virtuelles identiques en mode d’orchestration uniforme. En savoir plus sur les ID d’instance.

Modes de pression

PressureMode Description
PremiumStorageP10IOPS numberOfThreads = 1
randomBlockSizeInKB = 64
randomSeed = 10
numberOfIOperThread = 25
sizeOfBlocksInKB = 8
sizeOfWriteBufferInKB = 64
fileSizeInGB = 2
percentOfWriteActions = 50
PremiumStorageP10Throttling
numberOfThreads = 2
randomBlockSizeInKB = 64
randomSeed = 10
numberOfIOperThread = 25
sizeOfBlocksInKB = 64
sizeOfWriteBufferInKB = 64
fileSizeInGB = 1
percentOfWriteActions = 50
PremiumStorageP50IOPS numberOfThreads = 32
randomBlockSizeInKB = 64
randomSeed = 10
numberOfIOperThread = 32
sizeOfBlocksInKB = 8
sizeOfWriteBufferInKB = 64
fileSizeInGB = 1
percentOfWriteActions = 50
PremiumStorageP50Throttling numberOfThreads = 2
randomBlockSizeInKB = 1024
randomSeed = 10
numberOfIOperThread = 2
sizeOfBlocksInKB = 1024
sizeOfWriteBufferInKB = 1024
fileSizeInGB = 20
percentOfWriteActions = 50
Par défaut numberOfThreads = 2
randomBlockSizeInKB = 64
randomSeed = 10
numberOfIOperThread = 2
sizeOfBlocksInKB = 64
sizeOfWriteBufferInKB = 64
fileSizeInGB = 1
percentOfWriteActions = 50

Exemple de code JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "continuous",
      "name": "urn:csci:microsoft:agent:diskIOPressure/1.1",
      "parameters": [
        {
          "key": "pressureMode",
          "value": "PremiumStorageP10IOPS"
        },
        {
          "key": "targetTempDirectory",
          "value": "C:/temp/"
        },
        {
          "key": "virtualMachineScaleSetInstances",
          "value": "[0,1,2]"
        }
      ],
      "duration": "PT10M",
      "selectorid": "myResources"
    }
  ]
}

Sollicitation des E/S disque Linux

Propriété Valeur
Nom de fonctionnalité LinuxDiskIOPressure-1.1
Type cible Microsoft-Agent
Types de systèmes d’exploitation pris en charge Linux
Description Utilise stress-ng pour appliquer la sollicitation au disque. Un ou plusieurs processus Worker sont générés, qui effectuent les processus d’E/S avec des fichiers temporaires. La pression est ajoutée au disque primaire par défaut, ou au disque spécifié avec le paramètre targetTempDirectory. Pour plus d’informations sur la façon dont la pression est appliquée, consultez l’article stress-ng.
Prérequis Linux : l’utilitaire stress-ng doit être installé. L’installation se fait automatiquement dans le cadre de l’installation de l’agent, en utilisant le gestionnaire de package par défaut, sur plusieurs systèmes d’exploitation dont Debian (comme Ubuntu), Red Hat Enterprise Linux et OpenSUSE. Pour d’autres distributions, notamment Azure Linux, vous devez installer stress-ng manuellement. Pour plus d’informations, consultez le dépôt du projet en amont.
Urn urn:csci:microsoft:agent:linuxDiskIOPressure/1.1
Paramètres (clé, valeur)
workerCount Nombre de processus Worker à exécuter. La définition de workerCount sur la valeur 0 génère autant de processus Worker qu’il existe de processeurs.
fileSizePerWorker Taille du fichier temporaire sur lequel un rôle de travail effectue des opérations d’E/S. Entier plus une unité exprimée en octets (b), kilo-octets (k), mégaoctets (m) ou gigaoctets (g) (par exemple, 4m pour 4 mégaoctets et 256g pour 256 gigaoctets).
blockSize Taille de bloc à utiliser pour les opérations d’E/S disque, supérieure à 1 octet et inférieure à 4 mégaoctets (la valeur maximale est 4095k). Entier plus une unité exprimée en octets, kilo-octets ou mégaoctets (par exemple, 512k pour 512 kilo-octets).
targetTempDirectory (Facultatif) Répertoire à utiliser pour appliquer la pression du disque. Par exemple : /tmp/. Si le paramètre n’est pas inclus, la pression est ajoutée au disque principal.
virtualMachineScaleSetInstances Tableau d’identifiant d’instance lorsque vous appliquez cette erreur à un groupe de machines virtuelles identiques. Obligatoire pour les groupes de machines virtuelles identiques en mode d’orchestration uniforme. En savoir plus sur les ID d’instance.

Exemple de code JSON

Ces exemples de valeurs ont généré une sollicitation du disque d’environ 100 % en cas de test sur une machine virtuelle Standard_D2s_v3 avec le stockage localement redondant (LRS) SSD Premium. Une valeur FileSizePerWorker élevée et une valeur blocSize inférieure aident à contraindre complètement le disque.

{
  "name": "branchOne",
  "actions": [
    {
      "type": "continuous",
      "name": "urn:csci:microsoft:agent:linuxDiskIOPressure/1.1",
      "parameters": [
        {
          "key": "workerCount",
          "value": "4"
        },
        {
          "key": "fileSizePerWorker",
          "value": "2g"
        },
        {
          "key": "blockSize",
          "value": "64k"
        },
        {
          "key": "targetTempDirectory",
          "value": "/tmp/"
        }
      ],
      "duration": "PT10M",
      "selectorid": "myResources"
    }
  ]
}

Arrêter le service

Propriété Valeur
Nom de fonctionnalité StopService-1.0
Type cible Microsoft-Agent
Types de systèmes d’exploitation pris en charge Windows, Linux.
Description Arrête un service Windows ou un service Linux systemd pendant l’erreur. Redémarrez-le à la fin de la durée ou si l’expérience est annulée.
Prérequis Aucune.
Urn urn:csci:microsoft:agent:stopService/1.0
Paramètres (clé, valeur)
serviceName Nom du service Windows ou du service Linux systemd que vous souhaitez arrêter.
virtualMachineScaleSetInstances Tableau d’identifiant d’instance lorsque vous appliquez cette erreur à un groupe de machines virtuelles identiques. Obligatoire pour les groupes de machines virtuelles identiques en mode d’orchestration uniforme. En savoir plus sur les ID d’instance.

Exemple de code JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "continuous",
      "name": "urn:csci:microsoft:agent:stopService/1.0",
      "parameters": [
        {
          "key": "serviceName",
          "value": "nvagent"
        },
        {
          "key": "virtualMachineScaleSetInstances",
          "value": "[0,1,2]"
        }
      ],
      "duration": "PT10M",
      "selectorid": "myResources"
    }
  ]
}

Limites

  • Windows : les noms d’affichage des services ne sont pas pris en charge. Utilisez sc.exe query dans l’invite de commandes pour explorer les noms de service.
  • Linux : d’autres types de service en plus du système, comme sysvinit, ne sont pas pris en charge.

Arrêter le processus

Propriété Valeur
Nom de fonctionnalité KillProcess-1.0
Type cible Microsoft-Agent
Types de systèmes d’exploitation pris en charge Windows, Linux.
Description Arrête toutes les instances en cours d’exécution d’un processus correspondant au nom de processus envoyé dans les paramètres d’erreur. Dans la durée définie pour l’action d’erreur, un processus est arrêté de façon répétée en fonction de la valeur de l’intervalle d’arrêt spécifié. Cette erreur est une erreur destructive dans laquelle l’administrateur système doit récupérer manuellement le processus si une réparation spontanée est configurée pour celui-ci.
Prérequis Aucune.
Urn urn:csci:microsoft:agent:killProcess/1.0
Paramètres (clé, valeur)
processName Nom d’un processus à tuer en permanence (sans le .exe). Il n’est pas nécessaire que le processus soit en cours d’exécution lorsque l’erreur commence à s’exécuter.
killIntervalInMilliseconds Durée d’attente de l’erreur entre des tentatives d’arrêt successives, exprimée en millisecondes.
virtualMachineScaleSetInstances Tableau d’identifiant d’instance lorsque vous appliquez cette erreur à un groupe de machines virtuelles identiques. Obligatoire pour les groupes de machines virtuelles identiques en mode d’orchestration uniforme. En savoir plus sur les ID d’instance.

Exemple de code JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "continuous",
      "name": "urn:csci:microsoft:agent:killProcess/1.0",
      "parameters": [
        {
          "key": "processName",
          "value": "myapp"
        },
        {
          "key": "killIntervalInMilliseconds",
          "value": "1000"
        },
        {
          "key": "virtualMachineScaleSetInstances",
          "value": "[0,1,2]"
        }
      ],
      "duration": "PT10M",
      "selectorid": "myResources"
    }
  ]
}

Changement d’heure

Propriété Valeur
Nom de fonctionnalité TimeChange-1.0
Type cible Microsoft-Agent
Types de systèmes d’exploitation pris en charge Windows
Description Change l’heure du système de la machine virtuelle, et réinitialise l’heure à la fin de l’expérience ou si l’expérience est annulée.
Prérequis Aucune.
Urn urn:csci:microsoft:agent:timeChange/1.0
Paramètres (clé, valeur)
dateTime Chaîne DateTime au format ISO8601. Si les valeurs YYYY-MM-DD sont manquantes, elles sont définies par défaut sur le jour actuel au moment de l’exécution de l’expérience. Si les valeurs Thh:mm:ss sont manquantes, la valeur par défaut est 12:00:00. Si une année à 2 chiffres est fournie (YY), elle est convertie en année à 4 chiffres (YYYY) basée sur le siècle actuel. Si le fuseau horaire <Z> est manquant, le décalage par défaut est le fuseau horaire local. <Z> doit toujours inclure un symbole de signe (négatif ou positif).
virtualMachineScaleSetInstances Tableau d’identifiant d’instance lorsque vous appliquez cette erreur à un groupe de machines virtuelles identiques. Obligatoire pour les groupes de machines virtuelles identiques en mode d’orchestration uniforme. En savoir plus sur les ID d’instance.

Exemple de code JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "continuous",
      "name": "urn:csci:microsoft:agent:timeChange/1.0",
      "parameters": [
        {
          "key": "dateTime",
          "value": "2038-01-01T03:14:07"
        },
        {
          "key": "virtualMachineScaleSetInstances",
          "value": "[0,1,2]"
        }
      ],
      "duration": "PT10M",
      "selectorid": "myResources"
    }
  ]
}

Contrainte stress-ng arbitraire

Propriété Valeur
Nom de fonctionnalité StressNg-1.0
Type cible Microsoft-Agent
Types de systèmes d’exploitation pris en charge Linux
Description Exécute une commande stress-ng quelconque en passant des arguments directement à stress-ng. Utile lorsque l’une des erreurs prédéfinies pour stress-ng ne répond pas à vos besoins.
Prérequis Linux : l’utilitaire stress-ng doit être installé. L’installation se fait automatiquement dans le cadre de l’installation de l’agent, en utilisant le gestionnaire de package par défaut, sur plusieurs systèmes d’exploitation dont Debian (comme Ubuntu), Red Hat Enterprise Linux et OpenSUSE. Pour d’autres distributions, notamment Azure Linux, vous devez installer stress-ng manuellement. Pour plus d’informations, consultez le dépôt du projet en amont.
Urn urn:csci:microsoft:agent:stressNg/1.0
Paramètres (clé, valeur)
stressNgArguments Un ou plusieurs arguments à passer au processus stress-ng. Pour plus d’informations sur les arguments stress-ng possibles, consultez l’article stress-ng. NOTE : N'incluez PAS l'argument "-t " car cela provoquerait une erreur. La durée de l’expérience est définie directement dans l’interface utilisateur de l’expérience Azure Chaos, et NON dans stressNgArguments.

Exemple de code JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "continuous",
      "name": "urn:csci:microsoft:agent:stressNg/1.0",
      "parameters": [
        {
          "key": "stressNgArguments",
          "value": "--random 64"
        },
        {
          "key": "virtualMachineScaleSetInstances",
          "value": "[0,1,2]"
        }
      ],
      "duration": "PT10M",
      "selectorid": "myResources"
    }
  ]
}

Détails : erreurs directes de service

Arrêter App Service

Propriété Valeur
Nom de fonctionnalité Stop-1.0
Type cible Microsoft-AppService
Description Arrête les applications App Service ciblées, puis les redémarre à la fin de la durée de l’erreur. Cette action s’applique aux ressources de type « Microsoft.Web/sites », y compris App Service, API Apps, Mobile Apps et Azure Functions.
Prérequis Aucune.
Urn urn:csci:microsoft:appService:stop/1.0
Type d’erreur Continu.
Paramètres (clé, valeur) Aucune.

Exemple de code JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "continuous",
      "name": "urn:csci:microsoft:appService:stop/1.0",
      "duration": "PT10M",
      "parameters":[],
      "selectorid": "myResources"
    }
  ]
}

Désactiver la mise à l’échelle automatique

Propriété Valeur
Nom de fonctionnalité DisaleAutoscale
Type cible Microsoft-AutoscaleSettings
Description Désactive le service de mise à l’échelle automatique. Lorsque la mise à l’échelle automatique est désactivée, les ressources telles que les groupes de machines virtuelles identiques, les applications web, service bus, etc. ne sont pas automatiquement ajoutées ou supprimées en fonction de la charge de l’application.
Prérequis La ressource autoScalesetting activée sur la ressource doit être intégrée à Chaos Studio.
Urn urn:csci:microsoft:autoscalesettings:disableAutoscale/1.0
Type d’erreur Continu.
Paramètres (clé, valeur)
enableOnComplete Booléenne. Configure si la mise à l’échelle automatique est réactivée après la réalisation de l’action. La valeur par défaut est true.

Exemple de code JSON

{
  "name": "BranchOne", 
  "actions": [ 
    { 
    "type": "continuous", 
    "name": "urn:csci:microsoft:autoscaleSetting:disableAutoscale/1.0", 
    "parameters": [ 
     { 
      "key": "enableOnComplete", 
      "value": "true" 
      }                 
  ],                                 
   "duration": "PT2M", 
   "selectorId": "Selector1",           
  } 
 ] 
} 

Chaos réseau AKS Chaos Mesh

Propriété Valeur
Nom de fonctionnalité NetworkChaos-2.1
Type cible Microsoft-AzureKubernetesServiceChaosMesh
Types de système d’exploitation de pool de nœuds pris en charge Linux
Description Provoque l’exécution d’une erreur réseau disponible via Chaos Mesh sur votre cluster Azure Kubernetes Service (AKS). Utile pour recréer des incidents AKS résultant de pannes de réseau, des retards, des duplications, des pertes et des altérations.
Prérequis Chaos Mesh doit être déployé sur le cluster AKS.
Urn urn:csci:microsoft:azureKubernetesServiceChaosMesh:networkChaos/2.1
Paramètres (clé, valeur)
jsonSpec Spécification Chaos Mesh au format JSON qui utilise le genre NetworkChaos. Vous pouvez utiliser un convertisseur YAML en JSON, par exemple Convert YAML To JSON, pour convertir le YAML Chaos Mesh en JSON et le minifier. Utilisez des guillemets simples dans le JSON ou échappez les guillemets avec une barre oblique inverse. Incluez uniquement le YAML sous la propriété jsonSpec. N’incluez pas d’informations telles que les métadonnées et le type. La spécification de la durée dans le jsonSpec n’est pas nécessaire, mais elle est utilisée si elle est disponible.

Exemple de code JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "continuous",
      "name": "urn:csci:microsoft:azureKubernetesServiceChaosMesh:networkChaos/2.1",
      "parameters": [
        {
            "key": "jsonSpec",
            "value": "{\"action\":\"delay\",\"mode\":\"one\",\"selector\":{\"namespaces\":[\"default\"]},\"delay\":{\"latency\":\"200ms\",\"correlation\":\"100\",\"jitter\":\"0ms\"}}}"
        }
    ],
      "selectorid": "myResources"
    }
  ]
}

Chaos de pod AKS Chaos Mesh

Propriété Valeur
Nom de fonctionnalité PodChaos-2.1
Type cible Microsoft-AzureKubernetesServiceChaosMesh
Types de système d’exploitation de pool de nœuds pris en charge Linux
Description Provoque l’exécution d’une erreur de pod disponible via Chaos Mesh sur votre cluster AKS. Utile pour recréer des incidents AKS qui résultent de défaillances de pod ou de problèmes de conteneur.
Prérequis Chaos Mesh doit être déployé sur le cluster AKS.
Urn urn:csci:microsoft:azureKubernetesServiceChaosMesh:podChaos/2.1
Paramètres (clé, valeur)
jsonSpec Spécification Chaos Mesh au format JSON qui utilise le genre PodChaos. Vous pouvez utiliser un convertisseur YAML en JSON, par exemple Convert YAML To JSON, pour convertir le YAML Chaos Mesh en JSON et le minifier. Utilisez des guillemets simples dans le JSON ou échappez les guillemets avec une barre oblique inverse. Incluez uniquement le YAML sous la propriété jsonSpec. N’incluez pas d’informations telles que les métadonnées et le type. La spécification de la durée dans le jsonSpec n’est pas nécessaire, mais elle est utilisée si elle est disponible.

Exemple de code JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "continuous",
      "name": "urn:csci:microsoft:azureKubernetesServiceChaosMesh:podChaos/2.1",
      "parameters": [
        {
            "key": "jsonSpec",
            "value": "{\"action\":\"pod-failure\",\"mode\":\"all\",\"selector\":{\"namespaces\":[\"default\"]}}"
        }
    ],
      "selectorid": "myResources"
    }
  ]
}

Chaos de contrainte AKS Chaos Mesh

Propriété Valeur
Nom de fonctionnalité StressChaos-2.1
Type cible Microsoft-AzureKubernetesServiceChaosMesh
Types de système d’exploitation de pool de nœuds pris en charge Linux
Description Provoque l’exécution d’une erreur de contrainte disponible via Chaos Mesh sur votre cluster AKS. Utile pour recréer des incidents AKS en raison de contraintes sur une collection de pods, par exemple, en raison d’une utilisation élevée du processeur ou de la mémoire.
Prérequis Chaos Mesh doit être déployé sur le cluster AKS.
Urn urn:csci:microsoft:azureKubernetesServiceChaosMesh:stressChaos/2.1
Paramètres (clé, valeur)
jsonSpec Spécification Chaos Mesh au format JSON qui utilise le genre StressChaos. Vous pouvez utiliser un convertisseur YAML en JSON, par exemple Convert YAML To JSON, pour convertir le YAML Chaos Mesh en JSON et le minifier. Utilisez des guillemets simples dans le JSON ou échappez les guillemets avec une barre oblique inverse. Incluez uniquement le YAML sous la propriété jsonSpec. N’incluez pas d’informations telles que les métadonnées et le type. La spécification de la durée dans le jsonSpec n’est pas nécessaire, mais elle est utilisée si elle est disponible.

Exemple de code JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "continuous",
      "name": "urn:csci:microsoft:azureKubernetesServiceChaosMesh:stressChaos/2.1",
      "parameters": [
        {
            "key": "jsonSpec",
            "value": "{\"mode\":\"one\",\"selector\":{\"namespaces\":[\"default\"]},\"stressors\":{\"cpu\":{\"workers\":1,\"load\":50},\"memory\":{\"workers\":4,\"size\":\"256MB\"}}"
        }
    ],
      "selectorid": "myResources"
    }
  ]
}

Chaos d’E/S AKS Chaos Mesh

Propriété Valeur
Nom de fonctionnalité IOChaos-2.1
Type cible Microsoft-AzureKubernetesServiceChaosMesh
Types de système d’exploitation de pool de nœuds pris en charge Linux
Description Provoque l’exécution d’une erreur d’E/S disponible via Chaos Mesh sur votre cluster AKS. Utile pour recréer des incidents AKS en raison de retards d’E/S et des défaillances de lecture/écriture lorsque vous utilisez des appels de système d’E/S tels que open, read et write.
Prérequis Chaos Mesh doit être déployé sur le cluster AKS.
Urn urn:csci:microsoft:azureKubernetesServiceChaosMesh:IOChaos/2.1
Paramètres (clé, valeur)
jsonSpec Spécification Chaos Mesh au format JSON qui utilise le genre IOChaos. Vous pouvez utiliser un convertisseur YAML en JSON, par exemple Convert YAML To JSON, pour convertir le YAML Chaos Mesh en JSON et le minifier. Utilisez des guillemets simples dans le JSON ou échappez les guillemets avec une barre oblique inverse. Incluez uniquement le YAML sous la propriété jsonSpec. N’incluez pas d’informations telles que les métadonnées et le type. La spécification de la durée dans le jsonSpec n’est pas nécessaire, mais elle est utilisée si elle est disponible.

Exemple de code JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "continuous",
      "name": "urn:csci:microsoft:azureKubernetesServiceChaosMesh:IOChaos/2.1",
      "parameters": [
        {
            "key": "jsonSpec",
            "value": "{\"action\":\"latency\",\"mode\":\"one\",\"selector\":{\"app\":\"etcd\"},\"volumePath\":\"\/var\/run\/etcd\",\"path\":\"\/var\/run\/etcd\/**\/*\",\"delay\":\"100ms\",\"percent\":50}"
        }
    ],
      "selectorid": "myResources"
    }
  ]
}

Chaos d’heure AKS Chaos Mesh

Propriété Valeur
Nom de fonctionnalité TimeChaos-2.1
Type cible Microsoft-AzureKubernetesServiceChaosMesh
Types de système d’exploitation de pool de nœuds pris en charge Linux
Description Entraîne une modification de l’horloge système sur votre cluster AKS en utilisant Chaos Mesh. Utile pour recréer des incidents AKS résultant d’un échec de synchronisation de systèmes distribués, d’une logique d’année bissextile ou de seconde intercalaire, et bien plus encore.
Prérequis Chaos Mesh doit être déployé sur le cluster AKS.
Urn urn:csci:microsoft:azureKubernetesServiceChaosMesh:timeChaos/2.1
Paramètres (clé, valeur)
jsonSpec Spécification Chaos Mesh au format JSON qui utilise le genre TimeChaos. Vous pouvez utiliser un convertisseur YAML en JSON, par exemple Convert YAML To JSON, pour convertir le YAML Chaos Mesh en JSON et le minifier. Utilisez des guillemets simples dans le JSON ou échappez les guillemets avec une barre oblique inverse. Incluez uniquement le YAML sous la propriété jsonSpec. N’incluez pas d’informations telles que les métadonnées et le type. La spécification de la durée dans le jsonSpec n’est pas nécessaire, mais elle est utilisée si elle est disponible.

Exemple de code JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "continuous",
      "name": "urn:csci:microsoft:azureKubernetesServiceChaosMesh:timeChaos/2.1",
      "parameters": [
        {
            "key": "jsonSpec",
            "value": "{\"mode\":\"one\",\"selector\":{\"namespaces\":[\"default\"]},\"timeOffset\":\"-10m100ns\"}"
        }
    ],
      "selectorid": "myResources"
    }
  ]
}

Chaos du noyau AKS Chaos Mesh

Propriété Valeur
Nom de fonctionnalité KernelChaos-2.1
Type cible Microsoft-AzureKubernetesServiceChaosMesh
Types de système d’exploitation de pool de nœuds pris en charge Linux
Description Provoque l’exécution d’une erreur de noyau disponible via Chaos Mesh sur votre cluster AKS. Utile pour recréer des incidents AKS en raison d’erreurs au niveau du noyau Linux, telles qu’un échec de montage ou la non-allocation de mémoire.
Prérequis Chaos Mesh doit être déployé sur le cluster AKS.
Urn urn:csci:microsoft:azureKubernetesServiceChaosMesh:kernelChaos/2.1
Paramètres (clé, valeur)
jsonSpec Spécification Chaos Mesh au format JSON qui utilise le genre KernelChaos. Vous pouvez utiliser un convertisseur YAML en JSON, par exemple Convert YAML To JSON, pour convertir le YAML Chaos Mesh en JSON et le minifier. Utilisez des guillemets simples dans le JSON ou échappez les guillemets avec une barre oblique inverse. Incluez uniquement le YAML sous la propriété jsonSpec. N’incluez pas d’informations telles que les métadonnées et le type. La spécification de la durée dans le jsonSpec n’est pas nécessaire, mais elle est utilisée si elle est disponible.

Exemple de code JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "continuous",
      "name": "urn:csci:microsoft:azureKubernetesServiceChaosMesh:kernelChaos/2.1",
      "parameters": [
        {
            "key": "jsonSpec",
            "value": "{\"mode\":\"one\",\"selector\":{\"namespaces\":[\"default\"]},\"failKernRequest\":{\"callchain\":[{\"funcname\":\"__x64_sys_mount\"}],\"failtype\":0}}"
        }
    ],
      "selectorid": "myResources"
    }
  ]
}

Chaos HTTP AKS Chaos Mesh

Propriété Valeur
Nom de fonctionnalité HTTPChaos-2.1
Type cible Microsoft-AzureKubernetesServiceChaosMesh
Types de système d’exploitation de pool de nœuds pris en charge Linux
Description Provoque l’exécution d’une erreur HTTP disponible via Chaos Mesh sur votre cluster AKS. Utile pour recréer des incidents en raison d’échecs de traitement de requête et de réponse HTTP, comme des réponses retardées ou incorrectes.
Prérequis Chaos Mesh doit être déployé sur le cluster AKS.
Urn urn:csci:microsoft:azureKubernetesServiceChaosMesh:httpChaos/2.1
Paramètres (clé, valeur)
jsonSpec Spécification Chaos Mesh au format JSON qui utilise le genre HTTPChaos. Vous pouvez utiliser un convertisseur YAML en JSON, par exemple Convert YAML To JSON, pour convertir le YAML Chaos Mesh en JSON et le minifier. Utilisez des guillemets simples dans le JSON ou échappez les guillemets avec une barre oblique inverse. Incluez uniquement le YAML sous la propriété jsonSpec. N’incluez pas d’informations telles que les métadonnées et le type. La spécification de la durée dans le jsonSpec n’est pas nécessaire, mais elle est utilisée si elle est disponible.

Exemple de code JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "continuous",
      "name": "urn:csci:microsoft:azureKubernetesServiceChaosMesh:httpChaos/2.1",
      "parameters": [
        {
            "key": "jsonSpec",
            "value": "{\"mode\":\"all\",\"selector\":{\"namespaces\":[\"default\"]},\"target\":\"Request\",\"port\":80,\"method\":\"GET\",\"path\":\"/api\",\"abort\":true}"
        }
    ],
      "selectorid": "myResources"
    }
  ]
}

Chaos DNS AKS Chaos Mesh

Propriété Valeur
Nom de fonctionnalité DNSChaos-2.1
Type cible Microsoft-AzureKubernetesServiceChaosMesh
Types de système d’exploitation de pool de nœuds pris en charge Linux
Description Provoque l’exécution d’une erreur DNS disponible via Chaos Mesh sur votre cluster AKS. Utile pour recréer des incidents suite à des échecs DNS.
Prérequis Chaos Mesh doit être déployé sur le cluster AKS et le service DNS doit être installé.
Urn urn:csci:microsoft:azureKubernetesServiceChaosMesh:dnsChaos/2.1
Paramètres (clé, valeur)
jsonSpec Spécification Chaos Mesh au format JSON qui utilise le genre DNSChaos. Vous pouvez utiliser un convertisseur YAML en JSON, par exemple Convert YAML To JSON, pour convertir le YAML Chaos Mesh en JSON et le minifier. Utilisez des guillemets simples dans le JSON ou échappez les guillemets avec une barre oblique inverse. Incluez uniquement le YAML sous la propriété jsonSpec. N’incluez pas d’informations telles que les métadonnées et le type. La spécification de la durée dans le jsonSpec n’est pas nécessaire, mais elle est utilisée si elle est disponible.

Exemple de code JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "continuous",
      "name": "urn:csci:microsoft:azureKubernetesServiceChaosMesh:dnsChaos/2.1",
      "parameters": [
        {
            "key": "jsonSpec",
            "value": "{\"action\":\"random\",\"mode\":\"all\",\"patterns\":[\"google.com\",\"chaos-mesh.*\",\"github.?om\"],\"selector\":{\"namespaces\":[\"default\"]}}"
        }
    ],
      "selectorid": "myResources"
    }
  ]
}

Arrêt de Cloud Services (classique)

Propriété Valeur
Nom de fonctionnalité Shutdown-1.0
Type cible Microsoft-DomainName
Description Arrête un déploiement pendant l’erreur. Redémarre le déploiement à la fin de la durée de l’erreur ou si l’expérience est annulée.
Prérequis Aucune.
Urn urn:csci:microsoft:domainName:shutdown/1.0
Type d’erreur Continu.
Paramètres Aucune.

Exemple de code JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "continuous",
      "name": "urn:csci:microsoft:domainName:shutdown/1.0",
      "parameters": [],
      "duration": "PT10M",
      "selectorid": "myResources"
    }
  ]
}

Azure Cache pour Redis (redémarrage)

Propriété Valeur
Nom de fonctionnalité Reboot-1.0
Type cible Microsoft-AzureClusteredCacheForRedis
Description Entraîne une opération de redémarrage forcé sur la cible afin de simuler une courte panne.
Prérequis S/O
Urn urn:csci:microsoft:azureClusteredCacheForRedis:reboot/1.0
Type d’erreur Discrète.
Paramètres (clé, valeur)
rebootType Types de nœuds où l’action de redémarrage doit être exécutée, qui peuvent être spécifiés en tant que PrimaryNode, SecondaryNode ou AllNodes.
shardId ID de la partition à redémarrer. Ne concerne que les caches de niveau Premium.

Exemple de code JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "discrete",
      "name": "urn:csci:microsoft:azureClusteredCacheForRedis:reboot/1.0",
      "parameters": [
        {
          "key": "RebootType",
          "value": "AllNodes"
        },
        {
          "key": "ShardId",
          "value": "0"
        }
      ],
      "selectorid": "myResources"
    }
  ]
}

Limites

  • L’erreur de redémarrage entraîne un redémarrage forcé afin de mieux simuler une panne, ce qui signifie qu’il existe un risque de perte de données.
  • L’erreur de redémarrage est un type d’erreur discrète. Contrairement aux erreurs continues, il s’agit d’une action ponctuelle et n’a aucune durée.

Basculement de Cosmos DB

Propriété Valeur
Nom de fonctionnalité Failover-1.0
Type cible Microsoft-CosmosDB
Description Provoque le basculement d’un compte Azure Cosmos DB avec une seule région d’écriture vers une région de lecture spécifiée afin de simuler une panne de région d’écriture.
Prérequis Aucune.
Urn urn:csci:microsoft:cosmosDB:failover/1.0
Paramètres (clé, valeur)
readRegion Région de lecture à promouvoir en région d’écriture pendant le basculement, par exemple, East US 2.

Exemple de code JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "continuous",
      "name": "urn:csci:microsoft:cosmosDB:failover/1.0",
      "parameters": [
        {
          "key": "readRegion",
          "value": "West US 2"
        }
      ],
      "duration": "PT10M",
      "selectorid": "myResources"
    }
  ]
}

Modifier l’état d’Event Hub

Propriété Valeur
Nom de fonctionnalité ChangeEventHubState-1.0
Type cible Microsoft-EventHub
Description Définit des hubs d’événements individuels à l’état souhaité dans un espace de noms Azure Event Hubs. Vous pouvez affecter des noms d’Event Hub spécifiques ou utiliser « * » pour affecter tous les espaces de noms. Cette action permet de tester l’infrastructure de messagerie pour des scénarios de maintenance ou de défaillance. Il s'agit d'une erreur discrète, de sorte que l'entité ne reviendra pas automatiquement à l'état initial.
Prérequis Espace de noms Azure Event Hubs avec au moins une entité Event Hub.
Urn urn:csci:microsoft:eventHub:changeEventHubState/1.0
Type d’erreur Discrète.
Paramètres (clé, valeur)
desiredState L’état souhaité pour les hubs d’événements ciblés. Les états possibles sont Active, Disabled et SendDisabled.
eventHubs Une liste séparée par des virgules des noms d’Event Hub dans l'espace de noms ciblé. Utilisez « * » pour affecter toutes les entités de l'espace de noms.

Exemple de code JSON

{
  "name": "Branch1",
    "actions": [
        {
            "selectorId": "Selector1",
            "type": "discrete",
            "parameters": [
                {
                    "key": "eventhubs",
                    "value": "[\"*\"]"
                },
                {
                    "key": "desiredState",
                    "value": "Disabled"
                }
            ],
            "name": "urn:csci:microsoft:eventHub:changeEventHubState/1.0"
        }
    ]
}

Key Vault : refuser l’accès

Propriété Valeur
Nom de fonctionnalité DenyAccess-1.0
Type cible Microsoft-KeyVault
Description Bloque tout les accès réseau à un coffre de clés en modifiant temporairement les règles réseau du coffre de clés. Cette action empêche une application dépendante du coffre de clés d’accéder aux secrets, aux clés et/ou aux certificats. Si le coffre de clés autorise l'accès à tous les réseaux, ce paramètre est modifié pour n'autoriser l'accès qu'à partir des réseaux sélectionnés. Aucun réseau virtuel ne figure dans la liste autorisée au début de l’erreur. Tous les réseaux sont autorisés à accéder à la fin de la durée de l’erreur. Si le coffre de clés est configuré pour autoriser uniquement l’accès à partir de réseaux sélectionnés, tous les réseaux virtuels de la liste de ceux étant autorisés sont supprimés au début de l’erreur. Ils sont restaurés à la fin de la durée de l’erreur.
Prérequis Le coffre de clés cible ne peut pas avoir de règles de pare-feu et ne doit pas être configuré pour autoriser les services Azure à contourner le pare-feu. Si le coffre de clés cible est configuré pour autoriser uniquement l’accès à partir de réseaux sélectionnés, il doit y avoir au moins une règle de réseau virtuel. Le coffre de clés ne peut pas être en mode de récupération.
Urn urn:csci:microsoft:keyVault:denyAccess/1.0
Type d’erreur Continu.
Paramètres (clé, valeur) Aucune.

Exemple de code JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "continuous",
      "name": "urn:csci:microsoft:keyvault:denyAccess/1.0",
      "parameters": [],
      "duration": "PT10M",
      "selectorid": "myResources"
    }
  ]
}

Coffre de clés : désactiver le certificat

Propriété Valeur
Nom de fonctionnalité DisableCertificate-1.0
Type cible Microsoft-KeyVault
Description En utilisant les propriétés du certificat, la faute désactive le certificat pour une durée spécifique (fournie par l'utilisateur). Elle active le certificat après cette durée d’erreur.
Prérequis Aucune.
Urn urn:csci:microsoft:keyvault:disableCertificate/1.0
Type d’erreur Continu.
Paramètres (clé, valeur)
certificateName Nom du certificat Azure Key Vault sur lequel l’erreur est exécutée.
version Version du certificat à désactiver. La version la plus récente est désactivée si vous n’avez rien spécifié.

Exemple de code JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "continuous",
      "name": "urn:csci:microsoft:keyvault:disableCertificate/1.0",
      "parameters": [
        {
            "key": "certificateName",
            "value": "<name of AKV certificate>"
        },
        {
            "key": "version",
            "value": "<certificate version>"
        }

],
      "duration": "PT10M",
      "selectorid": "myResources"
    }
  ]
}

Coffre de clés : incrémenter la version du certificat

Propriété Valeur
Nom de fonctionnalité IncrementCertificateVersion-1.0
Type cible Microsoft-KeyVault
Description Génère une nouvelle version de certificat et une nouvelle empreinte en utilisant la bibliothèque client de certificats du coffre de clés. Le certificat de travail actuel est mis à jour avec cette version. La version du certificat n’est pas rétablie après la durée de l’erreur.
Prérequis Aucune.
Urn urn:csci:microsoft:keyvault:incrementCertificateVersion/1.0
Type d’erreur Discrète.
Paramètres (clé, valeur)
certificateName Nom du certificat Azure Key Vault sur lequel l’erreur est exécutée.

Exemple de code JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "discrete",
      "name": "urn:csci:microsoft:keyvault:incrementCertificateVersion/1.0",
      "parameters": [
        {
            "key": "certificateName",
            "value": "<name of AKV certificate>"
        }
    ],
      "duration": "PT10M",
      "selectorid": "myResources"
    }
  ]
}

Coffre de clés : mise à jour de la stratégie de certification

Propriété Valeur
Nom de fonctionnalité UpdateCertificatePolicy-1.0
Type cible Microsoft-KeyVault
Description Les politiques de certification (par exemple, la période de validité du certificat, le type de certificat, la taille de la clé ou le type de clé) sont mises à jour sur la base des données fournies par l'utilisateur et annulées après la durée de l'erreur.
Prérequis Aucune.
Urn urn:csci:microsoft:keyvault:updateCertificatePolicy/1.0
Type d’erreur Continu.
Paramètres (clé, valeur)
certificateName Nom du certificat Azure Key Vault sur lequel l’erreur est exécutée.
version Version du certificat à mettre à jour. La version la plus récente est mise à jour si vous n’avez rien spécifié.
enabled Booléenne. Valeur indiquant si la nouvelle version du certificat est activée.
validityInMonths Période de validité du certificat en mois.
certificateTransparency Indique si le certificat doit être publié dans la liste de transparence des certificats lors de sa création.
certificateType Type de certificat.
contentType Type de contenu du certificat. Par exemple, il s'agit de Pkcs12 lorsque le certificat contient des octets PFX bruts ou de Pem lorsqu'il contient des octets ASCII codés en PEM. Pkcs12 est la valeur par défaut supposée.
keySize Taille de la clé RSA : 2048, 3072 ou 4096.
exportable Booléenne. Valeur indiquant si la clé de certificat est exportable depuis l'espace de stockage ou le magasin de certificats sécurisé.
reuseKey Booléenne. Valeur indiquant si la clé du certificat doit être réutilisée lors de la rotation du certificat.
keyType Type de clé de secours générée lors de l'émission de nouveaux certificats, par exemple RSA ou EC.

Exemple de code JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "continuous",
      "name": "urn:csci:microsoft:keyvault:updateCertificatePolicy/1.0",
      "parameters": [
        {
            "key": "certificateName",
            "value": "<name of AKV certificate>"
        },
        {
            "key": "version",
            "value": "<certificate version>"
        },
        {
            "key": "enabled",
            "value": "True"
        },
        {
            "key": "validityInMonths",
            "value": "12"
        },
        {
            "key": "certificateTransparency",
            "value": "True"
        },
        {
            "key": "certificateType",
            "value": "<certificate type>"
        },
        {
            "key": "contentType",
            "value": "Pem"
        },
        {
            "key": "keySize",
            "value": "4096"
        },
                {
            "key": "exportable",
            "value": "True"
        },
        {
            "key": "reuseKey",
            "value": "False"
        },
        {
            "key": "keyType",
            "value": "RSA"
        }

     ],
      "duration": "PT10M",
      "selectorid": "myResources"
    }
  ]
}

Règle de sécurité NSG

Propriété Valeur
Nom de fonctionnalité SecurityRule-1.0
Type cible Microsoft-NetworkSecurityGroup
Description Permet la manipulation ou la création de règles dans un groupe de sécurité réseau (NSG) Azure existant ou un ensemble de NSG Azure, en supposant que la définition de règle soit applicable à tous les groupes de sécurité. Utile pour :
  • Simulation d’une panne d’une dépendance ou d’une non-dépendance en aval ou interrégionale.
  • Simulation d’un événement censé déclencher une logique pour forcer le basculement d’un service.
  • Simulation d’un événement censé déclencher une action de la part d’un service de surveillance ou de gestion des états.
  • Utilisation comme alternative pour bloquer ou autoriser le trafic réseau lorsque Chaos Agent ne peut pas être déployé.
Prérequis Aucune.
Urn urn:csci:microsoft:networkSecurityGroup:securityRule/1.0
Paramètres (clé, valeur)
name Nom unique pour la règle de sécurité qui est créée. L’erreur échoue si une autre règle existe déjà sur le groupe de sécurité réseau portant le même nom. Doit commencer par une lettre ou un chiffre. Doit se terminer par une lettre, un chiffre ou un trait de soulignement. Peut contenir uniquement des lettres, des chiffres, des traits d’union, des traits de soulignement et des points.
protocol Protocole pour la règle de sécurité. Doit être Any, TCP, UDP ou ICMP.
sourceAddresses Chaîne qui représente un tableau délimité JSON d’adresses IP au format CIDR. Peut également être un nom d’étiquette de service pour une règle de trafic entrant, par exemple AppService. Vous pouvez également utiliser un astérisque * pour établir une correspondance avec toutes les adresses IP sources.
destinationAddresses Chaîne qui représente un tableau délimité JSON d’adresses IP au format CIDR. Peut également être un nom d’étiquette de service pour une règle de trafic sortant, par exemple AppService. Vous pouvez également utiliser un astérisque * pour établir une correspondance avec toutes les adresses IP de destination.
action Type d’accès au groupe de sécurité. Doit être Autoriser ou Refuser.
destinationPortRanges Chaîne qui représente un tableau délimité JSON de ports uniques et/ou de plages de ports, par exemple, 80 ou 1024-65535.
sourcePortRanges Chaîne qui représente un tableau délimité JSON de ports uniques et/ou de plages de ports, par exemple, 80 ou 1024-65535.
priority Entrez une valeur comprise entre 100 et 4096 qui est unique pour toutes les règles de sécurité au sein du NSG. L’erreur échoue si une autre règle existe déjà sur le groupe de sécurité réseau portant la même priorité.
direction Direction du trafic affectée par la règle de sécurité. Il doit s’agir d’un trafic entrant ou sortant.

Exemple de code JSON

{ 
  "name": "branchOne", 
  "actions": [ 
    { 
      "type": "continuous", 
      "name": "urn:csci:microsoft:networkSecurityGroup:securityRule/1.0", 
      "parameters": [ 
          { 
              "key": "name", 
              "value": "Block_SingleHost_to_Networks" 

          }, 
          { 
              "key": "protocol", 
              "value": "Any" 
          }, 
          { 
              "key": "sourceAddresses", 
              "value": "[\"10.1.1.128/32\"]"
          }, 
          { 
              "key": "destinationAddresses", 
              "value": "[\"10.20.0.0/16\",\"10.30.0.0/16\"]"
          }, 
          { 
              "key": "access", 
              "value": "Deny" 
          }, 
          { 
              "key": "destinationPortRanges", 
              "value": "[\"80-8080\"]"
          }, 
          { 
              "key": "sourcePortRanges", 
              "value": "[\"*\"]"
          }, 
          { 
              "key": "priority", 
              "value": "100" 
          }, 
          { 
              "key": "direction", 
              "value": "Outbound" 
          } 
      ], 
      "duration": "PT10M", 
      "selectorid": "myResources" 
    } 
  ] 
} 

Limites

  • L’erreur ne peut être appliquée qu’à un NSG.
  • Quand une règle NSG destinée à refuser le trafic est appliquée, les connexions existantes ne sont pas interrompues tant qu’elles n’ont pas été inactives pendant 4 minutes. Une solution de contournement consiste à ajouter une autre branche dans la même étape, qui utilise une erreur qui provoquerait l’arrêt des connexions existantes lors de l’application de l’erreur de groupe de sécurité réseau. Par exemple, l’arrêt du processus, l’arrêt temporaire du service ou le redémarrage de la machine virtuelle entraînent la réinitialisation des connexions.
  • Les règles sont appliquées au début de l’action. Toute modification externe de la règle pendant la durée de l’action entraîne l’échec de l’expérience.
  • La création ou la modification de règles de groupe de sécurité d’application n’est pas prise en charge.
  • Les valeurs de priorité doivent être uniques sur chaque groupe de sécurité réseau ciblé. Toute tentative de création d’une nouvelle règle ayant la même valeur de priorité entraîne l’échec de l’expérience.

Service Bus : modification de l’état de la file d’attente

Propriété Valeur
Nom de fonctionnalité ChangeQueueState-1.0
Type cible Microsoft-ServiceBus
Description Définit les entités de la file d'attente au sein d'un espace de noms de Service Bus dans l'état souhaité. Vous pouvez affecter des noms d'entités spécifiques ou utiliser « * » pour les affecter tous. Cette action permet de tester l’infrastructure de messagerie pour des scénarios de maintenance ou de défaillance. Il s'agit d'une erreur discrète, de sorte que l'entité ne reviendra pas automatiquement à l'état initial.
Prérequis Espace de noms Service Bus avec au moins une entité file d’attente.
Urn urn:csci:microsoft:serviceBus:changeQueueState/1.0
Type d’erreur Discrète.
Paramètres (clé, valeur)
desiredState L’état souhaité pour les files d’attente ciblées. Les états possibles sont Active, Disabled, SendDisabled et ReceiveDisabled.
queues Une liste séparée par des virgules des noms de file d'attente dans l'espace de noms ciblé. Utilisez « * » pour affecter toutes les files d'attente de l'espace de noms.

Exemple de code JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "discrete",
      "name": "urn:csci:microsoft:serviceBus:changeQueueState/1.0",
      "parameters":[
          {
            "key": "desiredState",
            "value": "Disabled"
          },
          {
            "key": "queues",
            "value": "samplequeue1,samplequeue2"
          }
      ],
      "selectorid": "myServiceBusSelector"
    }
  ]
}

Limites

  • Un maximum de 1 000 entités de file d'attente peut être transmis à ce défaut.

Service Bus : modification de l’état de l’abonnement

Propriété Valeur
Nom de fonctionnalité ChangeSubscriptionState-1.0
Type cible Microsoft-ServiceBus
Description Définit les entités de l’abonnement au sein d'un espace de noms de Service Bus et Rubrique dans l'état souhaité. Vous pouvez affecter des noms d'entités spécifiques ou utiliser « * » pour les affecter tous. Cette action permet de tester l’infrastructure de messagerie pour des scénarios de maintenance ou de défaillance. Il s'agit d'une erreur discrète, de sorte que l'entité ne reviendra pas automatiquement à l'état initial.
Prérequis Espace de noms Service Bus avec au moins une entité abonnement.
Urn urn:csci:microsoft:serviceBus:changeSubscriptionState/1.0
Type d’erreur Discrète.
Paramètres (clé, valeur)
desiredState L’état souhaité pour les abonnements ciblés. Les états possibles sont Actif et Désactivé.
topic Rubrique parente contenant un ou plusieurs abonnements à affecter.
subscriptions Une liste séparée par des virgules des noms d’abonnement dans l'espace de noms ciblé. Utilisez « * » pour affecter tous les abonnements de l'espace de noms.

Exemple de code JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "discrete",
      "name": "urn:csci:microsoft:serviceBus:changeSubscriptionState/1.0",
      "parameters":[
          {
            "key": "desiredState",
            "value": "Disabled"
          },
          {
            "key": "topic",
            "value": "topic01"
          },
          {
            "key": "subscriptions",
            "value": "*"
          }
      ],
      "selectorid": "myServiceBusSelector"
    }
  ]
}

Limites

  • Un maximum de 1 000 entités d’abonnements peut être transmis à ce défaut.

Service Bus : modification de l’état de la rubrique

Propriété Valeur
Nom de fonctionnalité ChangeTopicState-1.0
Type cible Microsoft-ServiceBus
Description Définit les entités de la rubrique spécifiées au sein d'un espace de noms de Service Bus dans l'état souhaité. Vous pouvez affecter des noms d'entités spécifiques ou utiliser « * » pour les affecter tous. Cette action permet de tester l’infrastructure de messagerie pour des scénarios de maintenance ou de défaillance. Il s'agit d'une erreur discrète, de sorte que l'entité ne reviendra pas automatiquement à l'état initial.
Prérequis Espace de noms Service Bus avec au moins une entité rubrique.
Urn urn:csci:microsoft:serviceBus:changeTopicState/1.0
Type d’erreur Discrète.
Paramètres (clé, valeur)
desiredState L’état souhaité pour les rubriques ciblées. Les états possibles sont Actif et Désactivé.
topics Une liste séparée par des virgules des noms de rubriques dans l'espace de noms ciblé. Utilisez « * » pour affecter toutes les rubriques de l'espace de noms.

Exemple de code JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "discrete",
      "name": "urn:csci:microsoft:serviceBus:changeTopicState/1.0",
      "parameters":[
          {
            "key": "desiredState",
            "value": "Disabled"
          },
          {
            "key": "topics",
            "value": "*"
          }
      ],
      "selectorid": "myServiceBusSelector"
    }
  ]
}

Limites

  • Un maximum de 1 000 entités de rubrique peut être transmis à ce défaut.

Redéploiement de la machine virtuelle

Propriété Valeur
Nom de fonctionnalité Redeploy-1.0
Type cible Microsoft-VirtualMachine
Description Redéploie une machine virtuelle en l'arrêtant, en la déplaçant vers un nouveau nœud de l'infrastructure Azure et en la remettant sous tension. Cela permet de valider la résistance de votre charge de travail aux événements de maintenance.
Prérequis Aucune.
Urn urn:csci:microsoft:virtualMachine:redeploy/1.0
Type d’erreur Discrète.
Paramètres (clé, valeur) Aucune.

Exemple de code JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "discrete",
      "name": "urn:csci:microsoft:virtualMachine:redeploy/1.0",
      "parameters":[],
      "selectorid": "myResources"
    }
  ]
}

Limites

  • L’opération de redéploiement de la machine virtuelle est limitée à un intervalle de 10 heures. Si votre expérience échoue avec l’erreur « Trop de demandes de redéploiement », attendez 10 heures avant de retenter l’expérience.

Arrêt de la machine virtuelle

Propriété Valeur
Nom de fonctionnalité Shutdown-1.0
Type cible Microsoft-VirtualMachine
Types de systèmes d’exploitation pris en charge Windows, Linux.
Description Arrête une machine virtuelle pour la durée de l’erreur. La redémarre à la fin de l’expérience ou si l’expérience est annulée. Seules les ressources Azure Resource Manager sont prises en charge.
Prérequis Aucune.
Urn urn:csci:microsoft:virtualMachine:shutdown/1.0
Paramètres (clé, valeur)
abruptShutdown (Facultatif) Booléen qui indique si la machine virtuelle doit être arrêtée de manière normale ou brutale (destructive).

Exemple de code JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "continuous",
      "name": "urn:csci:microsoft:virtualMachine:shutdown/1.0",
      "parameters": [
        {
          "key": "abruptShutdown",
          "value": "false"
        }
      ],
      "duration": "PT10M",
      "selectorid": "myResources"
    }
  ]
}

Arrêt VMSS

Cette erreur a deux versions disponibles que vous pouvez utiliser, version 1.0 et version 2.0. La principale différence est que la version 2.0 vous permet de filtrer par zones de disponibilité, en n'arrêtant que les instances situées dans une ou plusieurs zones spécifiées.

Arrêt VMSS version 1.0

Propriété Valeur
Nom de fonctionnalité Version 1.0
Type cible Microsoft-VirtualMachineScaleSet
Types de systèmes d’exploitation pris en charge Windows, Linux.
Description Arrête ou supprime une instance de groupe de machines virtuelles identiques durant l’erreur et redémarre la machine virtuelle à la fin de l’erreur ou en cas d’annulation de l’expérience.
Prérequis Aucune.
Urn urn:csci:microsoft:virtualMachineScaleSet:shutdown/1.0
Paramètres (clé, valeur)
abruptShutdown (Facultatif) Valeur booléenne qui indique si l’instance de groupe de machines virtuelles identiques doit être arrêtée de manière normale ou brutale (destructive).
instances Chaîne qui est un tableau délimité d’identifiants d’instances de groupe de machines virtuelles identiques auxquelles l’erreur est appliquée.
Exemple JSON version 1.0
{
  "name": "branchOne",
  "actions": [
    {
      "type": "continuous",
      "name": "urn:csci:microsoft:virtualMachineScaleSet:shutdown/1.0",
      "parameters": [
        {
          "key": "abruptShutdown",
          "value": "true"
        },
        {
          "key": "instances",
          "value": "[\"1\",\"3\"]"
        }
      ],
      "duration": "PT10M",
      "selectorid": "myResources"
    }
  ]
}

Arrêt VMSS version 2.0

Propriété Valeur
Nom de fonctionnalité Shutdown-2.0
Type cible Microsoft-VirtualMachineScaleSet
Types de systèmes d’exploitation pris en charge Windows, Linux.
Description Arrête ou tue une instance de groupe de machines virtuelles identiques pendant l’erreur. Redémarre la machine virtuelle à la fin de la durée de l’erreur ou si l’expérience est annulée. Prend en charge le ciblage dynamique.
Prérequis Aucune.
Urn urn:csci:microsoft:virtualMachineScaleSet:shutdown/2.0
filter (Facultatif) Disponible à partir de la version 2.0. Permet de filtrer la liste des cibles dans un sélecteur. Permet actuellement de filtrer une liste de zones. Le filtre n’est appliqué qu’aux ressources du groupe de machines virtuelles identiques dans une zone :
  • Si aucun filtre n’est spécifié, cette erreur arrête toutes les instances du groupe de machines virtuelles identiques.
  • L’expérience cible toutes les instances de groupe de machines virtuelles identiques dans les zones spécifiées.
  • Si un filtre ne génère aucune cible, l’expérience échoue.
Paramètres (clé, valeur)
abruptShutdown (Facultatif) Valeur booléenne qui indique si l’instance de groupe de machines virtuelles identiques doit être arrêtée de manière normale ou brutale (destructive).
Exemples d’extraits de code JSON version 2.0

Les extraits de code suivants montrent comment configurer à la fois le filtrage dynamique et l’erreur d’arrêt 2.0.

Configure un filtre pour le ciblage dynamique :

{
  "type": "List",
  "id": "myResources",
  "targets": [
    {
      "id": "<targetResourceId>",
      "type": "ChaosTarget"
    }
  ],
  "filter": {
    "type": "Simple",
    "parameters": {
      "zones": [
        "1"
      ]
    }
  }
}

Configure l’erreur d’arrêt :

{
  "name": "branchOne",
  "actions": [
    {
      "name": "urn:csci:microsoft:virtualMachineScaleSet:shutdown/2.0",
      "type": "continuous",
      "selectorId": "myResources",
      "duration": "PT10M",
      "parameters": [
        {
          "key": "abruptShutdown",
          "value": "false"
        }
      ]
    }
  ]
}

Limites

Actuellement, seuls les groupes de machines virtuelles identiques configurés avec le mode d’orchestration uniforme sont pris en charge. Si votre groupe de machines virtuelles identiques utilise l’orchestration flexible, vous pouvez utiliser l’erreur d’arrêt de la machine virtuelle Azure Resource Manager pour arrêter les instances sélectionnées.

Détails : actions d’orchestration

Retarder

Propriété Valeur
Fournisseur d’erreur S/O
Types de systèmes d’exploitation pris en charge S/O
Description Ajoute une temporisation avant, entre ou après d’autres actions de l’expérience. Cette action n’est pas une erreur et est utilisée pour synchroniser les actions au sein d’une expérience. Utilisez cette action pour attendre que l’impact d’une erreur apparaisse dans un service, ou pour attendre la fin d’une activité en dehors de l’expérience. Par exemple, votre expérience peut attendre la correction automatique avant d’injecter une autre erreur.
Prérequis S/O
Urn urn:csci:microsoft:chaosStudio:timedDelay/1.0
Durée Durée de la temporisation au format ISO 8601 (par exemple, PT10M).

Exemple de code JSON

{
  "name": "branchOne",
  "actions": [ 
    {
      "type": "delay",
      "name": "urn:csci:microsoft:chaosStudio:timedDelay/1.0",
      "duration": "PT10M"
    }
  ] 
}

Démarrer le test de charge (Test de charge Azure)

Propriété Valeur
Nom de fonctionnalité Start-1.0
Type cible Microsoft-AzureLoadTest
Description Lance un test de charge (à partir du Test de charge Azure) sur la base de l'identifiant de test de charge fourni.
Prérequis Un test de charge avec un identifiant de test de charge valide doit être créé dans le service Test de charge Azure.
Urn urn:csci:microsoft:azureLoadTest:start/1.0
Type d’erreur Discrète.
Paramètres (clé, valeur)
testID L'identifiant d'un test de charge spécifique créé dans le service Test de charge Azure.

Exemple de code JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "discrete",
      "name": "urn:csci:microsoft:azureLoadTest:start/1.0",
      "parameters": [
        {
            "key": "testID",
            "value": "0"
        }
    ],
      "selectorid": "myResources"
    }
  ]
}

Arrêter le test de charge (Test de charge Azure)

Propriété Valeur
Nom de fonctionnalité Stop-1.0
Type cible Microsoft-AzureLoadTest
Description Arrête un test de charge (à partir du Test de charge Azure) sur la base de l'identifiant de test de charge fourni.
Prérequis Un test de charge avec un identifiant de test de charge valide doit être créé dans le service Test de charge Azure.
Urn urn:csci:microsoft:azureLoadTest:stop/1.0
Type d’erreur Discrète.
Paramètres (clé, valeur)
testID L'identifiant d'un test de charge spécifique créé dans le service Test de charge Azure.

Exemple de code JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "discrete",
      "name": "urn:csci:microsoft:azureLoadTest:stop/1.0",
      "parameters": [
        {
            "key": "testID",
            "value": "0"
        }
    ],
      "selectorid": "myResources"
    }
  ]
}