Libreria di azioni e errori di Azure Chaos Studio

Questo articolo elenca gli errori che è possibile usare in Chaos Studio, organizzati in base al tipo di risorsa applicabile. Per comprendere quali assegnazioni di ruolo sono consigliate per ogni tipo di risorsa, vedere Tipi di risorse e assegnazioni di ruolo supportati per Azure Chaos Studio.

Errori basati su agente

Gli errori basati su agente vengono inseriti in macchine virtuali di Azure o istanze del set di scalabilità di macchine virtuali installando Chaos Studio Agent. Trovare le opzioni di errore diretto dal servizio per queste risorse di seguito nelle tabelle Macchina virtuale e Set di scalabilità di macchine virtuali.

Tipi di sistema operativo applicabili Nome errore Scenari applicabili
Windows, Linux Utilizzo elevato della CPU Perdita di capacità di calcolo, utilizzo elevato delle risorse
Windows, Linux Termina processo Interruzione delle dipendenze
Finestre Sospendere il processo Interruzione delle dipendenze, interruzione del servizio
Windows1, Linux2 Disconnessione di rete Interruzione della rete
Windows1, Linux2 Latenza di rete Riduzione del livello delle prestazioni della rete
Windows1, Linux2 Perdita di pacchetti di rete Problemi di affidabilità della rete
Windows, Linux2 Isolamento rete Interruzione della rete
Finestre Errore DNS Problemi di risoluzione DNS
Finestre Disconnessione di rete (tramite firewall) Interruzione della rete
Windows, Linux Utilizzo elevato della memoria fisica Perdita di capacità di memoria, utilizzo elevato delle risorse
Windows, Linux Arrestare il servizio Interruzione/riavvio del servizio
Finestre Modifica ora Errori di sincronizzazione orario
Finestre Utilizzo elevato della memoria virtuale Perdita di capacità di memoria, utilizzo elevato delle risorse
Linux Stress-ng stressor arbitrario Test generali dello stress del sistema
Linux Utilizzo elevato di Linux DiskIO Riduzione del livello delle prestazioni di I/O del disco
Finestre Utilizzo elevato di DiskIO Riduzione del livello delle prestazioni di I/O del disco

1 solo pacchetti TCP/UDP. 2 Solo traffico di rete in uscita.

Servizio app

Questa sezione si applica al tipo di risorsa Microsoft.Web/sites. Altre informazioni sul servizio app.

Nome errore Scenari applicabili
Arrestare il Servizio app Interruzione del servizio

Impostazioni di scalabilità automatica

Questa sezione si applica al tipo di risorsa Microsoft.Insights/autoscaleSettings. Altre informazioni sulle impostazioni di scalabilità automatica.

Nome errore Scenari applicabili
Disabilita scalabilità automatica Perdita di capacità di calcolo (se usata con arresto del set di scalabilità di macchine virtuali)

Servizio Azure Kubernetes

Questa sezione si applica al tipo di risorsa Microsoft.ContainerService/managedClusters. Altre informazioni sul servizio Azure Kubernetes.

Nome errore Scenari applicabili
AKS Chaos Mesh DNS Chaos Problemi di risoluzione DNS
AKS Chaos Mesh HTTP Chaos Interruzione della rete
AKS Chaos Mesh IO Chaos Riduzione delle prestazioni/Utilizzo elevato del disco
AKS Chaos Mesh Kernel Chaos Interruzione del kernel
AKS Chaos Mesh Network Chaos Interruzione della rete
AKS Chaos Mesh Pod Chaos Interruzione del contenitore
AKS Chaos Mesh Stress Chaos Test di stress del sistema
AKS Chaos Mesh Time Chaos Errori di sincronizzazione orario

Servizi cloud (versione classica)

Questa sezione si applica al tipo di risorsa Microsoft.ClassicCompute/domainNames. Altre informazioni su Servizi cloud (Classico).

Nome errore Scenari applicabili
Arresto del servizio cloud Perdita di calcolo

Cache cluster per Redis

Questa sezione si applica al tipo di risorsa Microsoft.Cache/redis. Altre informazioni su Cache di cluster per Redis.

Nome errore Scenari applicabili
Cache di Azure per Redis (riavvio) Interruzione delle dipendenze (cache)

Cosmos DB

Questa sezione si applica al tipo di risorsa Microsoft.DocumentDB/databaseAccounts. Altre informazioni su Cosmos DB.

Nome errore Scenari applicabili
Cosmos DB Failover Failover del database

Hub eventi di

Questa sezione si applica al tipo di risorsa Microsoft.EventHub/namespaces. Altre informazioni su Hub eventi.

Nome errore Scenari applicabili
Modificare lo stato dell'hub eventi Errore di configurazione/interruzione dell'infrastruttura di messaggistica

Key Vault

Questa sezione si applica al tipo di risorsa Microsoft.KeyVault/vaults. Altre informazioni su Key Vault.

Nome errore Scenari applicabili
Key Vault: negare l'accesso Negazione del certificato
Key Vault: disabilitare il certificato Interruzione del certificato
Key Vault: incrementare la versione del certificato Incremento della versione del certificato
Key Vault: aggiornare i criteri dei certificati Modifiche/configurazioni errate dei criteri dei certificati

Gruppi di sicurezza di rete

Questa sezione si applica al tipo di risorsa Microsoft.Network/networkSecurityGroups. Altre informazioni sui gruppi di sicurezza di rete.

Nome errore Scenari applicabili
Regola di sicurezza del gruppo di sicurezza di rete Interruzione della rete (per molti servizi di Azure)

Bus di servizio

Questa sezione si applica al tipo di risorsa Microsoft.ServiceBus/namespaces. Altre informazioni sul Bus di servizio.

Nome errore Scenari applicabili
Modificare lo stato della coda Errore di configurazione/interruzione dell'infrastruttura di messaggistica
Modificare lo stato della sottoscrizione Errore di configurazione/interruzione dell'infrastruttura di messaggistica
Modificare lo stato dell'argomento Errore di configurazione/interruzione dell'infrastruttura di messaggistica

Macchine virtuali (service-direct)

Questa sezione si applica al tipo di risorsa Microsoft.Compute/virtualMachines. Altre informazioni sulle macchine virtuali.

Nome errore Scenari applicabili
Ridistribuire la VM Interruzione del calcolo, eventi di manutenzione
Arresto della VM Perdita/Interruzione del calcolo

Set di scalabilità della macchina virtuale

Questa sezione si applica al tipo di risorsa Microsoft.Compute/virtualMachineScaleSets. Altre informazioni sui set di scalabilità di macchine virtuali.

Nome errore Scenari applicabili
Arresto del set di scalabilità di macchine virtuali Perdita/Interruzione del calcolo
Arresto del set di scalabilità di macchine virtuali (2.0) Perdita/interruzione del calcolo (per zona di disponibilità)

Azioni di orchestrazione

Queste azioni sono blocchi predefiniti per costruire esperimenti efficaci. Usarli in combinazione con altri errori, ad esempio l'esecuzione di un test di carico durante l'arresto parallelo di istanze di calcolo in una zona.

Categoria di azione Nome errore
Load Avviare il test di carico (test di carico di Azure)
Load Arrestare il test di carico (test di carico di Azure)
Ritardo Delay

Dettagli: errori basati su agente

Disconnessione di rete

Proprietà valore
Nome funzionalità NetworkDisconnect-1.1
Tipo di destinazione Microsoft-Agent
Tipi di sistemi operativi supportati Windows, Linux (solo traffico in uscita)
Descrizione Blocca il traffico di rete per l'intervallo di porte e il blocco di rete specificati. È necessario specificare almeno un array destinationFilter o inboundDestinationFilter.
Prerequisiti Windows: l'agente deve essere eseguito come amministratore, operazione che avviene per impostazione predefinita se il suddetto è installato come estensione di VM.
Linux: Il pacchetto tc (Controllo del traffico) viene usato per gli errori di rete. Se non è già installato, l'agente tenta automaticamente di installarlo dal sistema di gestione pacchetti predefinito.
URN urn:csci:microsoft:agent:networkDisconnect/1.1
Tipo di errore Continuo.
Parametri (chiave, valore)
destinationFilters Array JSON delimitato di filtri di pacchetti che definiscono i pacchetti in uscita di destinazione. Massimo di 16.
inboundDestinationFilters Array JSON delimitato di filtri di pacchetti che definiscono i pacchetti in ingresso di destinazione. Massimo di 16.
virtualMachineScaleSetInstances Array di ID istanza quando si applica questo errore a un set di scalabilità di macchine virtuali. Obbligatorio per i set di scalabilità di macchine virtuali in modalità di orchestrazione uniforme. Altre informazioni sugli ID istanza.

I parametri destinationFilters e inboundDestinationFilters usano l'array di filtri di pacchetti seguente.

Proprietà valore
address Indirizzo IP che indica l'inizio dell'intervallo IP.
subnetMask Subnet mask per l'intervallo di indirizzi IP.
portLow (Facoltativo) Numero di porta dell'inizio dell'intervallo di porte.
portHigh (Facoltativo) Numero di porta della fine dell'intervallo di porte.

JSON di esempio

{
  "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"
    }
  ]
}

Limiti

  • Al momento gli errori di rete basati su agente supportano solo gli indirizzi IPv4.
  • L'errore di disconnessione di rete influisce solo sulle nuove connessioni. Le connessioni attive esistenti continuano a essere persistenti. È possibile riavviare il servizio o il processo per forzare l'interruzione delle connessioni.
  • Quando è in esecuzione in Windows, l'errore di disconnessione di rete funziona attualmente solo con i pacchetti TCP o UDP.
  • Durante l'esecuzione in Linux, questo errore può influire solo sul traffico in uscita, non su quello in ingresso. L'errore può influire sul traffico in ingresso e in uscita negli ambienti Windows (tramite i parametri inboundDestinationFilters e destinationFilters).

Disconnessione di rete (tramite firewall)

Proprietà valore
Nome funzionalità NetworkDisconnectViaFirewall-1.0
Tipo di destinazione Microsoft-Agent
Tipi di sistemi operativi supportati Finestre
Descrizione Applica una regola di Windows Firewall per bloccare il traffico in uscita per l'intervallo di porte e il blocco di rete specificati.
Prerequisiti L'agente deve essere eseguito come amministratore. Se l'agente è installato come estensione di VM, viene eseguito come amministratore per impostazione predefinita.
URN urn:csci:microsoft:agent:networkDisconnectViaFirewall/1.0
Tipo di errore Continuo.
Parametri (chiave, valore)
destinationFilters Array JSON delimitato di filtri di pacchetti che definiscono quali pacchetti in uscita devono essere destinati all'inserimento di errori.
address Indirizzo IP che indica l'inizio dell'intervallo IP.
subnetMask Subnet mask per l'intervallo di indirizzi IP.
portLow (Facoltativo) Numero di porta dell'inizio dell'intervallo di porte.
portHigh (Facoltativo) Numero di porta della fine dell'intervallo di porte.
virtualMachineScaleSetInstances Array di ID istanza quando si applica questo errore a un set di scalabilità di macchine virtuali. Obbligatorio per i set di scalabilità di macchine virtuali in modalità di orchestrazione uniforme. Altre informazioni sugli ID istanza.

JSON di esempio

{
  "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"
    }
  ]
}

Limiti

  • Al momento gli errori di rete basati su agente supportano solo gli indirizzi IPv4.
  • Al momento questo errore influisce solo sulle nuove connessioni. Le connessioni attive esistenti non sono interessate. È possibile riavviare il servizio o il processo per forzare l'interruzione delle connessioni.

Latenza di rete

Proprietà valore
Nome funzionalità NetworkLatency-1.1
Tipo di destinazione Microsoft-Agent
Tipi di sistemi operativi supportati Windows, Linux (solo traffico in uscita)
Descrizione Aumenta la latenza di rete per un intervallo di porte e un blocco di rete specificati. È necessario specificare almeno un array destinationFilter o inboundDestinationFilter.
Prerequisiti Windows: l'agente deve essere eseguito come amministratore, operazione che avviene per impostazione predefinita se il suddetto è installato come estensione di VM.
Linux: Il pacchetto tc (Controllo del traffico) viene usato per gli errori di rete. Se non è già installato, l'agente tenta automaticamente di installarlo dal sistema di gestione pacchetti predefinito.
URN urn:csci:microsoft:agent:networkLatency/1.1
Tipo di errore Continuo.
Parametri (chiave, valore)
latencyInMilliseconds Quantità di latenza da applicare in millisecondi.
destinationFilters Array JSON delimitato di filtri di pacchetti che definiscono i pacchetti in uscita di destinazione. Massimo di 16.
inboundDestinationFilters Array JSON delimitato di filtri di pacchetti che definiscono i pacchetti in ingresso di destinazione. Massimo di 16.
virtualMachineScaleSetInstances Array di ID istanza quando si applica questo errore a un set di scalabilità di macchine virtuali. Obbligatorio per i set di scalabilità di macchine virtuali in modalità di orchestrazione uniforme. Altre informazioni sugli ID istanza.

I parametri destinationFilters e inboundDestinationFilters usano l'array di filtri di pacchetti seguente.

Proprietà valore
address Indirizzo IP che indica l'inizio dell'intervallo IP.
subnetMask Subnet mask per l'intervallo di indirizzi IP.
portLow (Facoltativo) Numero di porta dell'inizio dell'intervallo di porte.
portHigh (Facoltativo) Numero di porta della fine dell'intervallo di porte.

JSON di esempio

{
  "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"
    }
  ]
}

Limiti

  • Al momento gli errori di rete basati su agente supportano solo gli indirizzi IPv4.
  • Durante l'esecuzione in Linux, la latenza di rete può influire solo sul traffico in uscita, non su quello in ingresso. L'errore può influire sul traffico in ingresso e in uscita negli ambienti Windows (tramite i parametri inboundDestinationFilters e destinationFilters).
  • In caso di esecuzione in Windows, l'errore di latenza di rete funziona attualmente solo con pacchetti TCP o UDP.
  • Al momento questo errore influisce solo sulle nuove connessioni. Le connessioni attive esistenti non sono interessate. È possibile riavviare il servizio o il processo per forzare l'interruzione delle connessioni.

Perdita di pacchetti di rete

Proprietà valore
Nome funzionalità NetworkPacketLoss-1.0
Tipo di destinazione Microsoft-Agent
Tipi di sistemi operativi supportati Windows, Linux (solo traffico in uscita)
Descrizione Introduce la perdita di pacchetti per il traffico in uscita a una velocità specificata, compresa tra 0,0 (nessun pacchetto perso) e 1,0 (tutti i pacchetti persi). Questa azione consente di simulare scenari come la congestione della rete o i problemi hardware di rete.
Prerequisiti Windows: l'agente deve essere eseguito come amministratore, operazione che avviene per impostazione predefinita se il suddetto è installato come estensione di VM.
Linux: Il pacchetto tc (Controllo del traffico) viene usato per gli errori di rete. Se non è già installato, l'agente tenta automaticamente di installarlo dal sistema di gestione pacchetti predefinito.
URN urn:csci:microsoft:agent:networkPacketLoss/1.0
Tipo di errore Continuo.
Parametri (chiave, valore)
packetLossRate Frequenza con cui i pacchetti corrispondenti ai filtri di destinazione andranno persi, compresi tra 0,0 e 1,0.
virtualMachineScaleSetInstances Array di ID istanza quando si applica questo errore a un set di scalabilità di macchine virtuali. Obbligatorio per i set di scalabilità di macchine virtuali in modalità di orchestrazione uniforme. Altre informazioni sugli ID istanza.
destinationFilters Array JSON delimitato di filtri di pacchetti (parametri seguenti) che definiscono quali pacchetti in uscita devono essere destinati all'inserimento di errori. Massimo tre.
address Indirizzo IP che indica l'inizio dell'intervallo IP.
subnetMask Subnet mask per l'intervallo di indirizzi IP.
portLow (Facoltativo) Numero di porta dell'inizio dell'intervallo di porte.
portHigh (Facoltativo) Numero di porta della fine dell'intervallo di porte.

JSON di esempio

{
  "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"
    }
  ]
}

Limiti

  • Al momento gli errori di rete basati su agente supportano solo gli indirizzi IPv4.
  • Durante l'esecuzione in Windows, l'errore di perdita di pacchetti di rete attualmente funziona solo con i pacchetti TCP o UDP.
  • Durante l'esecuzione in Linux, questo errore può influire solo sul traffico in uscita, non su quello in ingresso. L'errore può influire sul traffico in ingresso e in uscita negli ambienti Windows (tramite i parametri inboundDestinationFilters e destinationFilters).
  • Al momento questo errore influisce solo sulle nuove connessioni. Le connessioni attive esistenti non sono interessate. È possibile riavviare il servizio o il processo per forzare l'interruzione delle connessioni.

Isolamento della rete

Proprietà valore
Nome funzionalità NetworkIsolation-1.0
Tipo di destinazione Microsoft-Agent
Tipi di sistemi operativi supportati Windows, Linux (solo in uscita)
Descrizione Isolare completamente la macchina virtuale dalle connessioni di rete eliminando tutti i pacchetti basati su IP in ingresso (in Windows) e in uscita (in Windows e Linux) per la durata specificata. Al termine della durata, le connessioni di rete verranno riabilitate. Poiché l'agente dipende dal traffico di rete, questa azione non può essere annullata e verrà eseguita fino alla durata specificata.
Prerequisiti Windows: l'agente deve essere eseguito come amministratore, operazione che avviene per impostazione predefinita se il suddetto è installato come estensione di VM.
Linux: Il pacchetto tc (Controllo del traffico) viene usato per gli errori di rete. Se non è già installato, l'agente tenta automaticamente di installarlo dal sistema di gestione pacchetti predefinito.
URN urn:csci:microsoft:agent:networkIsolation/1.0
Tipo di errore Continuo.
Parametri (chiave, valore)
virtualMachineScaleSetInstances Array di ID istanza quando si applica questo errore a un set di scalabilità di macchine virtuali. Obbligatorio per i set di scalabilità di macchine virtuali in modalità di orchestrazione uniforme, altrimenti facoltativo. Altre informazioni sugli ID istanza.

JSON di esempio

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

Limiti

  • Poiché l'agente dipende dal traffico di rete, questa azione non può essere annullata e verrà eseguita fino alla durata specificata. Usare con cautela.
  • Al momento questo errore influisce solo sulle nuove connessioni. Le connessioni attive esistenti non sono interessate. È possibile riavviare il servizio o il processo per forzare l'interruzione delle connessioni.
  • Durante l'esecuzione in Linux, questo errore può influire solo sul traffico in uscita, non su quello in ingresso. L'errore può influire sul traffico in ingresso e in uscita negli ambienti Windows.

Errore DNS

Proprietà valore
Nome funzionalità DnsFailure-1.0
Tipo di destinazione Microsoft-Agent
Tipi di sistemi operativi supportati Finestre
Descrizione Sostituisce le risposte delle richieste di ricerca DNS con un codice di errore specificato. Le richieste di ricerca DNS sostituite devono:
  • Origine dalla VM.
  • Trovare la corrispondenza con i parametri di errore definiti.
Le ricerche DNS non eseguite dal client DNS Windows non sono interessate da questo errore.
Prerequisiti Nessuno.
URN urn:csci:microsoft:agent:dnsFailure/1.0
Tipo di errore Continuo.
Parametri (chiave, valore)
hosts Array JSON delimitato di nomi host per cui non è possibile eseguire la ricerca DNS.

Questa proprietà accetta caratteri jolly (*), ma solo per il primo sottodominio in un indirizzo e si applica solo al sottodominio per cui sono specificati. Ad esempio:
  • *.microsoft.com è supportato.
  • subdomain.*.microsoft non è supportato.
  • *.microsoft.com non funziona per più sottodomini in un indirizzo, ad esempio subdomain1.subdomain2.microsoft.com.
dnsFailureReturnCode Codice di errore DNS da restituire al client per l'errore di ricerca (FormErr, ServFail, NXDomain, NotImp, Refused, XDomain, YXRRSet, NXRRSet, NotAuth, NotZone). Per altre informazioni sui codici restituiti DNS, vedere il sito Web IANA.
virtualMachineScaleSetInstances Array di ID istanza quando si applica questo errore a un set di scalabilità di macchine virtuali. Obbligatorio per i set di scalabilità di macchine virtuali in modalità di orchestrazione uniforme. Altre informazioni sugli ID istanza.

JSON di esempio

{
  "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"
    }
  ]
}

Limiti

  • L'errore DNS Failure richiede Windows 2019 RS5 o versione successiva.
  • La cache DNS viene ignorata durante la durata dell'errore per i nomi host definiti nell'errore.

Utilizzo elevato della CPU

Proprietà valore
Nome funzionalità CPUPressure-1.0
Tipo di destinazione Microsoft-Agent
Tipi di sistemi operativi supportati Windows, Linux
Descrizione Aggiunge un utilizzo elevato della CPU, fino al valore specificato, nella VM in cui questo errore viene inserito durante l'azione di errore. L'utilizzo elevato della CPU artificiale viene rimosso alla fine della durata o se l'esperimento viene annullato. In Windows, il contatore delle prestazioni % Processor Utility viene utilizzato all'avvio dell'errore per determinare la percentuale di CPU corrente, che viene sottratta dall'oggetto pressureLevel definito nell'errore in modo che % Processor Utility riscontri approssimativamente l'oggetto pressureLevel definito nei parametri di errore.
Prerequisiti Linux: è necessario installare l'utilità stress-ng. L'installazione viene eseguita automaticamente come parte dell'installazione dell'agente, utilizzando il sistema di gestione pacchetti predefinito, in diversi sistemi operativi, tra cui quelli basati su Debian (ad esempio Ubuntu), Red Hat Enterprise Linux e OpenSUSE. Per altre distribuzioni, incluso Azure Linux, è necessario installare stress-ng manualmente. Per altre informazioni, vedere il repository di progetti upstream.
Windows: Nessuno.
URN urn:csci:microsoft:agent:cpuPressure/1.0
Tipo di errore Continuo.
Parametri (chiave, valore)
pressureLevel Numero intero compreso tra 1 e 95 che indica la quantità di utilizzo della CPU (%) applicata alla macchina virtuale in termini di % utilizzo CPU
virtualMachineScaleSetInstances Array di ID istanza quando si applica questo errore a un set di scalabilità di macchine virtuali. Obbligatorio per i set di scalabilità di macchine virtuali in modalità di orchestrazione uniforme. Altre informazioni sugli ID istanza.

JSON di esempio

{
  "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"
    }
  ]
}

Limiti

Problemi noti in Linux:

  • L'effetto di stress potrebbe non essere terminato correttamente se AzureChaosAgent viene terminato in modo imprevisto.

Utilizzo elevato della memoria fisica

Proprietà valore
Nome funzionalità PhysicalMemoryPressure-1.0
Tipo di destinazione Microsoft-Agent
Tipi di sistemi operativi supportati Windows, Linux
Descrizione Aggiunge un utilizzo elevato della memoria fisica, fino al valore specificato, nella VM in cui questo errore viene inserito durante l'azione di errore. L'utilizzo elevato della memoria fisica artificiale viene rimosso alla fine della durata o se l'esperimento viene annullato.
Prerequisiti Linux: è necessario installare l'utilità stress-ng. L'installazione viene eseguita automaticamente come parte dell'installazione dell'agente, utilizzando il sistema di gestione pacchetti predefinito, in diversi sistemi operativi, tra cui quelli basati su Debian (ad esempio Ubuntu), Red Hat Enterprise Linux e OpenSUSE. Per altre distribuzioni, incluso Azure Linux, è necessario installare stress-ng manualmente. Per altre informazioni, vedere il repository di progetti upstream.
Windows: Nessuno.
URN urn:csci:microsoft:agent:physicalMemoryPressure/1.0
Tipo di errore Continuo.
Parametri (chiave, valore)
pressureLevel Intero compreso tra 1 e 95 che indica la quantità di utilizzo della memoria fisica (%) applicata alla macchina virtuale.
virtualMachineScaleSetInstances Array di ID istanza quando si applica questo errore a un set di scalabilità di macchine virtuali. Obbligatorio per i set di scalabilità di macchine virtuali in modalità di orchestrazione uniforme. Altre informazioni sugli ID istanza.

JSON di esempio

{
  "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"
    }
  ]
}

Limiti

Attualmente, l'agente Windows non riduce l'utilizzo elevato di memoria quando altre applicazioni aumentano l'utilizzo della memoria. Se l'utilizzo complessivo della memoria supera il 100%, l'agente di Windows potrebbe arrestarsi in modo anomalo.

Utilizzo elevato della memoria virtuale

Proprietà valore
Nome funzionalità VirtualMemoryPressure-1.0
Tipo di destinazione Microsoft-Agent
Tipi di sistemi operativi supportati Finestre
Descrizione Aggiunge un utilizzo elevato della memoria virtuale, fino al valore specificato, nella VM in cui questo errore viene inserito durante l'azione di errore. L'utilizzo elevato della memoria virtuale artificiale viene rimosso alla fine della durata o se l'esperimento viene annullato.
Prerequisiti Nessuno.
URN urn:csci:microsoft:agent:virtualMemoryPressure/1.0
Tipo di errore Continuo.
Parametri (chiave, valore)
pressureLevel Intero compreso tra 1 e 95 che indica la quantità di utilizzo della memoria fisica (%) applicata alla macchina virtuale.
virtualMachineScaleSetInstances Array di ID istanza quando si applica questo errore a un set di scalabilità di macchine virtuali. Obbligatorio per i set di scalabilità di macchine virtuali in modalità di orchestrazione uniforme. Altre informazioni sugli ID istanza.

JSON di esempio

{
  "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"
    }
  ]
}

Utilizzo elevato di IO su disco

Proprietà valore
Nome funzionalità DiskIOPressure-1.1
Tipo di destinazione Microsoft-Agent
Tipi di sistemi operativi supportati Finestre
Descrizione Usa l'utilità diskspd per aggiungere utilizzo elevato di disco a una macchina virtuale. La pressione viene aggiunta al disco primario per impostazione predefinita o al disco specificato con il parametro targetTempDirectory. Questo errore ha cinque differenti modalità di esecuzione. L'utilizzo elevato del disco artificiale viene rimosso alla fine della durata o se l'esperimento viene annullato.
Prerequisiti Nessuno.
URN urn:csci:microsoft:agent:diskIOPressure/1.1
Tipo di errore Continuo.
Parametri (chiave, valore)
pressureMode Modalità predefinita di utilizzo elevato del disco da aggiungere alla risorsa di archiviazione primaria della VM. Deve essere uno dei valori PressureModes indicati nella tabella seguente.
targetTempDirectory (Facoltativo) Directory da usare per l'applicazione dell'utilizzo elevato del disco. Ad esempio: D:/Temp. Se il parametro non è incluso, l'utilizzo elevato viene aggiunto al disco primario.
virtualMachineScaleSetInstances Array di ID istanza quando si applica questo errore a un set di scalabilità di macchine virtuali. Obbligatorio per i set di scalabilità di macchine virtuali in modalità di orchestrazione uniforme. Altre informazioni sugli ID istanza.

Modalità di utilizzo elevato

PressureMode Descrizione
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
Predefiniti numberOfThreads = 2
randomBlockSizeInKB = 64
randomSeed = 10
numberOfIOperThread = 2
sizeOfBlocksInKB = 64
sizeOfWriteBufferInKB = 64
fileSizeInGB = 1
percentOfWriteActions = 50

JSON di esempio

{
  "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"
    }
  ]
}

Utilizzo elevato di IO su disco Linux

Proprietà valore
Nome funzionalità LinuxDiskIOPressure-1.1
Tipo di destinazione Microsoft-Agent
Tipi di sistemi operativi supportati Linux
Descrizione Usa stress-ng per applicare utilizzo elevato al disco. Vengono generati uno o più processi di lavoro che eseguono processi di I/O con file temporanei. La pressione viene aggiunta al disco primario per impostazione predefinita o al disco specificato con il parametro targetTempDirectory. Per informazioni su come viene applicata la pressione, vedere l'articolo stress-ng.
Prerequisiti Linux: è necessario installare l'utilità stress-ng. L'installazione viene eseguita automaticamente come parte dell'installazione dell'agente, utilizzando il sistema di gestione pacchetti predefinito, in diversi sistemi operativi, tra cui quelli basati su Debian (ad esempio Ubuntu), Red Hat Enterprise Linux e OpenSUSE. Per altre distribuzioni, incluso Azure Linux, è necessario installare stress-ng manualmente. Per altre informazioni, vedere il repository di progetti upstream.
URN urn:csci:microsoft:agent:linuxDiskIOPressure/1.1
Tipo di errore Continuo.
Parametri (chiave, valore)
workerCount Numero di processi del ruolo di lavoro da eseguire. L'impostazione su workerCount 0 genera il maggior numero di processi di lavoro disponibili per il numero di processori.
fileSizePerWorker Dimensioni del file temporaneo su cui un ruolo di lavoro esegue operazioni di I/O. Numero intero più unità in byte (b), kilobyte (k), megabyte (m) o gigabyte (g), ad esempio 4m per 4 megabyte e 256g per 256 gigabyte.
blockSize Dimensioni dei blocchi da usare per le operazioni di I/O su disco, maggiori di 1 byte e minori di 4 megabyte (il valore massimo è 4095k). Numero intero più unità in byte, kilobyte o megabyte (ad esempio, 512k per 512 kilobyte).
targetTempDirectory (Facoltativo) Directory da usare per l'applicazione dell'utilizzo elevato del disco. Ad esempio: /tmp/. Se il parametro non è incluso, l'utilizzo elevato viene aggiunto al disco primario.
virtualMachineScaleSetInstances Array di ID istanza quando si applica questo errore a un set di scalabilità di macchine virtuali. Obbligatorio per i set di scalabilità di macchine virtuali in modalità di orchestrazione uniforme. Altre informazioni sugli ID istanza.

JSON di esempio

Questi valori di esempio hanno prodotto circa il 100% di utilizzo elevato del disco quando vengono testati in una macchina virtuale Standard_D2s_v3 con archiviazione con ridondanza locale SSD Premium. Un file SizePerWorker di grandi dimensioni e un blockSize più piccolo contribuiscono a stressare completamente il disco.

{
  "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"
    }
  ]
}

Arresta servizio

Proprietà valore
Nome funzionalità StopService-1.0
Tipo di destinazione Microsoft-Agent
Tipi di sistemi operativi supportati Windows, Linux
Descrizione Arresta un servizio Windows o un servizio di sistema Linux durante l'errore. La riavvia alla fine della durata o se l'esperimento viene annullato.
Prerequisiti Nessuno.
URN urn:csci:microsoft:agent:stopService/1.0
Tipo di errore Continuo.
Parametri (chiave, valore)
serviceName Nome del servizio Windows o del servizio di sistema Linux che si desidera arrestare.
virtualMachineScaleSetInstances Array di ID istanza quando si applica questo errore a un set di scalabilità di macchine virtuali. Obbligatorio per i set di scalabilità di macchine virtuali in modalità di orchestrazione uniforme. Altre informazioni sugli ID istanza.

JSON di esempio

{
  "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"
    }
  ]
}

Limiti

  • Windows: i nomi visualizzati per i servizi non sono supportati. Usare sc.exe query nel prompt dei comandi per esplorare i nomi dei servizi.
  • Linux: altri tipi di servizio oltre a systemd, ad esempio sysvinit, non sono supportati.

Termina processo

Proprietà valore
Nome funzionalità KillProcess-1.0
Tipo di destinazione Microsoft-Agent
Tipi di sistemi operativi supportati Windows, Linux
Descrizione Termina tutte le istanze in esecuzione di un processo che corrisponde al nome del processo inviato nei parametri di errore. Entro la durata impostata per l'azione di errore, un processo viene terminato ripetutamente in base al valore dell'intervallo di terminazione specificato. Questo errore è un errore distruttivo in cui l'amministratore di sistema deve ripristinare manualmente il processo se la riparazione automatica è configurata per essa. Si noti che questo errore si verifica quando viene usato in un processo di nome vuoto, se usato con un intervallo non specificato o quando non è possibile trovare il nome del processo di destinazione che si vuole terminare.
Prerequisiti Nessuno.
URN urn:csci:microsoft:agent:killProcess/1.0
Tipo di errore Continuo.
Parametri (chiave, valore)
processName Nome di un processo per terminare continuamente (senza il .exe). Il processo non deve essere in esecuzione quando l'errore inizia l'esecuzione.
killIntervalInMilliseconds Tempo di attesa dell'errore tra tentativi di terminazione successivi in millisecondi.
virtualMachineScaleSetInstances Array di ID istanza quando si applica questo errore a un set di scalabilità di macchine virtuali. Obbligatorio per i set di scalabilità di macchine virtuali in modalità di orchestrazione uniforme. Altre informazioni sugli ID istanza.

JSON di esempio

{
  "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"
    }
  ]
}

Sospendere il processo

Proprietà valore
Nome funzionalità PauseProcess-1.0
Tipo di destinazione Microsoft-Agent
Tipi di sistemi operativi supportati Finestre
Descrizione Sospende (sospende) i processi specificati per la durata specificata. Se sono presenti più processi con lo stesso nome, questo errore sospende tutti i processi. Entro la durata dell'errore, i processi vengono sospesi ripetitivamente all'intervallo specificato. Alla fine della durata o se l'esperimento viene annullato, i processi riprenderanno.
Prerequisiti Nessuno.
URN urn:csci:microsoft:agent:pauseProcess/1.0
Tipo di errore Continuo.
Parametri (chiave, valore)
processNames Array JSON delimitato di nomi di processo che definiscono i processi da sospendere. Massimo 4. Il nome del processo può facoltativamente includere l'estensione ".exe".
pauseIntervalInMilliseconds Quantità di tempo di attesa dell'errore tra tentativi di sospensione successivi, in millisecondi.
virtualMachineScaleSetInstances Array di ID istanza quando si applica questo errore a un set di scalabilità di macchine virtuali. Obbligatorio per i set di scalabilità di macchine virtuali in modalità di orchestrazione uniforme. Altre informazioni sugli ID istanza.

JSON di esempio

{
  "name": "branchOne",
  "actions": [
    {
      "type": "continuous",
      "name": "urn:csci:microsoft:agent:pauseProcess/1.0",
      "parameters": [
        {
          "key": "processNames",
          "value": "[ \"test-0\", \"test-1.exe\" ]"
        },
        {
          "key": "pauseIntervalInMilliseconds",
          "value": "1000"
        }
      ],
      "duration": "PT10M",
      "selectorid": "myResources"
    }
  ]
}

Limiti

Attualmente, è possibile elencare un massimo di 4 nomi di processo nel parametro processNames.

Modifica ora

Proprietà valore
Nome funzionalità TimeChange-1.0
Tipo di destinazione Microsoft-Agent
Tipi di sistemi operativi supportati Finestre
Descrizione Modifica l'ora di sistema della macchina virtuale e reimposta l'ora alla fine dell'esperimento o se l'esperimento viene annullato.
Prerequisiti Nessuno.
URN urn:csci:microsoft:agent:timeChange/1.0
Tipo di errore Continuo.
Parametri (chiave, valore)
dateTime Stringa DateTime in formato ISO8601. Se mancano valori YYYY-MM-DD, per impostazione predefinita viene impostato il giorno corrente durante l'esecuzione dell'esperimento. Se mancano valori Thh:mm:ss, il valore predefinito è 12:00:00 AM. Se viene specificato un anno a 2 cifre (YY), viene convertito in un anno a 4 cifre (YYYY) in base al secolo corrente. Se manca il fuso orario <Z>, l'offset predefinito è il fuso orario locale. <Z> deve includere sempre un simbolo di segno (negativo o positivo).
virtualMachineScaleSetInstances Array di ID istanza quando si applica questo errore a un set di scalabilità di macchine virtuali. Obbligatorio per i set di scalabilità di macchine virtuali in modalità di orchestrazione uniforme. Altre informazioni sugli ID istanza.

JSON di esempio

{
  "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"
    }
  ]
}

Stressor stress-ng arbitrario

Proprietà valore
Nome funzionalità StressNg-1.0
Tipo di destinazione Microsoft-Agent
Tipi di sistemi operativi supportati Linux
Descrizione Esegue qualsiasi comando stress-ng passando argomenti direttamente a stress-ng. Utile quando uno degli errori predefiniti per stress-ng non soddisfa le proprie esigenze.
Prerequisiti Linux: è necessario installare l'utilità stress-ng. L'installazione viene eseguita automaticamente come parte dell'installazione dell'agente, utilizzando il sistema di gestione pacchetti predefinito, in diversi sistemi operativi, tra cui quelli basati su Debian (ad esempio Ubuntu), Red Hat Enterprise Linux e OpenSUSE. Per altre distribuzioni, incluso Azure Linux, è necessario installare stress-ng manualmente. Per altre informazioni, vedere il repository di progetti upstream.
URN urn:csci:microsoft:agent:stressNg/1.0
Tipo di errore Continuo.
Parametri (chiave, valore)
stressNgArguments Uno o più argomenti da passare al processo di stress-ng. Per informazioni sui possibili argomenti stress-ng, vedere l'articolo stress-ng. NOTA: non includere l'argomento "-t" perché causerà un errore. La lunghezza dell'esperimento viene definita direttamente nell'interfaccia utente dell'esperimento chaos di Azure, NON in stressNgArguments.

JSON di esempio

{
  "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"
    }
  ]
}

Dettagli: errori diretti al servizio

Arrestare il servizio app

Proprietà valore
Nome funzionalità Stop-1.0
Tipo di destinazione Microsoft-AppService
Descrizione Arresta le applicazioni del servizio app di destinazione, quindi le riavvia alla fine della durata dell'errore. Questa azione si applica alle risorse del tipo "Microsoft.Web/sites", tra cui Servizio app, App per le API, App per dispositivi mobili e Funzioni di Azure.
Prerequisiti Nessuno.
URN urn:csci:microsoft:appService:stop/1.0
Tipo di errore Continuo.
Parametri (chiave, valore) Nessuno.

JSON di esempio

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

Disabilita scalabilità automatica

Proprietà valore
Nome funzionalità DisableAutoscale
Tipo di destinazione Microsoft-AutoscaleSettings
Descrizione Disabilita il servizio di scalabilità automatica. Quando la scalabilità automatica è disabilitata, le risorse come set di scalabilità di macchine virtuali, app Web, bus di servizio e altro non vengono aggiunte o rimosse automaticamente in base al carico dell'applicazione.
Prerequisiti È necessario eseguire l'onboarding della risorsa autoScalesetting abilitata nella risorsa in Chaos Studio.
URN urn:csci:microsoft:autoscalesettings:disableAutoscale/1.0
Tipo di errore Continuo.
Parametri (chiave, valore)
enableOnComplete Booleano. Configura se la scalabilità automatica viene riabilitato al termine dell'azione. Il valore predefinito è true.

JSON di esempio

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

AKS Chaos Mesh Network Chaos

Proprietà valore
Nome funzionalità NetworkChaos-2.2
Tipo di destinazione Microsoft-AzureKubernetesServiceChaosMesh
Tipi di sistemi operativi del pool di nodi supportati Linux
Descrizione Causa un errore di rete disponibile tramite Chaos Mesh per l'esecuzione nel cluster del servizio Azure Kubernetes (AKS). Utile per la ricreazione di eventi imprevisti del servizio Azure Kubernetes che derivano da interruzioni di rete, ritardi, duplicazioni, perdita e danneggiamento.
Prerequisiti Il cluster del servizio Azure Kubernetes deve avere Chaos Mesh distribuito.
URN urn:csci:microsoft:azureKubernetesServiceChaosMesh:networkChaos/2.2
Parametri (chiave, valore)
jsonSpec Specifica Chaos Mesh in formato JSON che usa il tipo NetworkChaos. È possibile usare un convertitore YAML-to-JSON come Converti YAML in JSON per convertire Chaos Mesh YAML in JSON e minimizzarlo. Usare virgolette singole all'interno del codice JSON o evitare l'escape delle virgolette con un carattere barra rovesciata. Includere solo YAML nella proprietà jsonSpec. Non includere informazioni come metadati e tipo. La specifica della durata all'interno jsonSpec di non è necessaria, ma viene usata se disponibile.

JSON di esempio

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

AKS Chaos Mesh Pod Chaos

Proprietà valore
Nome funzionalità PodChaos-2.2
Tipo di destinazione Microsoft-AzureKubernetesServiceChaosMesh
Tipi di sistemi operativi del pool di nodi supportati Linux
Descrizione Causa un errore del pod disponibile tramite Chaos Mesh per l'esecuzione nel cluster del servizio Azure Kubernetes. Utile per la ricreazione di eventi imprevisti del servizio Azure Kubernetes causati da errori dei pod o problemi del contenitore.
Prerequisiti Il cluster del servizio Azure Kubernetes deve avere Chaos Mesh distribuito.
URN urn:csci:microsoft:azureKubernetesServiceChaosMesh:podChaos/2.2
Parametri (chiave, valore)
jsonSpec Specifica Chaos Mesh in formato JSON che usa il tipo PodChaos. È possibile usare un convertitore YAML-to-JSON come Converti YAML in JSON per convertire Chaos Mesh YAML in JSON e minimizzarlo. Usare virgolette singole all'interno del codice JSON o evitare l'escape delle virgolette con un carattere barra rovesciata. Includere solo YAML nella proprietà jsonSpec. Non includere informazioni come metadati e tipo. La specifica della durata all'interno jsonSpec di non è necessaria, ma viene usata se disponibile.

JSON di esempio

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

AKS Chaos Mesh Stress Chaos

Proprietà valore
Nome funzionalità StressChaos-2.2
Tipo di destinazione Microsoft-AzureKubernetesServiceChaosMesh
Tipi di sistemi operativi del pool di nodi supportati Linux
Descrizione Causa un errore di stress disponibile tramite Chaos Mesh per l'esecuzione nel cluster del servizio Azure Kubernetes. Utile per la ricreazione di eventi imprevisti del servizio Azure Kubernetes a causa di stress su una raccolta di pod, ad esempio a causa di un utilizzo elevato di CPU o memoria.
Prerequisiti Il cluster del servizio Azure Kubernetes deve avere Chaos Mesh distribuito.
URN urn:csci:microsoft:azureKubernetesServiceChaosMesh:stressChaos/2.2
Parametri (chiave, valore)
jsonSpec Specifica Chaos Mesh in formato JSON che usa il tipo StressChaos. È possibile usare un convertitore YAML-to-JSON come Converti YAML in JSON per convertire Chaos Mesh YAML in JSON e minimizzarlo. Usare virgolette singole all'interno del codice JSON o evitare l'escape delle virgolette con un carattere barra rovesciata. Includere solo YAML nella proprietà jsonSpec. Non includere informazioni come metadati e tipo. La specifica della durata all'interno jsonSpec di non è necessaria, ma viene usata se disponibile.

JSON di esempio

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

AKS Chaos Mesh IO Chaos

Proprietà valore
Nome funzionalità IOChaos-2.2
Tipo di destinazione Microsoft-AzureKubernetesServiceChaosMesh
Tipi di sistemi operativi del pool di nodi supportati Linux
Descrizione Causa un errore IO disponibile tramite Chaos Mesh per l'esecuzione nel cluster del servizio Azure Kubernetes. Utile per la ricreazione di eventi imprevisti del servizio Azure Kubernetes a causa di ritardi di IO e errori di lettura/scrittura quando si usano chiamate di sistema I/O come open, reade write.
Prerequisiti Il cluster del servizio Azure Kubernetes deve avere Chaos Mesh distribuito.
URN urn:csci:microsoft:azureKubernetesServiceChaosMesh:IOChaos/2.2
Parametri (chiave, valore)
jsonSpec Specifica Chaos Mesh in formato JSON che usa il tipo IOChaos. È possibile usare un convertitore YAML-to-JSON come Converti YAML in JSON per convertire Chaos Mesh YAML in JSON e minimizzarlo. Usare virgolette singole all'interno del codice JSON o evitare l'escape delle virgolette con un carattere barra rovesciata. Includere solo YAML nella proprietà jsonSpec. Non includere informazioni come metadati e tipo. La specifica della durata all'interno jsonSpec di non è necessaria, ma viene usata se disponibile.

JSON di esempio

{
  "name": "branchOne",
  "actions": [
    {
      "type": "continuous",
      "name": "urn:csci:microsoft:azureKubernetesServiceChaosMesh:IOChaos/2.2",
      "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"
    }
  ]
}

AKS Chaos Mesh Time Chaos

Proprietà valore
Nome funzionalità TimeChaos-2.2
Tipo di destinazione Microsoft-AzureKubernetesServiceChaosMesh
Tipi di sistemi operativi del pool di nodi supportati Linux
Descrizione Causa una modifica dell'orologio di sistema nel cluster del servizio Azure Kubernetes usando Chaos Mesh. Utile per la ricreazione di eventi imprevisti del servizio Azure Kubernetes che derivano da sistemi distribuiti che non rientrano nella sincronizzazione, dalla logica bisestile mancante/errata dell'anno bisestile e altro ancora.
Prerequisiti Il cluster del servizio Azure Kubernetes deve avere Chaos Mesh distribuito.
URN urn:csci:microsoft:azureKubernetesServiceChaosMesh:timeChaos/2.2
Parametri (chiave, valore)
jsonSpec Specifica Chaos Mesh in formato JSON che usa il tipo TimeChaos. È possibile usare un convertitore YAML-to-JSON come Converti YAML in JSON per convertire Chaos Mesh YAML in JSON e minimizzarlo. Usare virgolette singole all'interno del codice JSON o evitare l'escape delle virgolette con un carattere barra rovesciata. Includere solo YAML nella proprietà jsonSpec. Non includere informazioni come metadati e tipo. La specifica della durata all'interno jsonSpec di non è necessaria, ma viene usata se disponibile.

JSON di esempio

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

AKS Chaos Mesh Kernel Chaos

Proprietà valore
Nome funzionalità KernelChaos-2.2
Tipo di destinazione Microsoft-AzureKubernetesServiceChaosMesh
Tipi di sistemi operativi del pool di nodi supportati Linux
Descrizione Causa una schermata blu disponibile tramite Chaos Mesh per l'esecuzione nel cluster del servizio Azure Kubernetes. Utile per la ricreazione degli eventi imprevisti del servizio Azure Kubernetes a causa di errori a livello di kernel Linux, ad esempio un errore di montaggio o una memoria non allocata.
Prerequisiti Il cluster del servizio Azure Kubernetes deve avere Chaos Mesh distribuito.
URN urn:csci:microsoft:azureKubernetesServiceChaosMesh:kernelChaos/2.2
Parametri (chiave, valore)
jsonSpec Specifica Chaos Mesh in formato JSON che usa il tipo KernelChaos. È possibile usare un convertitore YAML-to-JSON come Converti YAML in JSON per convertire Chaos Mesh YAML in JSON e minimizzarlo. Usare virgolette singole all'interno del codice JSON o evitare l'escape delle virgolette con un carattere barra rovesciata. Includere solo YAML nella proprietà jsonSpec. Non includere informazioni come metadati e tipo. La specifica della durata all'interno jsonSpec di non è necessaria, ma viene usata se disponibile.

JSON di esempio

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

AKS Chaos Mesh HTTP Chaos

Proprietà valore
Nome funzionalità HTTPChaos-2.2
Tipo di destinazione Microsoft-AzureKubernetesServiceChaosMesh
Tipi di sistemi operativi del pool di nodi supportati Linux
Descrizione Causa un errore HTTP disponibile tramite Chaos Mesh per l'esecuzione nel cluster del servizio Azure Kubernetes. Utile per la ricreazione degli eventi imprevisti a causa di errori di elaborazione delle richieste HTTP e delle risposte, ad esempio risposte ritardate o non corrette.
Prerequisiti Il cluster del servizio Azure Kubernetes deve avere Chaos Mesh distribuito.
URN urn:csci:microsoft:azureKubernetesServiceChaosMesh:httpChaos/2.2
Parametri (chiave, valore)
jsonSpec Specifica Chaos Mesh in formato JSON che usa il tipo HTTPChaos. È possibile usare un convertitore YAML-to-JSON come Converti YAML in JSON per convertire Chaos Mesh YAML in JSON e minimizzarlo. Usare virgolette singole all'interno del codice JSON o evitare l'escape delle virgolette con un carattere barra rovesciata. Includere solo YAML nella proprietà jsonSpec. Non includere informazioni come metadati e tipo. La specifica della durata all'interno jsonSpec di non è necessaria, ma viene usata se disponibile.

JSON di esempio

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

AKS Chaos Mesh DNS Chaos

Proprietà valore
Nome funzionalità DNSChaos-2.2
Tipo di destinazione Microsoft-AzureKubernetesServiceChaosMesh
Tipi di sistemi operativi del pool di nodi supportati Linux
Descrizione Causa un errore DNS disponibile tramite Chaos Mesh per l'esecuzione nel cluster del servizio Azure Kubernetes. Utile per la ricreazione degli eventi imprevisti a causa di errori DNS.
Prerequisiti Il cluster del servizio Azure Kubernetes deve avere Chaos Mesh distribuito e il servizio DNS deve essere installato.
URN urn:csci:microsoft:azureKubernetesServiceChaosMesh:dnsChaos/2.2
Parametri (chiave, valore)
jsonSpec Specifica Chaos Mesh in formato JSON che usa il tipo DNSChaos. È possibile usare un convertitore YAML-to-JSON come Converti YAML in JSON per convertire Chaos Mesh YAML in JSON e minimizzarlo. Usare virgolette singole all'interno del codice JSON o evitare l'escape delle virgolette con un carattere barra rovesciata. Includere solo YAML nella proprietà jsonSpec. Non includere informazioni come metadati e tipo. La specifica della durata all'interno jsonSpec di non è necessaria, ma viene usata se disponibile.

JSON di esempio

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

Arresto di Servizi cloud (versione classica)

Proprietà valore
Nome funzionalità Shutdown-1.0
Tipo di destinazione Microsoft-DomainName
Descrizione Arresta una distribuzione durante l'errore. Riavvia la distribuzione alla fine della durata dell'errore o se l'esperimento viene annullato.
Prerequisiti Nessuno.
URN urn:csci:microsoft:domainName:shutdown/1.0
Tipo di errore Continuo.
Parametri Nessuna.

JSON di esempio

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

Cache di Azure per Redis (riavvio)

Proprietà valore
Nome funzionalità Reboot-1.0
Tipo di destinazione Microsoft-AzureClusteredCacheForRedis
Descrizione Determina l'esecuzione di un'operazione di riavvio forzato nella destinazione per simulare una breve interruzione.
Prerequisiti N/D
URN urn:csci:microsoft:azureClusteredCacheForRedis:reboot/1.0
Tipo di errore Discreto.
Parametri (chiave, valore)
rebootType Tipi di nodo in cui deve essere eseguita l'azione di riavvio, che può essere specificata come PrimaryNode, SecondaryNode o AllNodes.
shardId ID della partizione da riavviare. Rilevante solo per le cache del livello Premium.

JSON di esempio

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

Limiti

  • L'errore di riavvio causa un riavvio forzato per simulare meglio un evento di interruzione, il che significa che si verifica la potenziale perdita di dati.
  • L'errore di riavvio è un tipo di errore discreto. A differenza degli errori continui, si tratta di un'azione una tantum e non ha durata.

Cosmos DB Failover

Proprietà valore
Nome funzionalità Failover-1.0
Tipo di destinazione Microsoft-CosmosDB
Descrizione Determina il failover di un account Azure Cosmos DB con una singola area di scrittura in un'area di lettura specificata per simulare un'interruzione dell'area di scrittura.
Prerequisiti Nessuno.
URN urn:csci:microsoft:cosmosDB:failover/1.0
Tipo di errore Continuo.
Parametri (chiave, valore)
readRegion Area di lettura che deve essere promossa all'area di scrittura durante il failover, ad esempio East US 2.

JSON di esempio

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

Modificare lo stato dell'hub eventi

Proprietà valore
Nome funzionalità ChangeEventHubState-1.0
Tipo di destinazione Microsoft-EventHub
Descrizione Imposta singoli hub eventi sullo stato desiderato all'interno di uno spazio dei nomi di Hub eventi di Azure. È possibile influire su nomi specifici dell'hub eventi o usare "*" per influire su tutti gli spazi dei nomi. Questa azione consente di testare l'infrastruttura di messaggistica per scenari di manutenzione o di errore. Si tratta di un errore discreto, per cui l'entità non tornerà automaticamente allo stato iniziale.
Prerequisiti Uno spazio dei nomi di Hub eventi di Azure con almeno un'entità hub eventi.
URN urn:csci:microsoft:eventHub:changeEventHubState/1.0
Tipo di errore Discreto.
Parametri (chiave, valore)
desiredState Stato desiderato per gli hub eventi di destinazione. Gli stati possibili sono Active, Disabled e SendDisabled.
.eventHubs Elenco delimitato da virgole dei nomi dell'hub eventi all'interno dello spazio dei nomi di destinazione. Usare "*" per influire su tutte le entità all'interno dello spazio dei nomi.

JSON di esempio

{
  "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: Nega accesso

Proprietà valore
Nome funzionalità DenyAccess-1.0
Tipo di destinazione Microsoft-KeyVault
Descrizione Blocca l'accesso di rete a un insieme di credenziali delle chiavi modificando temporaneamente le regole di rete dell'insieme di credenziali delle chiavi. Questa azione impedisce a un'applicazione dipendente dall'insieme di credenziali delle chiavi di accedere a segreti, chiavi e/o certificati. Se l'insieme di credenziali delle chiavi consente l'accesso a tutte le reti, questa impostazione viene modificata in modo da consentire l'accesso solo dalle reti selezionate. Nessuna rete virtuale è presente nell'elenco consentito all'inizio dell'errore. Tutte le reti sono autorizzate ad accedere alla fine della durata dell'errore. Se l'insieme di credenziali delle chiavi è impostato per consentire l'accesso solo dalle reti selezionate, tutte le reti virtuali nell'elenco consentito vengono rimosse all'inizio dell'errore. Vengono ripristinati alla fine della durata dell'errore.
Prerequisiti L'insieme di credenziali delle chiavi di destinazione non può avere regole del firewall e non deve essere impostato per consentire ai servizi di Azure di ignorare il firewall. Se l'insieme di credenziali delle chiavi di destinazione è impostato per consentire l'accesso solo dalle reti selezionate, deve essere presente almeno una regola di rete virtuale. L'insieme di credenziali delle chiavi non può essere in modalità di ripristino.
URN urn:csci:microsoft:keyVault:denyAccess/1.0
Tipo di errore Continuo.
Parametri (chiave, valore) Nessuno.

JSON di esempio

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

Key Vault: Disabilita certificato

Proprietà valore
Nome funzionalità DisableCertificate-1.0
Tipo di destinazione Microsoft-KeyVault
Descrizione Usando le proprietà del certificato, l'errore disabilita il certificato per una durata specifica (fornita dall'utente). Abilita il certificato dopo la durata dell'errore.
Prerequisiti Nessuno.
URN urn:csci:microsoft:keyvault:disableCertificate/1.0
Tipo di errore Continuo.
Parametri (chiave, valore)
certificateName Nome del certificato di Azure Key Vault in cui viene eseguito l'errore.
versione Versione del certificato che deve essere disabilitata. Se non specificato, la versione più recente è disabilitata.

JSON di esempio

{
  "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"
    }
  ]
}

Key Vault: incrementa la versione del certificato

Proprietà valore
Nome funzionalità IncrementCertificateVersion-1.0
Tipo di destinazione Microsoft-KeyVault
Descrizione Genera una nuova versione del certificato e l'identificazione personale usando la libreria client del certificato di Key Vault. Il certificato di lavoro corrente viene aggiornato a questa versione. La versione del certificato non viene ripristinata dopo la durata dell'errore.
Prerequisiti Nessuno.
URN urn:csci:microsoft:keyvault:incrementCertificateVersion/1.0
Tipo di errore Discreto.
Parametri (chiave, valore)
certificateName Nome del certificato di Azure Key Vault in cui viene eseguito l'errore.

JSON di esempio

{
  "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"
    }
  ]
}

Insieme di credenziali delle chiavi: aggiornare i criteri dei certificati

Proprietà valore
Nome funzionalità UpdateCertificatePolicy-1.0
Tipo di destinazione Microsoft-KeyVault
Descrizione I criteri certificato (ad esempio, periodo di validità del certificato, tipo di certificato, dimensione della chiave o tipo di chiave) vengono aggiornati in base all'input dell'utente e ripristinati dopo la durata dell'errore.
Prerequisiti Nessuno.
URN urn:csci:microsoft:keyvault:updateCertificatePolicy/1.0
Tipo di errore Continuo.
Parametri (chiave, valore)
certificateName Nome del certificato di Azure Key Vault in cui viene eseguito l'errore.
versione Versione del certificato da aggiornare. Se non specificato, viene aggiornata la versione più recente.
Enabled Booleano. Valore che indica se la nuova versione del certificato è abilitata.
validityInMonths Periodo di validità del certificato in mesi.
certificateTransparency Indica se il certificato deve essere pubblicato nell'elenco di trasparenza dei certificati al momento della creazione.
certificateType Tipo di certificato.
contentType Tipo di contenuto del certificato. Ad esempio, è Pkcs12 quando il certificato contiene byte PFX non elaborati o Pem quando contiene byte con codifica PEM ASCII. Pkcs12 è il valore predefinito assunto.
keySize Dimensioni della chiave RSA: 2048, 3072 o 4096.
esportabile Booleano. Valore che indica se la chiave del certificato è esportabile dall'insieme di credenziali o dall'archivio certificati sicuro.
reuseKey Booleano. Valore che indica se la chiave del certificato deve essere riutilizzata quando il certificato viene ruotato.
keyType Tipo di chiave di backup generata quando vengono rilasciati nuovi certificati, ad esempio RSA o EC.

JSON di esempio

{
  "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"
    }
  ]
}

Regola di sicurezza del gruppo di sicurezza di rete

Proprietà valore
Nome funzionalità SecurityRule-1.0, SecurityRule-1.1
Tipo di destinazione Microsoft-NetworkSecurityGroup
Descrizione Abilita la creazione di modifiche o regole in un gruppo di sicurezza di rete di Azure esistente o in un set di gruppi di sicurezza di rete di Azure, presupponendo che la definizione della regola sia applicabile tra gruppi di sicurezza. Utile per:
  • Simulazione di un'interruzione di una dipendenza downstream o tra aree o non di indipendenza.
  • Simulazione di un evento che dovrebbe attivare una logica per forzare un failover del servizio.
  • Simulazione di un evento che dovrebbe attivare un'azione da un servizio di monitoraggio o gestione dello stato.
  • Usare come alternativa per bloccare o consentire il traffico di rete in cui Non è possibile distribuire Chaos Agent.
Prerequisiti Nessuno.
URN urn:csci:microsoft:networkSecurityGroup:securityRule/1.0, urn:csci:microsoft:networkSecurityGroup:securityRule/1.1
Tipo di errore Continuo.
Parametri (chiave, valore)
name Nome univoco per la regola di sicurezza creata. L'errore ha esito negativo se esiste già un'altra regola nel gruppo di sicurezza di rete con lo stesso nome. Deve iniziare con una lettera o un numero. Deve terminare con una lettera, un numero o un carattere di sottolineatura. Può contenere solo lettere, numeri, caratteri di sottolineatura, punti o trattini.
protocollo Protocollo per la regola di sicurezza. Deve essere Qualsiasi, TCP, UDP o ICMP.
sourceAddresses Stringa che rappresenta un array delimitato da JSON di indirizzi IP in formato CIDR. Può anche essere un nome di tag del servizio per una regola in ingresso, ad esempio AppService. È anche possibile usare un asterisco * per individuare corrispondenze con tutti gli IP di origine.
destinationAddresses Stringa che rappresenta un array delimitato da JSON di indirizzi IP in formato CIDR. Può anche essere un nome di tag del servizio per una regola in uscita, ad esempio AppService. È anche possibile usare un asterisco * per individuare corrispondenze con tutti gli IP di destinazione.
action Tipo di accesso al gruppo di sicurezza. Deve essere Consenti o Nega.
destinationPortRanges Stringa che rappresenta un array delimitato da JSON di porte singole e/o intervalli di porte, ad esempio 80 o 1024-65535.
sourcePortRanges Stringa che rappresenta un array delimitato da JSON di porte singole e/o intervalli di porte, ad esempio 80 o 1024-65535.
priority Valore compreso tra 100 e 4096 univoco per tutte le regole di sicurezza all'interno del gruppo di sicurezza di rete. L'errore ha esito negativo se esiste già un'altra regola nel gruppo di sicurezza di rete con la stessa priorità.
direction Direzione del traffico interessato dalla regola di sicurezza. Deve essere in ingresso o in uscita.

JSON di esempio

{ 
  "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" 
    } 
  ] 
} 

Limiti

  • L'errore può essere applicato solo a un gruppo di sicurezza di rete esistente.
  • Quando viene applicata una regola del gruppo di sicurezza di rete destinata a negare il traffico, le connessioni esistenti non verranno interrotte finché non sono state inattive per 4 minuti. Una soluzione alternativa consiste nell'aggiungere un altro ramo nello stesso passaggio che usa un errore che causa l'interruzione delle connessioni esistenti quando viene applicato l'errore del gruppo di sicurezza di rete. Ad esempio, la terminazione del processo, l'arresto temporaneamente del servizio o il riavvio della VM causerebbe la reimpostazione delle connessioni.
  • Le regole vengono applicate all'inizio dell'azione. Eventuali modifiche esterne alla regola durante la durata dell'azione causano l'esito negativo dell'esperimento.
  • La creazione o la modifica delle regole del gruppo di sicurezza delle applicazioni non è supportata.
  • I valori di priorità devono essere univoci in ogni gruppo di sicurezza di rete di destinazione. Se si tenta di creare una nuova regola con lo stesso valore di priorità di un altro, l'esperimento non riesce.
  • L'errore NSG Security Rule versione 1.1 supporta un parametro aggiuntivo flushConnection. Questa funzionalità presenta un problema noto attivo: se flushConnection è abilitato, l'errore potrebbe causare un errore "FlushingNetworkSecurityGroupConnectionIsNotEnabled". Per evitare temporaneamente questo errore, disabilitare il parametro flushConnection o usare l'errore della versione della regola di sicurezza del gruppo di sicurezza di rete 1.0.

Bus di servizio: modifica dello stato della coda

Proprietà valore
Nome funzionalità ChangeQueueState-1.0
Tipo di destinazione Microsoft-ServiceBus
Descrizione Imposta le entità Queue all'interno di uno spazio dei nomi del Bus di servizio sullo stato desiderato. È possibile influire su nomi di entità specifici o usare "*" per influire su tutti. Questa azione consente di testare l'infrastruttura di messaggistica per scenari di manutenzione o di errore. Si tratta di un errore discreto, per cui l'entità non tornerà automaticamente allo stato iniziale.
Prerequisiti Spazio dei nomi del Bus di servizio con almeno un'entità Coda.
URN urn:csci:microsoft:serviceBus:changeQueueState/1.0
Tipo di errore Discreto.
Parametri (chiave, valore)
desiredState Stato desiderato per le code di destinazione. Gli stati possibili sono Active, Disabled, SendDisabled e ReceiveDisabled.
code Elenco delimitato da virgole dei nomi delle code all'interno dello spazio dei nomi di destinazione. Usare "*" per influire su tutte le code all'interno dello spazio dei nomi.

JSON di esempio

{
  "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"
    }
  ]
}

Limiti

  • A questo errore possono essere passate al massimo 1000 entità della coda.

Bus di servizio: modificare lo stato della sottoscrizione

Proprietà valore
Nome funzionalità ChangeSubscriptionState-1.0
Tipo di destinazione Microsoft-ServiceBus
Descrizione Imposta le entità di sottoscrizione all'interno di uno spazio dei nomi del Bus di servizio e argomento sullo stato desiderato. È possibile influire su nomi di entità specifici o usare "*" per influire su tutti. Questa azione consente di testare l'infrastruttura di messaggistica per scenari di manutenzione o di errore. Si tratta di un errore discreto, per cui l'entità non tornerà automaticamente allo stato iniziale.
Prerequisiti Spazio dei nomi del Bus di servizio con almeno un'entità Sottoscrizione.
URN urn:csci:microsoft:serviceBus:changeSubscriptionState/1.0
Tipo di errore Discreto.
Parametri (chiave, valore)
desiredState Stato desiderato per le sottoscrizioni di destinazione. Gli stati possibili sono Attivo e Disattivato.
argomento Argomento padre contenente una o più sottoscrizioni da influire.
sottoscrizioni Elenco delimitato da virgole dei nomi delle sottoscrizioni all'interno dello spazio dei nomi di destinazione. Usare "*" per influire su tutte le sottoscrizioni all'interno dello spazio dei nomi.

JSON di esempio

{
  "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"
    }
  ]
}

Limiti

  • A questo errore possono essere passate al massimo 1000 entità di sottoscrizione.

Bus di servizio: modificare lo stato dell'argomento

Proprietà valore
Nome funzionalità ChangeTopicState-1.0
Tipo di destinazione Microsoft-ServiceBus
Descrizione Imposta le entità Topic specificate all'interno di uno spazio dei nomi del Bus di servizio sullo stato desiderato. È possibile influire su nomi di entità specifici o usare "*" per influire su tutti. Questa azione consente di testare l'infrastruttura di messaggistica per scenari di manutenzione o di errore. Si tratta di un errore discreto, per cui l'entità non tornerà automaticamente allo stato iniziale.
Prerequisiti Spazio dei nomi del Bus di servizio con almeno un'entità Argomento.
URN urn:csci:microsoft:serviceBus:changeTopicState/1.0
Tipo di errore Discreto.
Parametri (chiave, valore)
desiredState Stato desiderato per gli argomenti di destinazione. Gli stati possibili sono Attivo e Disattivato.
topics Elenco delimitato da virgole dei nomi degli argomenti all'interno dello spazio dei nomi di destinazione. Usare "*" per influire su tutti gli argomenti all'interno dello spazio dei nomi.

JSON di esempio

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

Limiti

  • È possibile passare un massimo di 1000 entità argomento a questo errore.

Ridistribuire la VM

Proprietà valore
Nome funzionalità Redeploy-1.0
Tipo di destinazione Microsoft-VirtualMachine
Descrizione Ridistribuisce una VM arrestandola, spostandola in un nuovo nodo nell'infrastruttura di Azure e riattivandola. Ciò consente di convalidare la resilienza del carico di lavoro agli eventi di manutenzione.
Prerequisiti Nessuno.
URN urn:csci:microsoft:virtualMachine:redeploy/1.0
Tipo di errore Discreto.
Parametri (chiave, valore) Nessuno.

JSON di esempio

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

Limiti

  • L'operazione di ridistribuzione della macchina virtuale viene limitata entro un intervallo di 10 ore. Se l'esperimento ha esito negativo con un errore "Troppe richieste di ridistribuzione", attendere 10 ore per ripetere l'esperimento.

Arresto della macchina virtuale

Proprietà valore
Nome funzionalità Shutdown-1.0
Tipo di destinazione Microsoft-VirtualMachine
Tipi di sistemi operativi supportati Windows, Linux.
Descrizione Arresta una VM per la durata dell'errore. La riavvia alla fine dell'esperimento o se l'esperimento viene annullato. Sono supportate solo le VM di Azure Resource Manager.
Prerequisiti Nessuno.
URN urn:csci:microsoft:virtualMachine:shutdown/1.0
Tipo di errore Continuo.
Parametri (chiave, valore)
abruptShutdown (Facoltativo) Valore booleano che indica se la VM deve essere arrestata normalmente o bruscamente (distruttiva).

JSON di esempio

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

Arresto del set di scalabilità di macchine virtuali

Questo errore include due versioni disponibili che è possibile usare, la versione 1.0 e la versione 2.0. La differenza principale è che la versione 2.0 consente di filtrare in base alle zone di disponibilità, arrestando solo le istanze all'interno di una zona o di zone specificate.

Arresto del set di scalabilità di macchine virtuali versione 1.0

Proprietà valore
Nome funzionalità Version 1.0
Tipo di destinazione Microsoft-VirtualMachineScaleSet
Tipi di sistemi operativi supportati Windows, Linux.
Descrizione Arresta o termina un'istanza del set di scalabilità di macchine virtuali durante l'errore e riavvia la VM alla fine della durata dell'errore o se l'esperimento viene annullato.
Prerequisiti Nessuno.
URN urn:csci:microsoft:virtualMachineScaleSet:shutdown/1.0
Tipo di errore Continuo.
Parametri (chiave, valore)
abruptShutdown (Facoltativo) Valore booleano che indica se l'istanza del set di scalabilità di macchine virtuali deve essere arrestata normalmente o bruscamente (modo distruttivo).
instances Stringa che rappresenta un array delimitato di ID istanza del set di scalabilità di macchine virtuali a cui viene applicato l'errore.
JSON di esempio della versione 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"
    }
  ]
}

Arresto del set di scalabilità di macchine virtuali versione 2.0

Proprietà valore
Nome funzionalità Shutdown-2.0
Tipo di destinazione Microsoft-VirtualMachineScaleSet
Tipi di sistemi operativi supportati Windows, Linux.
Descrizione Arresta o terminar un'istanza del set di scalabilità di macchine virtuali durante l'errore. Riavvia la VM alla fine della durata dell'errore o se l'esperimento viene annullato. Supporta la destinazione dinamica.
Prerequisiti Nessuno.
URN urn:csci:microsoft:virtualMachineScaleSet:shutdown/2.0
Tipo di errore Continuo.
filter (Facoltativo) Disponibile solo a partire dalla versione 2.0. Consente di filtrare l'elenco di destinazioni in un selettore. Attualmente supporta il filtro in base a un elenco di zone. Il filtro viene applicato solo alle risorse del set di scalabilità di macchine virtuali all'interno di una zona:
  • Se non viene specificato alcun filtro, questo errore arresta tutte le istanze nel set di scalabilità di macchine virtuali.
  • L'esperimento è destinato a tutte le istanze del set di scalabilità di macchine virtuali nelle zone specificate.
  • Se un filtro non restituisce destinazioni, l'esperimento ha esito negativo.
Parametri (chiave, valore)
abruptShutdown (Facoltativo) Valore booleano che indica se l'istanza del set di scalabilità di macchine virtuali deve essere arrestata normalmente o bruscamente (modo distruttivo).
Frammenti JSON di esempio versione 2.0

I frammenti di codice seguenti illustrano come configurare sia il filtro dinamico che l'errore di arresto 2.0.

Configurare un filtro per la destinazione dinamica:

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

Configurare l'errore di arresto:

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

Limiti

Attualmente sono supportati solo i set di scalabilità di macchine virtuali configurati con la modalità di orchestrazione Uniforme. Se il set di scalabilità di macchine virtuali usa l'orchestrazione Flessibile, è possibile usare l'errore di arresto della macchina virtuale di Azure Resource Manager per arrestare le istanze selezionate.

Dettagli: azioni di orchestrazione

Ritardo

Proprietà valore
Provider di errori N/D
Tipi di sistemi operativi supportati N/D
Descrizione Aggiunge un ritardo di tempo prima, tra o dopo altre azioni dell'esperimento. Questa azione non è un errore e viene usata per sincronizzare le azioni all'interno di un esperimento. Usare questa azione per attendere che l'impatto di un errore venga visualizzato in un servizio o attendere il completamento di un'attività all'esterno dell'esperimento. Ad esempio, l'esperimento potrebbe attendere l'esecuzione dell'autohealing prima di inserire un altro errore.
Prerequisiti N/D
URN urn:csci:microsoft:chaosStudio:timedDelay/1.0
Durata Durata del ritardo nel formato ISO 8601 (ad esempio PT10M).

JSON di esempio

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

Avviare il test di carico (test di carico di Azure)

Proprietà valore
Nome funzionalità Start-1.0
Tipo di destinazione Microsoft-AzureLoadTest
Descrizione Avvia un test di carico (da Test di carico di Azure) in base all'ID test di carico fornito.
Prerequisiti È necessario creare un test di carico con un ID test di carico valido nelservizio Test di carico di Azure.
URN urn:csci:microsoft:azureLoadTest:start/1.0
Tipo di errore Discreto.
Parametri (chiave, valore)
testID ID di un test di carico specifico creato nel servizio Test di carico di Azure.

JSON di esempio

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

Arrestare il test di carico (test di carico di Azure)

Proprietà valore
Nome funzionalità Stop-1.0
Tipo di destinazione Microsoft-AzureLoadTest
Descrizione Arresta un test di carico (da Test di carico di Azure) in base all'ID test di carico fornito.
Prerequisiti È necessario creare un test di carico con un ID test di carico valido nelservizio Test di carico di Azure.
URN urn:csci:microsoft:azureLoadTest:stop/1.0
Tipo di errore Discreto.
Parametri (chiave, valore)
testID ID di un test di carico specifico creato nel servizio Test di carico di Azure.

JSON di esempio

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