Biblioteka błędów i akcji usługi Azure Chaos Studio

W tym artykule wymieniono błędy, których można użyć w programie Chaos Studio, uporządkowane według odpowiedniego typu zasobu. Aby dowiedzieć się, które przypisania ról są zalecane dla każdego typu zasobu, zobacz Obsługiwane typy zasobów i przypisania ról dla usługi Azure Chaos Studio.

Błędy oparte na agencie

Błędy oparte na agencie są wstrzykiwane do wystąpień usługi Azure Virtual Machines lub zestawu skalowania maszyn wirtualnych przez zainstalowanie agenta programu Chaos Studio. Znajdź opcje błędów bezpośrednich dla tych zasobów poniżej w tabelach Maszyny wirtualnej i Zestawu skalowania maszyn wirtualnych.

Odpowiednie typy systemu operacyjnego Nazwa błędu Odpowiednie scenariusze
Windows, Linux Ciśnienie procesora CPU Utrata pojemności obliczeniowej, wykorzystanie zasobów
Windows, Linux Proces zabicia Zakłócenia zależności
Windows, Linux Rozłączanie sieci Zakłócenia sieci
Windows, Linux Opóźnienie sieci Obniżenie wydajności sieci
Windows, Linux Utrata pakietów sieciowych Problemy z niezawodnością sieci
Windows, Linux Wykorzystanie pamięci fizycznej Utrata pojemności pamięci, wykorzystanie zasobów
Windows, Linux Zatrzymywanie usługi Zakłócenia/ponowne uruchamianie usługi
Windows, Linux Zmiana czasu Problemy z synchronizacją czasu
Windows, Linux Wykorzystanie pamięci wirtualnej Utrata pojemności pamięci, wykorzystanie zasobów
Linux Dowolny stres-ng stressor Ogólne testy obciążeniowe systemu
Linux Linux DiskIO — ciśnienie Obniżenie wydajności we/wy dysku
Windows Ciśnienie dyskuIO Obniżenie wydajności we/wy dysku
Windows Błąd DNS Problemy z rozpoznawaniem nazw DNS
Windows Rozłączanie sieci (za pośrednictwem zapory) Zakłócenia sieci

App Service

Ta sekcja dotyczy Microsoft.Web/sites typu zasobu. Dowiedz się więcej o usłudze App Service.

Nazwa błędu Odpowiednie scenariusze
Zatrzymywanie usługi App Service Przerwy w działaniu usługi

Ustawienia skalowania automatycznego

Ta sekcja dotyczy Microsoft.Insights/autoscaleSettings typu zasobu. Dowiedz się więcej o Ustawienia autoskalowaniem.

Nazwa błędu Odpowiednie scenariusze
Wyłączanie automatycznego skalowania Utrata pojemności obliczeniowej (w przypadku użycia z zamknięciem usługi VMSS)

Azure Kubernetes Service

Ta sekcja dotyczy Microsoft.ContainerService/managedClusters typu zasobu. Dowiedz się więcej o usłudze Azure Kubernetes Service.

Nazwa błędu Odpowiednie scenariusze
AKS Chaos Mesh DNS Chaos Problemy z rozpoznawaniem nazw DNS
AKS Chaos Mesh HTTP Chaos Zakłócenia sieci
AKS Chaos Mesh IO Chaos Obniżenie/ciśnienie dysku
Chaos jądra siatki usługi AKS Chaos Chaos Zakłócenia jądra
AKS Chaos Mesh Network Chaos Zakłócenia sieci
AKS Chaos Mesh Pod Chaos Zakłócenia kontenerów
AKS Chaos Mesh Stress Chaos Testy obciążeniowe systemu
AKS Chaos Mesh Time Chaos Problemy z synchronizacją czasu

Cloud Services (wersja klasyczna)

Ta sekcja dotyczy Microsoft.ClassicCompute/domainNames typu zasobu. Dowiedz się więcej o usługach Cloud Services (wersja klasyczna).

Nazwa błędu Odpowiednie scenariusze
Zamykanie usługi w chmurze Utrata zasobów obliczeniowych

Klastrowana pamięć podręczna dla usługi Redis

Ta sekcja dotyczy Microsoft.Cache/redis typu zasobu. Dowiedz się więcej o klastrowanej pamięci podręcznej dla usługi Redis.

Nazwa błędu Odpowiednie scenariusze
Azure Cache for Redis (ponowny rozruch) Zakłócenia zależności (pamięci podręczne)

Cosmos DB

Ta sekcja dotyczy Microsoft.DocumentDB/databaseAccounts typu zasobu. Dowiedz się więcej o usłudze Cosmos DB.

Nazwa błędu Odpowiednie scenariusze
Cosmos DB Failover Tryb failover bazy danych

Event Hubs

Ta sekcja dotyczy Microsoft.EventHub/namespaces typu zasobu. Dowiedz się więcej o usłudze Event Hubs.

Nazwa błędu Odpowiednie scenariusze
Zmienianie stanu centrum zdarzeń Błędna konfiguracja/zakłócenia infrastruktury obsługi komunikatów

Key Vault

Ta sekcja dotyczy Microsoft.KeyVault/vaults typu zasobu. Dowiedz się więcej o usłudze Key Vault.

Nazwa błędu Odpowiednie scenariusze
Key Vault: Odmowa dostępu Odmowa certyfikatu
Key Vault: wyłączanie certyfikatu Zakłócenia certyfikatów
Key Vault: wersja certyfikatu przyrostowego Przyrost wersji certyfikatu
Key Vault: aktualizowanie zasad certyfikatów Zmiany/błędy konfiguracji zasad certyfikatu

Grupy zabezpieczeń sieci

Ta sekcja dotyczy Microsoft.Network/networkSecurityGroups typu zasobu. Dowiedz się więcej o sieciowych grupach zabezpieczeń.

Nazwa błędu Odpowiednie scenariusze
Reguła zabezpieczeń sieciowej grupy zabezpieczeń Zakłócenia sieci (w przypadku wielu usług platformy Azure)

Service Bus

Ta sekcja dotyczy Microsoft.ServiceBus/namespaces typu zasobu. Dowiedz się więcej o usłudze Service Bus.

Nazwa błędu Odpowiednie scenariusze
Zmienianie stanu kolejki Błędna konfiguracja/zakłócenia infrastruktury obsługi komunikatów
Zmienianie stanu subskrypcji Błędna konfiguracja/zakłócenia infrastruktury obsługi komunikatów
Zmienianie stanu tematu Błędna konfiguracja/zakłócenia infrastruktury obsługi komunikatów

Maszyny wirtualne (usługa bezpośrednia)

Ta sekcja dotyczy Microsoft.Compute/virtualMachines typu zasobu. Dowiedz się więcej o maszynach wirtualnych.

Nazwa błędu Odpowiednie scenariusze
Ponowne wdrażanie maszyny wirtualnej Zakłócenia obliczeniowe, zdarzenia konserwacji
Zamykanie maszyny wirtualnej Utrata mocy obliczeniowej/zakłócenia

Zestaw skalowania maszyn wirtualnych

Ta sekcja dotyczy Microsoft.Compute/virtualMachineScaleSets typu zasobu. Dowiedz się więcej o zestawach skalowania maszyn wirtualnych.

Nazwa błędu Odpowiednie scenariusze
Zamykanie usługi VMSS Utrata mocy obliczeniowej/zakłócenia
Zamykanie usługi VMSS (2.0) Utrata/zakłócenia zasobów obliczeniowych (według strefy dostępności)

Akcje orkiestracji

Te akcje to bloki konstrukcyjne służące do konstruowania skutecznych eksperymentów. Używaj ich w połączeniu z innymi błędami, takimi jak uruchamianie testu obciążeniowego podczas równoległego zamykania wystąpień obliczeniowych w strefie.

Kategoria akcji Nazwa błędu
Ładowanie Rozpocznij test obciążeniowy (Testowanie obciążenia platformy Azure)
Ładowanie Zatrzymaj test obciążeniowy (Testowanie obciążenia platformy Azure)
Opóźnienie czasowe Delay

Szczegóły: Błędy oparte na agencie

Rozłączanie sieci

Właściwości Wartość
Nazwa możliwości NetworkDisconnect-1.1
Typ docelowy Microsoft-Agent
Obsługiwane typy systemu operacyjnego Windows, Linux.
opis Blokuje wychodzący ruch sieciowy dla określonego zakresu portów i bloku sieciowego. Należy podać co najmniej jedną tablicę destinationFilter lub inboundDestinationFilter.
Wymagania wstępne Windows: agent musi działać jako administrator, co ma miejsce domyślnie, jeśli jest zainstalowane jako rozszerzenie maszyny wirtualnej.
Linux:tc pakiet (Traffic Control) jest używany w przypadku błędów sieci. Jeśli nie jest jeszcze zainstalowany, agent automatycznie próbuje zainstalować go z domyślnego menedżera pakietów.
Urn urn:csci:microsoft:agent:networkDisconnect/1.1
Parametry (klucz, wartość)
destinationFilters Rozdzielana tablica JSON filtrów pakietów definiujących pakiety wychodzące do miejsca docelowego. Maksymalnie 16.
inboundDestinationFilters Rozdzielana tablica JSON filtrów pakietów definiujących pakiety przychodzące do miejsca docelowego. Maksymalnie 16.
virtualMachineScaleSetInstances Tablica identyfikatorów wystąpień podczas stosowania tego błędu do zestawu skalowania maszyn wirtualnych. Wymagane w przypadku zestawów skalowania maszyn wirtualnych w trybie jednolitej aranżacji. Dowiedz się więcej o identyfikatorach wystąpień.

Parametry destinationFilters i inboundDestinationFilters używają następującej tablicy filtrów pakietów.

Właściwości Wartość
adres Adres IP wskazujący początek zakresu adresów IP.
maska podsieci Maska podsieci dla zakresu adresów IP.
portLow (Opcjonalnie) Numer portu początkowego zakresu portów.
portHigh (Opcjonalnie) Numer portu końca zakresu portów.

Przykładowy kod 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"
    }
  ]
}

Ograniczenia

  • Błędy sieci oparte na agencie obsługują obecnie tylko adresy IPv4.
  • Błąd rozłączenia sieci dotyczy tylko nowych połączeń. Istniejące aktywne połączenia będą nadal utrwalane. Możesz ponownie uruchomić usługę lub proces, aby wymusić przerwanie połączeń.
  • W przypadku uruchamiania w systemie Windows błąd rozłączenia sieci obecnie działa tylko z pakietami TCP lub UDP.

Rozłączanie sieci (za pośrednictwem zapory)

Właściwości Wartość
Nazwa możliwości NetworkDisconnectViaFirewall-1.0
Typ docelowy Microsoft-Agent
Obsługiwane typy systemu operacyjnego Windows
opis Stosuje regułę zapory systemu Windows w celu blokowania ruchu wychodzącego dla określonego zakresu portów i bloku sieciowego.
Wymagania wstępne Agent musi działać jako administrator. Jeśli agent jest instalowany jako rozszerzenie maszyny wirtualnej, jest on domyślnie uruchamiany jako administrator.
Urn urn:csci:microsoft:agent:networkDisconnectViaFirewall/1.0
Parametry (klucz, wartość)
destinationFilters Rozdzielana tablica JSON filtrów pakietów, które określają, które pakiety wychodzące mają być przeznaczone dla iniekcji błędów.
adres Adres IP wskazujący początek zakresu adresów IP.
maska podsieci Maska podsieci dla zakresu adresów IP.
portLow (Opcjonalnie) Numer portu początkowego zakresu portów.
portHigh (Opcjonalnie) Numer portu końca zakresu portów.
virtualMachineScaleSetInstances Tablica identyfikatorów wystąpień podczas stosowania tego błędu do zestawu skalowania maszyn wirtualnych. Wymagane w przypadku zestawów skalowania maszyn wirtualnych w trybie jednolitej aranżacji. Dowiedz się więcej o identyfikatorach wystąpień.

Przykładowy kod 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"
    }
  ]
}

Ograniczenia

  • Błędy sieci oparte na agencie obsługują obecnie tylko adresy IPv4.

Opóźnienie sieci

Właściwości Wartość
Nazwa możliwości NetworkLatency-1.1
Typ docelowy Microsoft-Agent
Obsługiwane typy systemu operacyjnego Windows, Linux (tylko ruch wychodzący)
opis Zwiększa opóźnienie sieci dla określonego zakresu portów i bloku sieciowego. Należy podać co najmniej jedną tablicę destinationFilter lub inboundDestinationFilter.
Wymagania wstępne Windows: agent musi działać jako administrator, co ma miejsce domyślnie, jeśli jest zainstalowane jako rozszerzenie maszyny wirtualnej.
Linux:tc pakiet (Traffic Control) jest używany w przypadku błędów sieci. Jeśli nie jest jeszcze zainstalowany, agent automatycznie próbuje zainstalować go z domyślnego menedżera pakietów.
Urn urn:csci:microsoft:agent:networkLatency/1.1
Parametry (klucz, wartość)
latencyInMilliseconds Ilość opóźnień, które mają być stosowane w milisekundach.
destinationFilters Rozdzielana tablica JSON filtrów pakietów definiujących pakiety wychodzące do miejsca docelowego. Maksymalnie 16.
inboundDestinationFilters Rozdzielana tablica JSON filtrów pakietów definiujących pakiety przychodzące do miejsca docelowego. Maksymalnie 16.
virtualMachineScaleSetInstances Tablica identyfikatorów wystąpień podczas stosowania tego błędu do zestawu skalowania maszyn wirtualnych. Wymagane w przypadku zestawów skalowania maszyn wirtualnych w trybie jednolitej aranżacji. Dowiedz się więcej o identyfikatorach wystąpień.

Parametry destinationFilters i inboundDestinationFilters używają następującej tablicy filtrów pakietów.

Właściwości Wartość
adres Adres IP wskazujący początek zakresu adresów IP.
maska podsieci Maska podsieci dla zakresu adresów IP.
portLow (Opcjonalnie) Numer portu początkowego zakresu portów.
portHigh (Opcjonalnie) Numer portu końca zakresu portów.

Przykładowy kod 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"
    }
  ]
}

Ograniczenia

  • Błędy sieci oparte na agencie obsługują obecnie tylko adresy IPv4.
  • W przypadku uruchamiania w systemie Linux błąd opóźnienia sieci może mieć wpływ tylko na ruch wychodzący , a nie ruch przychodzący. Błąd może mieć wpływ zarówno na ruch przychodzący, jak i wychodzący w środowiskach systemu Windows (za pośrednictwem inboundDestinationFilters parametrów i destinationFilters ).
  • W przypadku uruchamiania w systemie Windows błąd opóźnienia sieci obecnie działa tylko z pakietami TCP lub UDP.

Utrata pakietów sieciowych

Właściwości Wartość
Nazwa możliwości NetworkPacketLoss-1.0
Typ docelowy Microsoft-Agent
Obsługiwane typy systemu operacyjnego Windows, Linux
opis Wprowadza utratę pakietów dla ruchu wychodzącego z określoną szybkością z przedziału od 0,0 (bez utraconych pakietów) do 1,0 (wszystkie pakiety zostały utracone). Ta akcja może pomóc w symulowaniu scenariuszy, takich jak przeciążenie sieci lub problemy sprzętowe sieci.
Wymagania wstępne Windows: agent musi działać jako administrator, co ma miejsce domyślnie, jeśli jest zainstalowane jako rozszerzenie maszyny wirtualnej.
Linux:tc pakiet (Traffic Control) jest używany w przypadku błędów sieci. Jeśli nie jest jeszcze zainstalowany, agent automatycznie próbuje zainstalować go z domyślnego menedżera pakietów.
Urn urn:csci:microsoft:agent:networkPacketLoss/1.0
Parametry (klucz, wartość)
packetLossRate Szybkość utraty pakietów pasujących do filtrów docelowych, od 0,0 do 1,0.
virtualMachineScaleSetInstances Tablica identyfikatorów wystąpień podczas stosowania tego błędu do zestawu skalowania maszyn wirtualnych. Wymagane w przypadku zestawów skalowania maszyn wirtualnych w trybie jednolitej aranżacji. Dowiedz się więcej o identyfikatorach wystąpień.
destinationFilters Rozdzielana tablica JSON filtrów pakietów (poniżej parametrów), które określają, które pakiety wychodzące mają być przeznaczone dla iniekcji błędów. Maksymalnie trzy.
adres Adres IP wskazujący początek zakresu adresów IP.
maska podsieci Maska podsieci dla zakresu adresów IP.
portLow (Opcjonalnie) Numer portu początkowego zakresu portów.
portHigh (Opcjonalnie) Numer portu końca zakresu portów.

Przykładowy kod 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"
    }
  ]
}

Ograniczenia

  • Błędy sieci oparte na agencie obsługują obecnie tylko adresy IPv4.
  • W przypadku uruchamiania w systemie Windows błąd utraty pakietów sieciowych działa obecnie tylko z pakietami TCP lub UDP.

Błąd DNS

Właściwości Wartość
Nazwa możliwości DnsFailure-1.0
Typ docelowy Microsoft-Agent
Obsługiwane typy systemu operacyjnego Windows
opis Zastępuje odpowiedzi żądania wyszukiwania DNS określonym kodem błędu. Żądania wyszukiwania DNS, które są zastępowane, muszą:
  • Pochodzą z maszyny wirtualnej.
  • Dopasuj zdefiniowane parametry błędów.
Te błędy nie mają wpływu na wyszukiwania DNS, które nie są wykonywane przez klienta DNS systemu Windows.
Wymagania wstępne Brak.
Urn urn:csci:microsoft:agent:dnsFailure/1.0
Parametry (klucz, wartość)
hosty Rozdzielana tablica JSON nazw hostów w celu niepowodzenia żądania wyszukiwania DNS dla.

Ta właściwość akceptuje symbole wieloznaczne (*), ale tylko dla pierwszej poddomeny w adresie i dotyczy tylko poddomeny, dla której zostały określone. Na przykład:
  • *.microsoft.com jest obsługiwany.
  • domena podrzędna.*.microsoft nie jest obsługiwana.
  • *.microsoft.com nie działa w przypadku wielu domen podrzędnych w adresie, takim jak subdomain1.subdomain2.microsoft.com.
dnsFailureReturnCode Kod błędu DNS, który ma zostać zwrócony do klienta dla błędu wyszukiwania (FormErr, ServFail, NXDomain, NotImp, Refused, XDomain, YXRRSet, NXRRSet, NotAuth, NotZone). Aby uzyskać więcej informacji na temat kodów powrotnych DNS, zobacz witrynę internetową IANA.
virtualMachineScaleSetInstances Tablica identyfikatorów wystąpień podczas stosowania tego błędu do zestawu skalowania maszyn wirtualnych. Wymagane w przypadku zestawów skalowania maszyn wirtualnych w trybie jednolitej aranżacji. Dowiedz się więcej o identyfikatorach wystąpień.

Przykładowy kod 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"
    }
  ]
}

Ograniczenia

  • Błąd DNS wymaga systemu Windows 2019 RS5 lub nowszego.
  • Pamięć podręczna DNS jest ignorowana w czasie trwania błędu nazw hostów zdefiniowanych w błędzie.

Ciśnienie procesora CPU

Właściwości Wartość
Nazwa możliwości CPUPressure-1.0
Typ docelowy Microsoft-Agent
Obsługiwane typy systemu operacyjnego Windows, Linux.
opis Dodaje ciśnienie procesora CPU do określonej wartości na maszynie wirtualnej, na której ten błąd jest wstrzykiwany podczas akcji błędu. Sztuczne ciśnienie procesora CPU zostanie usunięte na koniec czasu trwania lub jeśli eksperyment zostanie anulowany. W systemie Windows licznik wydajności % narzędzia procesora jest używany na początku błędu w celu określenia bieżącej wartości procentowej procesora CPU, która jest odejmowana od zdefiniowanej pressureLevel w błędzie, tak aby % narzędzie procesora osiągało w przybliżeniu wartość zdefiniowaną pressureLevel w parametrach błędu.
Wymagania wstępne Linux: należy zainstalować narzędzie stress-ng . Instalacja odbywa się automatycznie w ramach instalacji agenta przy użyciu domyślnego menedżera pakietów w kilku systemach operacyjnych, w tym Debiana (na przykład Ubuntu), Red Hat Enterprise Linux i OpenSUSE. W przypadku innych dystrybucji, w tym platformy Azure z systemem Linux, należy zainstalować narzędzie stress-ng ręcznie. Aby uzyskać więcej informacji, zobacz nadrzędne repozytorium projektów.
Windows: Brak.
Urn urn:csci:microsoft:agent:cpuPressure/1.0
Parametry (klucz, wartość)
ciśnieniePoszczel Liczba całkowita z zakresu od 1 do 99 wskazująca, ile ciśnienia procesora CPU (%) jest stosowane do maszyny wirtualnej pod względem procentowego użycia procesora CPU
virtualMachineScaleSetInstances Tablica identyfikatorów wystąpień podczas stosowania tego błędu do zestawu skalowania maszyn wirtualnych. Wymagane w przypadku zestawów skalowania maszyn wirtualnych w trybie jednolitej aranżacji. Dowiedz się więcej o identyfikatorach wystąpień.

Przykładowy kod 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"
    }
  ]
}

Ograniczenia

Znane problemy w systemie Linux:

  • Efekt stresu może nie zostać poprawnie zakończony, jeśli AzureChaosAgent zostanie nieoczekiwanie zabity.

Wykorzystanie pamięci fizycznej

Właściwości Wartość
Nazwa możliwości PhysicalMemoryPressure-1.0
Typ docelowy Microsoft-Agent
Obsługiwane typy systemu operacyjnego Windows, Linux.
opis Dodaje wykorzystanie pamięci fizycznej do określonej wartości na maszynie wirtualnej, na której ten błąd jest wstrzykiwany podczas akcji błędu. Sztuczne wykorzystanie pamięci fizycznej jest usuwane na koniec czasu trwania lub jeśli eksperyment zostanie anulowany.
Wymagania wstępne Linux: należy zainstalować narzędzie stress-ng . Instalacja odbywa się automatycznie w ramach instalacji agenta przy użyciu domyślnego menedżera pakietów w kilku systemach operacyjnych, w tym Debiana (na przykład Ubuntu), Red Hat Enterprise Linux i OpenSUSE. W przypadku innych dystrybucji, w tym platformy Azure z systemem Linux, należy zainstalować narzędzie stress-ng ręcznie. Aby uzyskać więcej informacji, zobacz nadrzędne repozytorium projektów.
Windows: Brak.
Urn urn:csci:microsoft:agent:physicalMemoryPressure/1.0
Parametry (klucz, wartość)
ciśnieniePoszczel Liczba całkowita z zakresu od 1 do 99 wskazująca, ile pamięci fizycznej (%) jest stosowane do maszyny wirtualnej.
virtualMachineScaleSetInstances Tablica identyfikatorów wystąpień podczas stosowania tego błędu do zestawu skalowania maszyn wirtualnych. Wymagane w przypadku zestawów skalowania maszyn wirtualnych w trybie jednolitej aranżacji. Dowiedz się więcej o identyfikatorach wystąpień.

Przykładowy kod 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"
    }
  ]
}

Ograniczenia

Obecnie agent systemu Windows nie zmniejsza ciśnienia pamięci, gdy inne aplikacje zwiększają użycie pamięci. Jeśli całkowite użycie pamięci przekroczy 100%, agent systemu Windows może ulec awarii.

Wykorzystanie pamięci wirtualnej

Właściwości Wartość
Nazwa możliwości VirtualMemoryPressure-1.0
Typ docelowy Microsoft-Agent
Obsługiwane typy systemu operacyjnego Windows
opis Dodaje ciśnienie pamięci wirtualnej do określonej wartości na maszynie wirtualnej, na której ten błąd jest wstrzykiwany podczas akcji błędu. Sztuczne wykorzystanie pamięci wirtualnej zostanie usunięte na koniec czasu trwania lub jeśli eksperyment zostanie anulowany.
Wymagania wstępne Brak.
Urn urn:csci:microsoft:agent:virtualMemoryPressure/1.0
Parametry (klucz, wartość)
ciśnieniePoszczel Liczba całkowita z zakresu od 1 do 99 wskazująca, ile pamięci fizycznej (%) jest stosowane do maszyny wirtualnej.
virtualMachineScaleSetInstances Tablica identyfikatorów wystąpień podczas stosowania tego błędu do zestawu skalowania maszyn wirtualnych. Wymagane w przypadku zestawów skalowania maszyn wirtualnych w trybie jednolitej aranżacji. Dowiedz się więcej o identyfikatorach wystąpień.

Przykładowy kod 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"
    }
  ]
}

Ciśnienie we/wy dysku

Właściwości Wartość
Nazwa możliwości DiskIOPressure-1.1
Typ docelowy Microsoft-Agent
Obsługiwane typy systemu operacyjnego Windows
opis Używa narzędzia diskspd do dodawania ciśnienia dysku do maszyny wirtualnej. Ciśnienie jest domyślnie dodawane do dysku podstawowego lub dysku określonego za pomocą parametru targetTempDirectory. Ten błąd ma pięć różnych trybów wykonywania. Ciśnienie dysku sztucznego zostanie usunięte na końcu czasu trwania lub jeśli eksperyment zostanie anulowany.
Wymagania wstępne Brak.
Urn urn:csci:microsoft:agent:diskIOPressure/1.1
Parametry (klucz, wartość)
pressureMode Tryb ustawień wstępnych ciśnienia dysku, który ma zostać dodany do podstawowego magazynu maszyny wirtualnej. Musi być jednym z PressureModes elementów w poniższej tabeli.
targetTempDirectory (Opcjonalnie) Katalog, który ma być używany do stosowania ciśnienia dysku. Na przykład D:/Temp. Jeśli parametr nie jest uwzględniony, ciśnienie jest dodawane do dysku podstawowego.
virtualMachineScaleSetInstances Tablica identyfikatorów wystąpień podczas stosowania tego błędu do zestawu skalowania maszyn wirtualnych. Wymagane w przypadku zestawów skalowania maszyn wirtualnych w trybie jednolitej aranżacji. Dowiedz się więcej o identyfikatorach wystąpień.

Tryby ciśnienia

Tryb ciśnienia opis
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
Wartość domyślna numberOfThreads = 2
randomBlockSizeInKB = 64
randomSeed = 10
numberOfIOperThread = 2
sizeOfBlocksInKB = 64
sizeOfWriteBufferInKB = 64
fileSizeInGB = 1
percentOfWriteActions = 50

Przykładowy kod 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"
    }
  ]
}

Ciśnienie we/wy dysku z systemem Linux

Właściwości Wartość
Nazwa możliwości LinuxDiskIOPressure-1.1
Typ docelowy Microsoft-Agent
Obsługiwane typy systemu operacyjnego Linux
opis Używa stress-ng do stosowania ciśnienia na dysku. Co najmniej jeden proces roboczy jest zduplikowany, który wykonuje procesy we/wy z plikami tymczasowymi. Ciśnienie jest domyślnie dodawane do dysku podstawowego lub dysku określonego za pomocą parametru targetTempDirectory. Aby uzyskać informacje na temat sposobu stosowania ciśnienia, zobacz artykuł stress-ng .
Wymagania wstępne Linux: należy zainstalować narzędzie stress-ng . Instalacja odbywa się automatycznie w ramach instalacji agenta przy użyciu domyślnego menedżera pakietów w kilku systemach operacyjnych, w tym Debiana (na przykład Ubuntu), Red Hat Enterprise Linux i OpenSUSE. W przypadku innych dystrybucji, w tym platformy Azure z systemem Linux, należy zainstalować narzędzie stress-ng ręcznie. Aby uzyskać więcej informacji, zobacz nadrzędne repozytorium projektów.
Urn urn:csci:microsoft:agent:linuxDiskIOPressure/1.1
Parametry (klucz, wartość)
workerCount Liczba procesów roboczych do uruchomienia. Ustawienie workerCount wartości 0 generuje tyle procesów roboczych, ile procesorów jest dostępnych.
fileSizePerWorker Rozmiar pliku tymczasowego, względem którego proces roboczy wykonuje operacje we/wy. Liczba całkowita plus jednostka w bajtach (b), kilobajtach (k), megabajtach (m) lub gigabajtach (g) (na przykład 4m dla 4 megabajtów i 256g 256 gigabajtów).
Blocksize Rozmiar bloku do użycia na potrzeby operacji we/wy dysku, większy niż 1 bajt i mniejszy niż 4 megabajty (maksymalna wartość to 4095k). Liczba całkowita plus jednostka w bajtach, kilobajtach lub megabajtach (na przykład 512k dla 512 kilobajtów).
targetTempDirectory (Opcjonalnie) Katalog, który ma być używany do stosowania ciśnienia dysku. Na przykład /tmp/. Jeśli parametr nie jest uwzględniony, ciśnienie jest dodawane do dysku podstawowego.
virtualMachineScaleSetInstances Tablica identyfikatorów wystąpień podczas stosowania tego błędu do zestawu skalowania maszyn wirtualnych. Wymagane w przypadku zestawów skalowania maszyn wirtualnych w trybie jednolitej aranżacji. Dowiedz się więcej o identyfikatorach wystąpień.

Przykładowy kod JSON

Te przykładowe wartości wygenerowały około 100% ciśnienia dysku podczas testowania na Standard_D2s_v3 maszynie wirtualnej przy użyciu magazynu LRS SSD w warstwie Premium. Duży plikSizePerWorker i mniejszy blockSize pomagają w pełni przeciążyć dysk.

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

Zatrzymaj usługę

Właściwości Wartość
Nazwa możliwości StopService-1.0
Typ docelowy Microsoft-Agent
Obsługiwane typy systemu operacyjnego Windows, Linux.
opis Zatrzymuje usługę systemu Windows lub systemową usługę systemu Linux podczas błędu. Uruchamia je ponownie na końcu czasu trwania lub jeśli eksperyment zostanie anulowany.
Wymagania wstępne Brak.
Urn urn:csci:microsoft:agent:stopService/1.0
Parametry (klucz, wartość)
Servicename Nazwa usługi systemu Windows lub systemu Linux, którą chcesz zatrzymać.
virtualMachineScaleSetInstances Tablica identyfikatorów wystąpień podczas stosowania tego błędu do zestawu skalowania maszyn wirtualnych. Wymagane w przypadku zestawów skalowania maszyn wirtualnych w trybie jednolitej aranżacji. Dowiedz się więcej o identyfikatorach wystąpień.

Przykładowy kod 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"
    }
  ]
}

Ograniczenia

  • Windows: nazwy wyświetlane dla usług nie są obsługiwane. Użyj sc.exe query w wierszu polecenia, aby eksplorować nazwy usług.
  • Linux: inne typy usług oprócz systemd, takie jak sysvinit, nie są obsługiwane.

Proces zabicia

Właściwości Wartość
Nazwa możliwości KillProcess-1.0
Typ docelowy Microsoft-Agent
Obsługiwane typy systemu operacyjnego Windows, Linux.
opis Zabija wszystkie uruchomione wystąpienia procesu zgodne z nazwą procesu wysyłanego w parametrach błędu. W czasie trwania ustawionym dla akcji błędu proces jest zabijany powtarzalnie na podstawie wartości określonego interwału zabicia. Ten błąd jest destrukcyjnym błędem, w którym administrator systemu musiałby ręcznie odzyskać proces, jeśli skonfigurowano jego samonaprawienie.
Wymagania wstępne Brak.
Urn urn:csci:microsoft:agent:killProcess/1.0
Parametry (klucz, wartość)
processName Nazwa procesu do ciągłego zabijania (bez .exe). Proces nie musi być uruchomiony po rozpoczęciu wykonywania błędu.
killIntervalInMilliseconds Czas oczekiwania błędu między kolejnymi próbami zabicia w milisekundach.
virtualMachineScaleSetInstances Tablica identyfikatorów wystąpień podczas stosowania tego błędu do zestawu skalowania maszyn wirtualnych. Wymagane w przypadku zestawów skalowania maszyn wirtualnych w trybie jednolitej aranżacji. Dowiedz się więcej o identyfikatorach wystąpień.

Przykładowy kod 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"
    }
  ]
}

Zmiana czasu

Właściwości Wartość
Nazwa możliwości TimeChange-1.0
Typ docelowy Microsoft-Agent
Obsługiwane typy systemu operacyjnego Windows
opis Zmienia czas systemowy maszyny wirtualnej i resetuje czas na końcu eksperymentu lub jeśli eksperyment zostanie anulowany.
Wymagania wstępne Brak.
Urn urn:csci:microsoft:agent:timeChange/1.0
Parametry (klucz, wartość)
Data i godzina Ciąg DateTime w formacie ISO8601. Jeśli YYYY-MM-DD brakuje wartości, są one domyślne dla bieżącego dnia po uruchomieniu eksperymentu. Jeśli brakuje wartości Thh:mm:ss, wartość domyślna to 12:00:00. Jeśli podano 2-cyfrowy rok (YY), jest konwertowany na 4-cyfrowy rok (YYYY) na podstawie bieżącego wieku. Jeśli brakuje strefy czasowej <Z> , domyślnym przesunięciem jest lokalna strefa czasowa. <Z> musi zawsze zawierać symbol znaku (ujemny lub dodatni).
virtualMachineScaleSetInstances Tablica identyfikatorów wystąpień podczas stosowania tego błędu do zestawu skalowania maszyn wirtualnych. Wymagane w przypadku zestawów skalowania maszyn wirtualnych w trybie jednolitej aranżacji. Dowiedz się więcej o identyfikatorach wystąpień.

Przykładowy kod 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"
    }
  ]
}

Dowolny stres-ng stressor

Właściwości Wartość
Nazwa możliwości StressNg-1.0
Typ docelowy Microsoft-Agent
Obsługiwane typy systemu operacyjnego Linux
opis Uruchamia dowolne polecenie stress-ng, przekazując argumenty bezpośrednio do stress-ng. Przydatne, gdy jedna ze wstępnie zdefiniowanych błędów stress-ng nie spełnia Twoich potrzeb.
Wymagania wstępne Linux: należy zainstalować narzędzie stress-ng . Instalacja odbywa się automatycznie w ramach instalacji agenta przy użyciu domyślnego menedżera pakietów w kilku systemach operacyjnych, w tym Debiana (na przykład Ubuntu), Red Hat Enterprise Linux i OpenSUSE. W przypadku innych dystrybucji, w tym platformy Azure z systemem Linux, należy zainstalować narzędzie stress-ng ręcznie. Aby uzyskać więcej informacji, zobacz nadrzędne repozytorium projektów.
Urn urn:csci:microsoft:agent:stressNg/1.0
Parametry (klucz, wartość)
stressNgArguments Co najmniej jeden argument przekazywany do procesu stress-ng. Aby uzyskać informacje na temat możliwych argumentów stress-ng, zobacz artykuł stress-ng . UWAGA: NIE dołączaj argumentu "-t", ponieważ spowoduje to błąd. Długość eksperymentu jest definiowana bezpośrednio w interfejsie użytkownika eksperymentu chaosu platformy Azure, A NIE w stresNgArguments.

Przykładowy kod 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"
    }
  ]
}

Szczegóły: Błędy bezpośrednie usługi

Zatrzymywanie usługi App Service

Właściwości Wartość
Nazwa możliwości Stop-1.0
Typ docelowy Microsoft-AppService
opis Zatrzymuje docelowe aplikacje usługi App Service, a następnie uruchamia je ponownie na końcu czasu trwania błędu. Ta akcja dotyczy zasobów typu "Microsoft.Web/sites", w tym usług App Service, API Apps, Mobile Apps i Azure Functions.
Wymagania wstępne Brak.
Urn urn:csci:microsoft:appService:stop/1.0
Typ błędu Ciągłe
Parametry (klucz, wartość) Brak.

Przykładowy kod JSON

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

Wyłączanie automatycznego skalowania

Właściwości Wartość
Nazwa możliwości DisaleAutoscale
Typ docelowy Microsoft-Autoscale Ustawienia
opis Wyłącza usługę autoskalowania. Gdy automatyczne skalowanie jest wyłączone, zasoby, takie jak zestawy skalowania maszyn wirtualnych, aplikacje internetowe, usługa Service Bus i inne , nie są automatycznie dodawane ani usuwane na podstawie obciążenia aplikacji.
Wymagania wstępne Zasób automatycznego skalowania, który jest włączony w zasobie, musi zostać dołączony do programu Chaos Studio.
Urn urn:csci:microsoft:autoscalesettings:disableAutoscale/1.0
Typ błędu Ciągłe
Parametry (klucz, wartość)
enableOnComplete Wartość logiczna. Określa, czy autoskalowanie jest ponownie możliwe po wykonaniu akcji. Wartość domyślna to true.

Przykładowy kod JSON

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

Właściwości Wartość
Nazwa możliwości NetworkChaos-2.1
Typ docelowy Microsoft-AzureKubernetesServiceChaosMesh
Obsługiwane typy systemu operacyjnego puli węzłów Linux
opis Powoduje wystąpienie błędu sieciowego dostępnego za pośrednictwem usługi Chaos Mesh w klastrze usługi Azure Kubernetes Service (AKS). Przydatne w przypadku ponownego tworzenia zdarzeń usługi AKS, które wynikają z awarii sieci, opóźnień, duplikacji, utraty i uszkodzenia.
Wymagania wstępne Klaster usługi AKS musi mieć wdrożony usługę Chaos Mesh.
Urn urn:csci:microsoft:azureKubernetesServiceChaosMesh:networkChaos/2.1
Parametry (klucz, wartość)
jsonSpec Specyfikacja usługi Chaos Mesh sformatowana w formacie JSON, która używa rodzaju NetworkChaos. Możesz użyć konwertera YAML-to-JSON, takiego jak Konwertowanie kodu YAML na format JSON w celu przekonwertowania kodu YAML usługi Chaos Mesh na format JSON i zmifikowania go. Użyj cudzysłowów w formacie JSON lub uniknij cudzysłowów znakiem ukośnika odwrotnego. Uwzględnij tylko kod YAML we jsonSpec właściwości . Nie dołączaj informacji, takich jak metadane i rodzaj. Określenie czasu trwania w obiekcie jsonSpec nie jest konieczne, ale jest używane, jeśli jest dostępne.

Przykładowy kod 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"
    }
  ]
}

AKS Chaos Mesh Pod Chaos

Właściwości Wartość
Nazwa możliwości PodChaos-2.1
Typ docelowy Microsoft-AzureKubernetesServiceChaosMesh
Obsługiwane typy systemu operacyjnego puli węzłów Linux
opis Powoduje wystąpienie błędu zasobnika dostępnego za pośrednictwem usługi Chaos Mesh w przypadku klastra usługi AKS. Przydatne w przypadku ponownego tworzenia zdarzeń usługi AKS, które są wynikiem awarii zasobnika lub problemów z kontenerem.
Wymagania wstępne Klaster usługi AKS musi mieć wdrożony usługę Chaos Mesh.
Urn urn:csci:microsoft:azureKubernetesServiceChaosMesh:podChaos/2.1
Parametry (klucz, wartość)
jsonSpec Specyfikacja usługi Chaos Mesh sformatowana w formacie JSON, która używa rodzaju PodChaos. Możesz użyć konwertera YAML-to-JSON, takiego jak Konwertowanie kodu YAML na format JSON w celu przekonwertowania kodu YAML usługi Chaos Mesh na format JSON i zmifikowania go. Użyj cudzysłowów w formacie JSON lub uniknij cudzysłowów znakiem ukośnika odwrotnego. Uwzględnij tylko kod YAML we jsonSpec właściwości . Nie dołączaj informacji, takich jak metadane i rodzaj. Określenie czasu trwania w obiekcie jsonSpec nie jest konieczne, ale jest używane, jeśli jest dostępne.

Przykładowy kod 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"
    }
  ]
}

AKS Chaos Mesh Stress Chaos

Właściwości Wartość
Nazwa możliwości StressChaos-2.1
Typ docelowy Microsoft-AzureKubernetesServiceChaosMesh
Obsługiwane typy systemu operacyjnego puli węzłów Linux
opis Powoduje wystąpienie błędu przeciążonego dostępnego za pośrednictwem usługi Chaos Mesh w celu uruchomienia klastra usługi AKS. Przydatne w przypadku ponownego tworzenia zdarzeń usługi AKS z powodu stresu związanego z kolekcją zasobników, na przykład ze względu na wysokie użycie procesora CPU lub pamięci.
Wymagania wstępne Klaster usługi AKS musi mieć wdrożony usługę Chaos Mesh.
Urn urn:csci:microsoft:azureKubernetesServiceChaosMesh:stressChaos/2.1
Parametry (klucz, wartość)
jsonSpec Specyfikacja usługi Chaos Mesh sformatowana w formacie JSON, która używa rodzaju StressChaos. Możesz użyć konwertera YAML-to-JSON, takiego jak Konwertowanie kodu YAML na format JSON w celu przekonwertowania kodu YAML usługi Chaos Mesh na format JSON i zmifikowania go. Użyj cudzysłowów w formacie JSON lub uniknij cudzysłowów znakiem ukośnika odwrotnego. Uwzględnij tylko kod YAML we jsonSpec właściwości . Nie dołączaj informacji, takich jak metadane i rodzaj. Określenie czasu trwania w obiekcie jsonSpec nie jest konieczne, ale jest używane, jeśli jest dostępne.

Przykładowy kod 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"
    }
  ]
}

AKS Chaos Mesh IO Chaos

Właściwości Wartość
Nazwa możliwości IOChaos-2.1
Typ docelowy Microsoft-AzureKubernetesServiceChaosMesh
Obsługiwane typy systemu operacyjnego puli węzłów Linux
opis Powoduje, że błąd we/wy dostępny za pośrednictwem usługi Chaos Mesh jest uruchamiany względem klastra usługi AKS. Przydatne w przypadku ponownego tworzenia zdarzeń usługi AKS z powodu opóźnień we/wy i błędów odczytu/zapisu podczas korzystania z wywołań systemowych we/wy, takich jak open, readi write.
Wymagania wstępne Klaster usługi AKS musi mieć wdrożony usługę Chaos Mesh.
Urn urn:csci:microsoft:azureKubernetesServiceChaosMesh:IOChaos/2.1
Parametry (klucz, wartość)
jsonSpec Specyfikacja usługi Chaos Mesh sformatowana w formacie JSON, która używa rodzaju IOChaos. Możesz użyć konwertera YAML-to-JSON, takiego jak Konwertowanie kodu YAML na format JSON w celu przekonwertowania kodu YAML usługi Chaos Mesh na format JSON i zmifikowania go. Użyj cudzysłowów w formacie JSON lub uniknij cudzysłowów znakiem ukośnika odwrotnego. Uwzględnij tylko kod YAML we jsonSpec właściwości . Nie dołączaj informacji, takich jak metadane i rodzaj. Określenie czasu trwania w obiekcie jsonSpec nie jest konieczne, ale jest używane, jeśli jest dostępne.

Przykładowy kod 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"
    }
  ]
}

AKS Chaos Mesh Time Chaos

Właściwości Wartość
Nazwa możliwości TimeChaos-2.1
Typ docelowy Microsoft-AzureKubernetesServiceChaosMesh
Obsługiwane typy systemu operacyjnego puli węzłów Linux
opis Powoduje zmianę zegara systemowego w klastrze usługi AKS przy użyciu usługi Chaos Mesh. Przydatne w przypadku ponownego tworzenia zdarzeń usługi AKS, które wynikają z braku synchronizacji systemów rozproszonych, brakujących/niepoprawnych rok przestępny/drugą logikę skoku i nie tylko.
Wymagania wstępne Klaster usługi AKS musi mieć wdrożony usługę Chaos Mesh.
Urn urn:csci:microsoft:azureKubernetesServiceChaosMesh:timeChaos/2.1
Parametry (klucz, wartość)
jsonSpec Specyfikacja usługi Chaos Mesh sformatowana w formacie JSON, która używa typu TimeChaos. Możesz użyć konwertera YAML-to-JSON, takiego jak Konwertowanie kodu YAML na format JSON w celu przekonwertowania kodu YAML usługi Chaos Mesh na format JSON i zmifikowania go. Użyj cudzysłowów w formacie JSON lub uniknij cudzysłowów znakiem ukośnika odwrotnego. Uwzględnij tylko kod YAML we jsonSpec właściwości . Nie dołączaj informacji, takich jak metadane i rodzaj. Określenie czasu trwania w obiekcie jsonSpec nie jest konieczne, ale jest używane, jeśli jest dostępne.

Przykładowy kod 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 jądra siatki usługi AKS Chaos Chaos

Właściwości Wartość
Nazwa możliwości KernelChaos-2.1
Typ docelowy Microsoft-AzureKubernetesServiceChaosMesh
Obsługiwane typy systemu operacyjnego puli węzłów Linux
opis Powoduje, że błąd jądra dostępny za pośrednictwem usługi Chaos Mesh jest uruchamiany względem klastra usługi AKS. Przydatne w przypadku ponownego tworzenia zdarzeń usługi AKS z powodu błędów na poziomie jądra systemu Linux, takich jak niepowodzenie instalacji lub brak przydzielania pamięci.
Wymagania wstępne Klaster usługi AKS musi mieć wdrożony usługę Chaos Mesh.
Urn urn:csci:microsoft:azureKubernetesServiceChaosMesh:kernelChaos/2.1
Parametry (klucz, wartość)
jsonSpec Specyfikacja usługi Chaos Mesh sformatowana w formacie JSON, która używa rodzaju JądraChaos. Możesz użyć konwertera YAML-to-JSON, takiego jak Konwertowanie kodu YAML na format JSON w celu przekonwertowania kodu YAML usługi Chaos Mesh na format JSON i zmifikowania go. Użyj cudzysłowów w formacie JSON lub uniknij cudzysłowów znakiem ukośnika odwrotnego. Uwzględnij tylko kod YAML we jsonSpec właściwości . Nie dołączaj informacji, takich jak metadane i rodzaj. Określenie czasu trwania w obiekcie jsonSpec nie jest konieczne, ale jest używane, jeśli jest dostępne.

Przykładowy kod 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"
    }
  ]
}

AKS Chaos Mesh HTTP Chaos

Właściwości Wartość
Nazwa możliwości HTTPChaos-2.1
Typ docelowy Microsoft-AzureKubernetesServiceChaosMesh
Obsługiwane typy systemu operacyjnego puli węzłów Linux
opis Powoduje, że błąd HTTP dostępny za pośrednictwem usługi Chaos Mesh jest uruchamiany względem klastra usługi AKS. Przydatne w przypadku ponownego tworzenia zdarzeń z powodu błędów żądania HTTP i przetwarzania odpowiedzi, takich jak opóźnienia lub nieprawidłowe odpowiedzi.
Wymagania wstępne Klaster usługi AKS musi mieć wdrożony usługę Chaos Mesh.
Urn urn:csci:microsoft:azureKubernetesServiceChaosMesh:httpChaos/2.1
Parametry (klucz, wartość)
jsonSpec Specyfikacja usługi Chaos Mesh sformatowana w formacie JSON, która używa typu HTTPChaos. Możesz użyć konwertera YAML-to-JSON, takiego jak Konwertowanie kodu YAML na format JSON w celu przekonwertowania kodu YAML usługi Chaos Mesh na format JSON i zmifikowania go. Użyj cudzysłowów w formacie JSON lub uniknij cudzysłowów znakiem ukośnika odwrotnego. Uwzględnij tylko kod YAML we jsonSpec właściwości . Nie dołączaj informacji, takich jak metadane i rodzaj. Określenie czasu trwania w obiekcie jsonSpec nie jest konieczne, ale jest używane, jeśli jest dostępne.

Przykładowy kod 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"
    }
  ]
}

AKS Chaos Mesh DNS Chaos

Właściwości Wartość
Nazwa możliwości DNSChaos-2.1
Typ docelowy Microsoft-AzureKubernetesServiceChaosMesh
Obsługiwane typy systemu operacyjnego puli węzłów Linux
opis Powoduje, że błąd DNS dostępny za pośrednictwem usługi Chaos Mesh jest uruchamiany względem klastra usługi AKS. Przydatne do ponownego tworzenia zdarzeń z powodu błędów DNS.
Wymagania wstępne Klaster usługi AKS musi mieć wdrożony usługę Chaos Mesh, a usługa DNS musi być zainstalowana.
Urn urn:csci:microsoft:azureKubernetesServiceChaosMesh:dnsChaos/2.1
Parametry (klucz, wartość)
jsonSpec Specyfikacja usługi Chaos Mesh sformatowana w formacie JSON, która używa typu DNSChaos. Możesz użyć konwertera YAML-to-JSON, takiego jak Konwertowanie kodu YAML na format JSON w celu przekonwertowania kodu YAML usługi Chaos Mesh na format JSON i zmifikowania go. Użyj cudzysłowów w formacie JSON lub uniknij cudzysłowów znakiem ukośnika odwrotnego. Uwzględnij tylko kod YAML we jsonSpec właściwości . Nie dołączaj informacji, takich jak metadane i rodzaj. Określenie czasu trwania w obiekcie jsonSpec nie jest konieczne, ale jest używane, jeśli jest dostępne.

Przykładowy kod 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"
    }
  ]
}

Zamykanie usług w chmurze (wersja klasyczna)

Właściwości Wartość
Nazwa możliwości Shutdown-1.0
Typ docelowy Microsoft-DomainName
opis Zatrzymuje wdrożenie podczas błędu. Uruchamia ponownie wdrożenie na końcu czasu trwania błędu lub jeśli eksperyment zostanie anulowany.
Wymagania wstępne Brak.
Urn urn:csci:microsoft:domainName:shutdown/1.0
Typ błędu Ciągłe
Parametry Brak.

Przykładowy kod JSON

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

Azure Cache for Redis (ponowny rozruch)

Właściwości Wartość
Nazwa możliwości Reboot-1.0
Typ docelowy Microsoft-AzureClusteredCacheForRedis
opis Powoduje, że operacja wymuszonego ponownego rozruchu jest wykonywana na obiekcie docelowym w celu symulowania krótkiej awarii.
Wymagania wstępne Nie dotyczy
Urn urn:csci:microsoft:azureClusteredCacheForRedis:reboot/1.0
Typ błędu Dyskretnych.
Parametry (klucz, wartość)
rebootType Typy węzłów, w których ma zostać wykonana akcja ponownego rozruchu, które można określić jako PrimaryNode, SecondaryNode lub AllNodes.
identyfikator fragmentu Identyfikator fragmentu do ponownego uruchomienia. Dotyczy tylko pamięci podręcznych w warstwie Premium.

Przykładowy kod 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"
    }
  ]
}

Ograniczenia

  • Błąd ponownego rozruchu powoduje, że wymuszony ponowny rozruch lepiej zasymuluje zdarzenie awarii, co oznacza, że istnieje możliwość utraty danych.
  • Błąd ponownego rozruchu jest dyskretnym typem błędu. W przeciwieństwie do błędów ciągłych, jest to jednorazowa akcja i nie ma czasu trwania.

Cosmos DB Failover

Właściwości Wartość
Nazwa możliwości Tryb failover-1.0
Typ docelowy Microsoft-CosmosDB
opis Powoduje, że konto usługi Azure Cosmos DB z pojedynczym regionem zapisu przełączy się w tryb failover do określonego regionu odczytu w celu symulowania awarii regionu zapisu.
Wymagania wstępne Brak.
Urn urn:csci:microsoft:cosmosDB:failover/1.0
Parametry (klucz, wartość)
readRegion Region odczytu, który powinien zostać podwyższony do regionu zapisu podczas pracy w trybie failover, na przykład East US 2.

Przykładowy kod 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"
    }
  ]
}

Zmienianie stanu centrum zdarzeń

Właściwości Wartość
Nazwa możliwości ChangeEventHubState-1.0
Typ docelowy Microsoft-EventHub
opis Ustawia poszczególne centra zdarzeń na żądany stan w przestrzeni nazw usługi Azure Event Hubs. Możesz mieć wpływ na określone nazwy centrum zdarzeń lub użyć znaku "*", aby wpłynąć na wszystkie przestrzeń nazw. Ta akcja może pomóc w przetestowaniu infrastruktury obsługi komunikatów pod kątem scenariuszy konserwacji lub awarii. Jest to dyskretny błąd, więc jednostka nie zostanie automatycznie zwrócona do stanu początkowego.
Wymagania wstępne Przestrzeń nazw usługi Azure Event Hubs z co najmniej jedną jednostką centrum zdarzeń.
Urn urn:csci:microsoft:eventHub:changeEventHubState/1.0
Typ błędu Dyskretnych.
Parametry (klucz, wartość)
desiredState Żądany stan dla docelowych centrów zdarzeń. Możliwe stany to Aktywne, Wyłączone i SendDisabled.
eventHubs Rozdzielona przecinkami lista nazw centrum zdarzeń w docelowej przestrzeni nazw. Użyj znaku "*", aby wpłynąć na wszystkie jednostki w przestrzeni nazw.

Przykładowy kod 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: Odmowa dostępu

Właściwości Wartość
Nazwa możliwości DenyAccess-1.0
Typ docelowy Microsoft-KeyVault
opis Blokuje cały dostęp sieciowy do magazynu kluczy przez tymczasowe zmodyfikowanie reguł sieci magazynu kluczy. Ta akcja uniemożliwia aplikacji zależne od magazynu kluczy uzyskiwanie dostępu do wpisów tajnych, kluczy i/lub certyfikatów. Jeśli magazyn kluczy zezwala na dostęp do wszystkich sieci, to ustawienie zostanie zmienione tak, aby zezwalało na dostęp tylko z wybranych sieci. Na początku błędu nie ma dozwolonych sieci wirtualnych. Wszystkie sieci są dozwolone na końcu czasu trwania błędu. Jeśli magazyn kluczy ma zezwalać na dostęp tylko z wybranych sieci, wszystkie sieci wirtualne na liście dozwolonych zostaną usunięte na początku błędu. Są one przywracane na końcu czasu trwania błędu.
Wymagania wstępne Docelowy magazyn kluczy nie może mieć żadnych reguł zapory i nie może być ustawiony tak, aby umożliwić usługom platformy Azure obejście zapory. Jeśli docelowy magazyn kluczy jest ustawiony tak, aby zezwalał tylko na dostęp z wybranych sieci, musi istnieć co najmniej jedna reguła sieci wirtualnej. Magazyn kluczy nie może być w trybie odzyskiwania.
Urn urn:csci:microsoft:keyVault:denyAccess/1.0
Typ błędu Ciągłe
Parametry (klucz, wartość) Brak.

Przykładowy kod JSON

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

Key Vault: wyłączanie certyfikatu

Właściwości Wartość
Nazwa możliwości DisableCertificate-1.0
Typ docelowy Microsoft-KeyVault
opis Przy użyciu właściwości certyfikatu błąd wyłącza certyfikat przez określony czas (dostarczony przez użytkownika). Włącza certyfikat po upływie tego czasu trwania błędu.
Wymagania wstępne Brak.
Urn urn:csci:microsoft:keyvault:disableCertificate/1.0
Typ błędu Ciągłe
Parametry (klucz, wartość)
nazwa_certyfikatu Nazwa certyfikatu usługi Azure Key Vault, na którym jest wykonywany błąd.
version Wersja certyfikatu, która powinna być wyłączona. Jeśli nie zostanie określona, najnowsza wersja zostanie wyłączona.

Przykładowy kod 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"
    }
  ]
}

Key Vault: wersja certyfikatu przyrostowego

Właściwości Wartość
Nazwa możliwości IncrementCertificateVersion-1.0
Typ docelowy Microsoft-KeyVault
opis Generuje nową wersję certyfikatu i odcisk palca przy użyciu biblioteki klienta certyfikatu usługi Key Vault. Bieżący certyfikat roboczy jest uaktualniany do tej wersji. Wersja certyfikatu nie jest przywracana po czasie trwania błędu.
Wymagania wstępne Brak.
Urn urn:csci:microsoft:keyvault:incrementCertificateVersion/1.0
Typ błędu Dyskretnych.
Parametry (klucz, wartość)
nazwa_certyfikatu Nazwa certyfikatu usługi Azure Key Vault, na którym jest wykonywany błąd.

Przykładowy kod 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"
    }
  ]
}

Key Vault: aktualizowanie zasad certyfikatów

Właściwości Wartość
Nazwa możliwości UpdateCertificatePolicy-1.0
Typ docelowy Microsoft-KeyVault
opis Zasady certyfikatów (na przykład okres ważności certyfikatu, typ certyfikatu, rozmiar klucza lub typ klucza) są aktualizowane na podstawie danych wejściowych użytkownika i przywracanych po czasie trwania błędu.
Wymagania wstępne Brak.
Urn urn:csci:microsoft:keyvault:updateCertificatePolicy/1.0
Typ błędu Ciągłe
Parametry (klucz, wartość)
nazwa_certyfikatu Nazwa certyfikatu usługi Azure Key Vault, na którym jest wykonywany błąd.
version Wersja certyfikatu, która powinna zostać zaktualizowana. Jeśli nie zostanie określona, najnowsza wersja zostanie zaktualizowana.
enabled Wartość logiczna. Wartość wskazująca, czy nowa wersja certyfikatu jest włączona.
validityInMonths Okres ważności certyfikatu w miesiącach.
certificateTransparency Wskazuje, czy certyfikat powinien zostać opublikowany na liście przezroczystości certyfikatu podczas tworzenia.
certificateType Typ certyfikatu.
Contenttype Typ zawartości certyfikatu. Na przykład jest to Pkcs12, gdy certyfikat zawiera nieprzetworzone bajty PFX lub Pem, gdy zawiera bajty zakodowane w formacie ASCII PEM. Pkcs12 jest wartością domyślną przyjętą.
Keysize Rozmiar klucza RSA: 2048, 3072 lub 4096.
Eksportowalny Wartość logiczna. Wartość wskazująca, czy klucz certyfikatu można wyeksportować z magazynu lub bezpiecznego magazynu certyfikatów.
reuseKey Wartość logiczna. Wartość wskazująca, czy klucz certyfikatu powinien być ponownie używany podczas rotacji certyfikatu.
Keytype Typ klucza zapasowego generowanego podczas wystawiania nowych certyfikatów, takich jak RSA lub EC.

Przykładowy kod 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"
    }
  ]
}

Reguła zabezpieczeń sieciowej grupy zabezpieczeń

Właściwości Wartość
Nazwa możliwości SecurityRule-1.0
Typ docelowy Microsoft-NetworkSecurityGroup
opis Umożliwia manipulowanie lub tworzenie reguł w istniejącej sieciowej grupie zabezpieczeń platformy Azure lub w zestawie sieciowych grup zabezpieczeń platformy Azure, przy założeniu, że definicja reguły ma zastosowanie w grupach zabezpieczeń. Przydatne w następujących celach:
  • Symulowanie awarii zależności podrzędnej lub między regionami/niezależności.
  • Symulowanie zdarzenia, które ma wyzwolić logikę w celu wymuszenia przejścia w tryb failover usługi.
  • Symulowanie zdarzenia, które ma wyzwolić akcję z usługi monitorowania lub zarządzania stanem.
  • Użycie jako alternatywy dla blokowania lub zezwalania na ruch sieciowy, w którym nie można wdrożyć agenta Chaosu.
Wymagania wstępne Brak.
Urn urn:csci:microsoft:networkSecurityGroup:securityRule/1.0
Parametry (klucz, wartość)
name Unikatowa nazwa utworzonej reguły zabezpieczeń. Błąd kończy się niepowodzeniem, jeśli inna reguła już istnieje w sieciowej grupie zabezpieczeń o tej samej nazwie. Musi zaczynać się literą lub cyfrą. Musi kończyć się literą, cyfrą lub podkreśleniem. Może zawierać tylko litery, cyfry, podkreślenia, kropki lub łączniki.
Protokół Protokół reguły zabezpieczeń. Musi to być dowolny, TCP, UDP lub ICMP.
sourceAddresses Ciąg reprezentujący rozdzielaną JSON tablicę adresów IP w formacie CIDR. Może być również nazwą tagu usługi dla reguły ruchu przychodzącego, na przykład AppService. Gwiazdka * może być również używana do dopasowania wszystkich źródłowych adresów IP.
destinationAddresses Ciąg reprezentujący rozdzielaną JSON tablicę adresów IP w formacie CIDR. Może również być nazwą tagu usługi dla reguły ruchu wychodzącego, na przykład AppService. Gwiazdka * może być również używana do dopasowania wszystkich docelowych adresów IP.
action Typ dostępu grupy zabezpieczeń. Musi mieć wartość Zezwalaj lub Odmawiaj.
destinationPortRanges Ciąg reprezentujący rozdzielaną JSON tablicę pojedynczych portów i/lub zakresów portów, takich jak 80 lub 1024-65535.
sourcePortRanges Ciąg reprezentujący rozdzielaną JSON tablicę pojedynczych portów i/lub zakresów portów, takich jak 80 lub 1024-65535.
priority Wartość z zakresu od 100 do 4096, która jest unikatowa dla wszystkich reguł zabezpieczeń w sieciowej grupie zabezpieczeń. Błąd kończy się niepowodzeniem, jeśli w sieciowej grupie zabezpieczeń istnieje już inna reguła o tym samym priorytetzie.
kierunek Kierunek ruchu, którego dotyczy reguła zabezpieczeń. Musi być przychodzący lub wychodzący.

Przykładowy kod 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" 
    } 
  ] 
} 

Ograniczenia

  • Błąd można zastosować tylko do istniejącej sieciowej grupy zabezpieczeń.
  • Gdy zostanie zastosowana reguła sieciowej grupy zabezpieczeń, która ma blokować ruch, istniejące połączenia nie zostaną przerwane, dopóki nie będą bezczynne przez 4 minuty. Jednym z obejść jest dodanie innej gałęzi w tym samym kroku, która używa błędu, który spowoduje przerwanie istniejących połączeń po zastosowaniu błędu sieciowej grupy zabezpieczeń. Na przykład zabicie procesu, tymczasowe zatrzymanie usługi lub ponowne uruchomienie maszyny wirtualnej spowoduje zresetowanie połączeń.
  • Reguły są stosowane na początku akcji. Wszelkie zmiany zewnętrzne reguły w czasie trwania akcji powodują niepowodzenie eksperymentu.
  • Tworzenie lub modyfikowanie reguł grupy zabezpieczeń aplikacji nie jest obsługiwane.
  • Wartości priorytetów muszą być unikatowe dla każdej docelowej sieciowej grupy zabezpieczeń. Próba utworzenia nowej reguły, która ma taką samą wartość priorytetu jak inna, powoduje niepowodzenie eksperymentu.

Service Bus: Zmienianie stanu kolejki

Właściwości Wartość
Nazwa możliwości ChangeQueueState-1.0
Typ docelowy Microsoft-ServiceBus
opis Ustawia jednostki kolejki w przestrzeni nazw usługi Service Bus na żądany stan. Możesz mieć wpływ na określone nazwy jednostek lub użyć ciągu "*", aby wpłynąć na wszystkie jednostki. Ta akcja może pomóc w przetestowaniu infrastruktury obsługi komunikatów pod kątem scenariuszy konserwacji lub awarii. Jest to dyskretny błąd, więc jednostka nie zostanie automatycznie zwrócona do stanu początkowego.
Wymagania wstępne Przestrzeń nazw usługi Service Bus z co najmniej jedną jednostką kolejki.
Urn urn:csci:microsoft:serviceBus:changeQueueState/1.0
Typ błędu Dyskretnych.
Parametry (klucz, wartość)
desiredState Żądany stan dla kolejek docelowych. Możliwe stany to Active, Disabled, SendDisabled i ReceiveDisabled.
kolejki Rozdzielona przecinkami lista nazw kolejek w docelowej przestrzeni nazw. Użyj znaku "*", aby wpłynąć na wszystkie kolejki w przestrzeni nazw.

Przykładowy kod 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"
    }
  ]
}

Ograniczenia

  • Do tego błędu można przekazać maksymalnie 1000 jednostek kolejki.

Service Bus: Zmienianie stanu subskrypcji

Właściwości Wartość
Nazwa możliwości ChangeSubscriptionState-1.0
Typ docelowy Microsoft-ServiceBus
opis Ustawia jednostki Subskrypcji w przestrzeni nazw usługi Service Bus i Temat na żądany stan. Możesz mieć wpływ na określone nazwy jednostek lub użyć ciągu "*", aby wpłynąć na wszystkie jednostki. Ta akcja może pomóc w przetestowaniu infrastruktury obsługi komunikatów pod kątem scenariuszy konserwacji lub awarii. Jest to dyskretny błąd, więc jednostka nie zostanie automatycznie zwrócona do stanu początkowego.
Wymagania wstępne Przestrzeń nazw usługi Service Bus z co najmniej jedną jednostką Subskrypcja.
Urn urn:csci:microsoft:serviceBus:changeSubscriptionState/1.0
Typ błędu Dyskretnych.
Parametry (klucz, wartość)
desiredState Żądany stan dla subskrypcji docelowych. Możliwe stany to Aktywne i Wyłączone.
topic Temat nadrzędny zawierający co najmniej jedną subskrypcję, która ma wpływ.
subskrypcje Rozdzielona przecinkami lista nazw subskrypcji w docelowej przestrzeni nazw. Użyj znaku "*", aby wpłynąć na wszystkie subskrypcje w przestrzeni nazw.

Przykładowy kod 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"
    }
  ]
}

Ograniczenia

  • Do tej błędu można przekazać maksymalnie 1000 jednostek subskrypcji.

Service Bus: Zmienianie stanu tematu

Właściwości Wartość
Nazwa możliwości ChangeTopicState-1.0
Typ docelowy Microsoft-ServiceBus
opis Ustawia określone jednostki tematu w przestrzeni nazw usługi Service Bus na żądany stan. Możesz mieć wpływ na określone nazwy jednostek lub użyć ciągu "*", aby wpłynąć na wszystkie jednostki. Ta akcja może pomóc w przetestowaniu infrastruktury obsługi komunikatów pod kątem scenariuszy konserwacji lub awarii. Jest to dyskretny błąd, więc jednostka nie zostanie automatycznie zwrócona do stanu początkowego.
Wymagania wstępne Przestrzeń nazw usługi Service Bus z co najmniej jedną jednostką Temat.
Urn urn:csci:microsoft:serviceBus:changeTopicState/1.0
Typ błędu Dyskretnych.
Parametry (klucz, wartość)
desiredState Żądany stan dla tematów docelowych. Możliwe stany to Aktywne i Wyłączone.
Tematy Rozdzielona przecinkami lista nazw tematów w docelowej przestrzeni nazw. Użyj znaku "*", aby wpłynąć na wszystkie tematy w przestrzeni nazw.

Przykładowy kod JSON

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

Ograniczenia

  • Do tej błędu można przekazać maksymalnie 1000 jednostek tematu.

Ponowne wdrażanie maszyny wirtualnej

Właściwości Wartość
Nazwa możliwości Ponowne wdrażanie-1.0
Typ docelowy Microsoft-VirtualMachine
opis Ponownie wdraża maszynę wirtualną, zamykając ją, przenosząc ją do nowego węzła w infrastrukturze platformy Azure i zasilając ją z powrotem. Pomaga to zweryfikować odporność obciążenia na zdarzenia konserwacji.
Wymagania wstępne Brak.
Urn urn:csci:microsoft:virtualMachine:redeploy/1.0
Typ błędu Dyskretnych.
Parametry (klucz, wartość) Brak.

Przykładowy kod JSON

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

Ograniczenia

  • Operacja ponownego wdrażania maszyny wirtualnej jest ograniczana w ciągu 10 godzin. Jeśli eksperyment zakończy się niepowodzeniem z powodu błędu "Zbyt wiele ponownych żądań", poczekaj 10 godzin, aby ponowić próbę eksperymentu.

Zamykanie maszyny wirtualnej

Właściwości Wartość
Nazwa możliwości Shutdown-1.0
Typ docelowy Microsoft-VirtualMachine
Obsługiwane typy systemu operacyjnego Windows, Linux.
opis Wyłącza maszynę wirtualną przez czas trwania błędu. Uruchamia je ponownie na końcu eksperymentu lub jeśli eksperyment zostanie anulowany. Obsługiwane są tylko maszyny wirtualne usługi Azure Resource Manager.
Wymagania wstępne Brak.
Urn urn:csci:microsoft:virtualMachine:shutdown/1.0
Parametry (klucz, wartość)
abruptShutdown (Opcjonalnie) Wartość logiczna wskazująca, czy maszyna wirtualna powinna zostać bezpiecznie zamknięta lub nagle (destrukcyjna).

Przykładowy kod JSON

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

Zamykanie usługi VMSS

Ta usterka ma dwie dostępne wersje, których można użyć: Wersja 1.0 i Wersja 2.0. Główną różnicą jest to, że wersja 2.0 umożliwia filtrowanie według stref dostępności, zamykanie tylko wystąpień w określonej strefie lub strefach.

Zamknięcie usługi VMSS w wersji 1.0

Właściwości Wartość
Nazwa możliwości Wersja 1.0
Typ docelowy Microsoft-VirtualMachineScaleSet
Obsługiwane typy systemu operacyjnego Windows, Linux.
opis Zamyka lub zabija wystąpienie zestawu skalowania maszyn wirtualnych podczas błędu i uruchamia ponownie maszynę wirtualną na końcu czasu trwania błędu lub jeśli eksperyment zostanie anulowany.
Wymagania wstępne Brak.
Urn urn:csci:microsoft:virtualMachineScaleSet:shutdown/1.0
Parametry (klucz, wartość)
abruptShutdown (Opcjonalnie) Wartość logiczna wskazująca, czy wystąpienie zestawu skalowania maszyn wirtualnych powinno zostać bezpiecznie zamknięte lub nagle (destrukcyjne).
wystąpienia Ciąg, który jest rozdzielaną tablicą identyfikatorów wystąpień zestawu skalowania maszyn wirtualnych, do których zastosowano błąd.
Przykładowy kod JSON w wersji 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"
    }
  ]
}

Zamknięcie usługi VMSS w wersji 2.0

Właściwości Wartość
Nazwa możliwości Shutdown-2.0
Typ docelowy Microsoft-VirtualMachineScaleSet
Obsługiwane typy systemu operacyjnego Windows, Linux.
opis Wyłącza lub zabija wystąpienie zestawu skalowania maszyn wirtualnych podczas błędu. Uruchamia ponownie maszynę wirtualną na końcu czasu trwania błędu lub jeśli eksperyment zostanie anulowany. Obsługuje dynamiczne określanie wartości docelowych.
Wymagania wstępne Brak.
Urn urn:csci:microsoft:virtualMachineScaleSet:shutdown/2.0
filter (Opcjonalnie) Dostępne od wersji 2.0. Służy do filtrowania listy obiektów docelowych w selektorze. Obecnie obsługuje filtrowanie na liście stref. Filtr jest stosowany tylko do zasobów zestawu skalowania maszyn wirtualnych w strefie:
  • Jeśli nie określono żadnego filtru, ten błąd zamyka wszystkie wystąpienia w zestawie skalowania maszyn wirtualnych.
  • Eksperyment jest przeznaczony dla wszystkich wystąpień zestawu skalowania maszyn wirtualnych w określonych strefach.
  • Jeśli filtr nie zostanie skierowany do żadnych obiektów docelowych, eksperyment zakończy się niepowodzeniem.
Parametry (klucz, wartość)
abruptShutdown (Opcjonalnie) Wartość logiczna wskazująca, czy wystąpienie zestawu skalowania maszyn wirtualnych powinno zostać bezpiecznie zamknięte lub nagle (destrukcyjne).
Przykładowe fragmenty kodu JSON w wersji 2.0

Poniższe fragmenty kodu pokazują, jak skonfigurować zarówno filtrowanie dynamiczne, jak i błąd zamknięcia 2.0.

Skonfiguruj filtr pod kątem dynamicznego określania wartości docelowej:

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

Konfigurowanie błędu zamykania:

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

Ograniczenia

Obecnie obsługiwane są tylko zestawy skalowania maszyn wirtualnych skonfigurowane w trybie jednolitej aranżacji. Jeśli zestaw skalowania maszyn wirtualnych korzysta z elastycznej aranżacji, możesz użyć błędu zamykania maszyny wirtualnej usługi Azure Resource Manager, aby zamknąć wybrane wystąpienia.

Szczegóły: Akcje orkiestracji

Opóźnienie

Właściwości Wartość
Dostawca błędów Nie dotyczy
Obsługiwane typy systemu operacyjnego Nie dotyczy
opis Dodaje opóźnienie czasu przed, między lub po innych akcjach eksperymentu. Ta akcja nie jest błędem i służy do synchronizowania akcji w ramach eksperymentu. Użyj tej akcji, aby poczekać na pojawienie się błędu w usłudze lub poczekać na zakończenie działania poza eksperymentem. Na przykład eksperyment może poczekać na automatyczne przesłuchanie przed wstrzyknięciem innego błędu.
Wymagania wstępne Nie dotyczy
Urn urn:csci:microsoft:chaosStudio:timedDelay/1.0
Czas trwania Czas trwania opóźnienia w formacie ISO 8601 (na przykład PT10M).

Przykładowy kod JSON

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

Uruchamianie testu obciążeniowego (testowanie obciążenia platformy Azure)

Właściwości Wartość
Nazwa możliwości Start-1.0
Typ docelowy Microsoft-AzureLoadTest
opis Uruchamia test obciążeniowy (z usługi Azure Load Testing) na podstawie podanego identyfikatora testu obciążeniowego.
Wymagania wstępne Test obciążeniowy z prawidłowym identyfikatorem testu obciążeniowego należy utworzyć w usłudze Azure Load Testing.
Urn urn:csci:microsoft:azureLoadTest:start/1.0
Typ błędu Dyskretnych.
Parametry (klucz, wartość)
identyfikator testID Identyfikator określonego testu obciążeniowego utworzonego w usłudze Azure Load Testing.

Przykładowy kod JSON

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

Zatrzymywanie testu obciążeniowego (testowanie obciążenia platformy Azure)

Właściwości Wartość
Nazwa możliwości Stop-1.0
Typ docelowy Microsoft-AzureLoadTest
opis Zatrzymuje test obciążeniowy (z usługi Azure Load Testing) na podstawie podanego identyfikatora testu obciążeniowego.
Wymagania wstępne Test obciążeniowy z prawidłowym identyfikatorem testu obciążeniowego należy utworzyć w usłudze Azure Load Testing.
Urn urn:csci:microsoft:azureLoadTest:stop/1.0
Typ błędu Dyskretnych.
Parametry (klucz, wartość)
identyfikator testID Identyfikator określonego testu obciążeniowego utworzonego w usłudze Azure Load Testing.

Przykładowy kod JSON

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