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 | Wstrzymywanie procesu | Zakłócenia zależności, przerwy w działaniu usługi |
Windows1, Linux2 | Rozłączanie sieci | Zakłócenia sieci |
Windows1, Linux2 | Opóźnienie sieci | Obniżenie wydajności sieci |
Windows1, Linux2 | Utrata pakietów sieciowych | Problemy z niezawodnością sieci |
Windows, Linux2 | Izolacja sieciowa | Zakłócenia sieci |
Windows | Błąd DNS | Problemy z rozpoznawaniem nazw DNS |
Windows | Rozłączanie sieci (za pośrednictwem zapory) | Zakłócenia 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 | Zmiana czasu | Problemy z synchronizacją czasu |
Windows | 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 |
1 Tylko pakiety TCP/UDP. 2 Tylko ruch sieciowy wychodzący.
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 ustawieniach automatycznego skalowania.
Nazwa błędu | Odpowiednie scenariusze |
---|---|
Wyłączanie automatycznego skalowania | Utrata pojemności obliczeniowej (w przypadku użycia z zamykaniem zestawu skalowania maszyn wirtualnych) |
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 zestawu skalowania maszyn wirtualnych | Utrata mocy obliczeniowej/zakłócenia |
Zamykanie zestawu skalowania maszyn wirtualnych (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 (tylko ruch wychodzący) |
opis | Blokuje 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. |
|
Urna | urn:csci:microsoft:agent:networkDisconnect/1.1 |
Typ błędu | Ciągłe |
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.
- W przypadku uruchamiania w systemie Linux ten błąd 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 idestinationFilters
).
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. |
Urna | urn:csci:microsoft:agent:networkDisconnectViaFirewall/1.0 |
Typ błędu | Ciągłe |
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.
- Ta usterka dotyczy obecnie tylko nowych połączeń. Nie ma to wpływu na istniejące aktywne połączenia. Możesz ponownie uruchomić usługę lub proces, aby wymusić przerwanie połączeń.
- Ta usterka dotyczy obecnie tylko ruchu wychodzącego .
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. |
|
Urna | urn:csci:microsoft:agent:networkLatency/1.1 |
Typ błędu | Ciągłe |
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 idestinationFilters
). - W przypadku uruchamiania w systemie Windows błąd opóźnienia sieci obecnie działa tylko z pakietami TCP lub UDP.
- Ta usterka dotyczy obecnie tylko nowych połączeń. Nie ma to wpływu na istniejące aktywne połączenia. Możesz ponownie uruchomić usługę lub proces, aby wymusić przerwanie połączeń.
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 (tylko ruch wychodzący) |
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. |
|
Urna | urn:csci:microsoft:agent:networkPacketLoss/1.0 |
Typ błędu | Ciągłe |
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.
- W przypadku uruchamiania w systemie Linux ten błąd 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 idestinationFilters
). - Ta usterka dotyczy obecnie tylko nowych połączeń. Nie ma to wpływu na istniejące aktywne połączenia. Możesz ponownie uruchomić usługę lub proces, aby wymusić przerwanie połączeń.
Izolacja sieci
Właściwości | Wartość |
---|---|
Nazwa możliwości | NetworkIsolation-1.0 |
Typ docelowy | Microsoft-Agent |
Obsługiwane typy systemu operacyjnego | Windows, Linux (tylko ruch wychodzący) |
opis | W pełni odizolować maszynę wirtualną od połączeń sieciowych przez usunięcie wszystkich pakietów przychodzących opartych na adresach IP (w systemie Windows) i wychodzących (w systemach Windows i Linux) przez określony czas trwania. Po upływie tego czasu połączenia sieciowe zostaną ponownie włączone. Ponieważ agent zależy od ruchu sieciowego, nie można anulować tej akcji i zostanie uruchomiona do określonego czasu trwania. |
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. |
|
Urna | urn:csci:microsoft:agent:networkIsolation/1.0 |
Typ błędu | Ciągłe |
Parametry (klucz, wartość) | |
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, opcjonalnie. Dowiedz się więcej o identyfikatorach wystąpień. |
Przykładowy kod JSON
{
"name": "branchOne",
"actions": [
{
"type": "continuous",
"name": "urn:csci:microsoft:agent:networkIsolation/1.0",
"parameters": [],
"duration": "PT10M",
"selectorid": "myResources"
}
]
}
Ograniczenia
- Ponieważ agent zależy od ruchu sieciowego, nie można anulować tej akcji i zostanie uruchomiona do określonego czasu trwania. Należy zachować ostrożność.
- Ta usterka dotyczy obecnie tylko nowych połączeń. Nie ma to wpływu na istniejące aktywne połączenia. Możesz ponownie uruchomić usługę lub proces, aby wymusić przerwanie połączeń.
- W przypadku uruchamiania w systemie Linux ten błąd 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.
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ą:
|
Wymagania wstępne | Brak. |
Urna | urn:csci:microsoft:agent:dnsFailure/1.0 |
Typ błędu | Ciągłe |
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:
|
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. | |
Urna | urn:csci:microsoft:agent:cpuPressure/1.0 |
Typ błędu | Ciągłe |
Parametry (klucz, wartość) | |
ciśnieniePoszczel | Liczba całkowita z zakresu od 1 do 95 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. | |
Urna | urn:csci:microsoft:agent:physicalMemoryPressure/1.0 |
Typ błędu | Ciągłe |
Parametry (klucz, wartość) | |
ciśnieniePoszczel | Liczba całkowita z zakresu od 1 do 95 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. |
Urna | urn:csci:microsoft:agent:virtualMemoryPressure/1.0 |
Typ błędu | Ciągłe |
Parametry (klucz, wartość) | |
ciśnieniePoszczel | Liczba całkowita z zakresu od 1 do 95 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. |
Urna | urn:csci:microsoft:agent:diskIOPressure/1.1 |
Typ błędu | Ciągłe |
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. |
Urna | urn:csci:microsoft:agent:linuxDiskIOPressure/1.1 |
Typ błędu | Ciągłe |
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. |
Urna | urn:csci:microsoft:agent:stopService/1.0 |
Typ błędu | Ciągłe |
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. Należy pamiętać, że ten błąd wystąpi podczas użycia w pustym procesie nazwy, gdy jest używany z nieokreślonym interwałem lub gdy nie można odnaleźć docelowej nazwy procesu, którą chcemy zabić. |
Wymagania wstępne | Brak. |
Urna | urn:csci:microsoft:agent:killProcess/1.0 |
Typ błędu | Ciągłe |
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"
}
]
}
Wstrzymywanie procesu
Właściwości | Wartość |
---|---|
Nazwa możliwości | PauseProcess-1.0 |
Typ docelowy | Microsoft-Agent |
Obsługiwane typy systemu operacyjnego | Windows |
opis | Wstrzymuje (wstrzymuje) określone procesy przez określony czas trwania. Jeśli istnieje wiele procesów o tej samej nazwie, ten błąd zawiesza wszystkie te procesy. W czasie trwania błędu procesy są wstrzymywane powtarzalnie w określonym interwale. Po zakończeniu trwania lub anulowaniu eksperymentu procesy zostaną wznowione. |
Wymagania wstępne | Brak. |
Urna | urn:csci:microsoft:agent:pauseProcess/1.0 |
Typ błędu | Ciągłe |
Parametry (klucz, wartość) | |
processNames | Rozdzielana tablica nazw procesów JSON definiująca, które procesy mają być wstrzymane. Maksymalnie 4. Nazwa procesu może opcjonalnie zawierać rozszerzenie ".exe". |
pauseIntervalInMilliseconds | Czas oczekiwania błędu między kolejnymi próbami wstrzymania 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:pauseProcess/1.0",
"parameters": [
{
"key": "processNames",
"value": "[ \"test-0\", \"test-1.exe\" ]"
},
{
"key": "pauseIntervalInMilliseconds",
"value": "1000"
}
],
"duration": "PT10M",
"selectorid": "myResources"
}
]
}
Ograniczenia
Obecnie w parametrze processNames można wymienić maksymalnie 4 nazwy procesów.
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. |
Urna | urn:csci:microsoft:agent:timeChange/1.0 |
Typ błędu | Ciągłe |
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. |
Urna | urn:csci:microsoft:agent:stressNg/1.0 |
Typ błędu | Ciągłe |
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. |
Urna | 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 | WyłączAutoscale |
Typ docelowy | Microsoft-AutoscaleSettings |
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. |
Urna | 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.2 |
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. |
Urna | urn:csci:microsoft:azureKubernetesServiceChaosMesh:networkChaos/2.2 |
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.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
Właściwości | Wartość |
---|---|
Nazwa możliwości | PodChaos-2.2 |
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. |
Urna | urn:csci:microsoft:azureKubernetesServiceChaosMesh:podChaos/2.2 |
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.2",
"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.2 |
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. |
Urna | urn:csci:microsoft:azureKubernetesServiceChaosMesh:stressChaos/2.2 |
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.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
Właściwości | Wartość |
---|---|
Nazwa możliwości | IOChaos-2.2 |
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 , read i write . |
Wymagania wstępne | Klaster usługi AKS musi mieć wdrożony usługę Chaos Mesh. |
Urna | urn:csci:microsoft:azureKubernetesServiceChaosMesh:IOChaos/2.2 |
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.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
Właściwości | Wartość |
---|---|
Nazwa możliwości | TimeChaos-2.2 |
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. |
Urna | urn:csci:microsoft:azureKubernetesServiceChaosMesh:timeChaos/2.2 |
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.2",
"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.2 |
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. |
Urna | urn:csci:microsoft:azureKubernetesServiceChaosMesh:kernelChaos/2.2 |
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.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
Właściwości | Wartość |
---|---|
Nazwa możliwości | HTTPChaos-2.2 |
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. |
Urna | urn:csci:microsoft:azureKubernetesServiceChaosMesh:httpChaos/2.2 |
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.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
Właściwości | Wartość |
---|---|
Nazwa możliwości | DNSChaos-2.2 |
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. |
Urna | urn:csci:microsoft:azureKubernetesServiceChaosMesh:dnsChaos/2.2 |
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.2",
"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. |
Urna | 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 |
Urna | 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. |
Urna | urn:csci:microsoft:cosmosDB:failover/1.0 |
Typ błędu | Ciągłe |
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ń
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. |
Urna | 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. |
Urna | 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. |
Urna | 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. |
Urna | 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, SecurityRule-1.1 |
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:
|
Wymagania wstępne | Brak. |
Urna | urn:csci:microsoft:networkSecurityGroup:securityRule/1.0, urn:csci:microsoft:networkSecurityGroup:securityRule/1.1 |
Typ błędu | Ciągłe |
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.
- Błąd reguły zabezpieczeń sieciowej grupy zabezpieczeń w wersji 1.1 obsługuje dodatkowy
flushConnection
parametr. Ta funkcja ma aktywny znany problem: jeśliflushConnection
jest włączony, błąd może spowodować błąd "FlushingNetworkSecurityGroupConnectionIsNotEnabled". Aby tymczasowo uniknąć tego błędu, wyłączflushConnection
parametr lub użyj błędu reguły zabezpieczeń sieciowej grupy zabezpieczeń w wersji 1.0 .
Service Bus: Zmienianie stanu kolejki
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
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
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. |
Urna | 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. |
Urna | urn:csci:microsoft:virtualMachine:shutdown/1.0 |
Typ błędu | Ciągłe |
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 zestawu skalowania maszyn wirtualnych
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.
Zamykanie zestawu skalowania maszyn wirtualnych 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. |
Urna | urn:csci:microsoft:virtualMachineScaleSet:shutdown/1.0 |
Typ błędu | Ciągłe |
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"
}
]
}
Zamykanie zestawu skalowania maszyn wirtualnych 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. |
Urna | urn:csci:microsoft:virtualMachineScaleSet:shutdown/2.0 |
Typ błędu | Ciągłe |
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:
|
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 |
Urna | 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)
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)
Przykładowy kod JSON
{
"name": "branchOne",
"actions": [
{
"type": "discrete",
"name": "urn:csci:microsoft:azureLoadTest:stop/1.0",
"parameters": [
{
"key": "testID",
"value": "0"
}
],
"selectorid": "myResources"
}
]
}