Biblioteca de falhas e ações do Azure Chaos Studio
Este artigo lista as falhas que você pode usar no Chaos Studio, organizadas pelo tipo de recurso aplicável. Para entender quais atribuições de função são recomendadas para cada tipo de recurso, consulte Tipos de recursos com suporte e atribuições de função para o Azure Chaos Studio.
Falhas baseadas em agente
As falhas baseadas em agente são injetadas em instâncias de Máquinas Virtuais do Azure ou Conjunto de Dimensionamento de Máquina Virtual instalando o Agente do Chaos Studio. Encontre as opções de falha direta de serviço para esses recursos abaixo nas tabelas Máquina Virtual e Conjunto de Dimensionamento de Máquina Virtual.
Tipos de SO aplicáveis | Nome da falha | Cenários aplicáveis |
---|---|---|
Windows, Linux | Pressão da CPU | Perda de capacidade de computação, pressão de recursos |
Windows, Linux | Matar processo | Interrupção da dependência |
Windows | Pausar o processo | Interrupção da dependência, interrupção do serviço |
Windows1, Linux2 | Desconexão de rede | Interrupção da rede |
Windows1, Linux2 | Latência da rede | Degradação do desempenho da rede |
Windows1, Linux2 | Perda de pacotes de rede | Problemas de fiabilidade da rede |
Windows, Linux2 | Isolamento de rede | Interrupção da rede |
Windows | Falha de DNS | Problemas de resolução de DNS |
Windows | Desconexão de rede (via firewall) | Interrupção da rede |
Windows, Linux | Pressão da memória física | Perda de capacidade de memória, pressão de recursos |
Windows, Linux | Parar Serviço | Interrupção/reinicialização do serviço |
Windows | Mudança de hora | Problemas de sincronização de tempo |
Windows | Pressão da memória virtual | Perda de capacidade de memória, pressão de recursos |
Linux | Estressor Stress-ng Arbitrário | Testes gerais de esforço do sistema |
Linux | Pressão do Linux DiskIO | Degradação do desempenho de E/S de disco |
Windows | Pressão do DiskIO | Degradação do desempenho de E/S de disco |
Apenas 1 pacotes TCP/UDP. 2 Apenas tráfego de rede de saída.
Serviço de Aplicações
Esta seção se aplica ao tipo de Microsoft.Web/sites
recurso. Saiba mais sobre o Serviço de Aplicativo.
Nome da falha | Cenários aplicáveis |
---|---|
Parar o Serviço de Aplicativo | Interrupção do serviço |
Definições do Dimensionamento Automático
Esta seção se aplica ao tipo de Microsoft.Insights/autoscaleSettings
recurso. Saiba mais sobre as Configurações de dimensionamento automático.
Nome da falha | Cenários aplicáveis |
---|---|
Desativar o dimensionamento automático | Perda de capacidade de computação (quando usado com o Desligamento do Conjunto de Escala de Máquina Virtual) |
Azure Kubernetes Service
Esta seção se aplica ao tipo de Microsoft.ContainerService/managedClusters
recurso. Saiba mais sobre o Serviço Kubernetes do Azure.
Nome da falha | Cenários aplicáveis |
---|---|
AKS Chaos Mesh DNS Chaos | Problemas de resolução de DNS |
AKS Chaos Mesh HTTP Chaos | Interrupção da rede |
AKS Chaos Mesh IO Chaos | Degradação/pressão do disco |
AKS Chaos Mesh Kernel Chaos | Interrupção do kernel |
AKS Chaos Mesh Network Chaos | Interrupção da rede |
AKS Chaos Malha Pod Caos | Interrupção de contêineres |
AKS Chaos Malha Stress Caos | Testes de esforço do sistema |
AKS Chaos Malha Tempo Caos | Problemas de sincronização de tempo |
Serviços na nuvem (clássico)
Esta seção se aplica ao tipo de Microsoft.ClassicCompute/domainNames
recurso. Saiba mais sobre os Serviços na Nuvem (Clássicos).
Nome da falha | Cenários aplicáveis |
---|---|
Desligamento do serviço de nuvem | Perda de computação |
Cache em cluster para Redis
Esta seção se aplica ao tipo de Microsoft.Cache/redis
recurso. Saiba mais sobre o Cache em Cluster para Redis.
Nome da falha | Cenários aplicáveis |
---|---|
Cache do Azure para Redis (Reinicialização) | Interrupção de dependência (caches) |
Cosmos DB
Esta seção se aplica ao tipo de Microsoft.DocumentDB/databaseAccounts
recurso. Saiba mais sobre o Cosmos DB.
Nome da falha | Cenários aplicáveis |
---|---|
Cosmos DB Failover | Failover de banco de dados |
Hubs de Eventos
Esta seção se aplica ao tipo de Microsoft.EventHub/namespaces
recurso. Saiba mais sobre Hubs de Eventos.
Nome da falha | Cenários aplicáveis |
---|---|
Alterar o estado do Hub de Eventos | Incorreta configuração/interrupção da infraestrutura de mensagens |
Key Vault
Esta seção se aplica ao tipo de Microsoft.KeyVault/vaults
recurso. Saiba mais sobre o Key Vault.
Nome da falha | Cenários aplicáveis |
---|---|
Cofre da Chave: Negar Acesso | Recusa do certificado |
Cofre da Chave: Desativar Certificado | Interrupção do certificado |
Cofre da chave: versão do certificado de incremento | Incremento de versão do certificado |
Cofre da Chave: Atualizar Política de Certificados | Alterações/configurações incorretas da política de certificado |
Grupos de Segurança de Rede
Esta seção se aplica ao tipo de Microsoft.Network/networkSecurityGroups
recurso. Saiba mais sobre grupos de segurança de rede.
Nome da falha | Cenários aplicáveis |
---|---|
Regra de segurança do NSG | Interrupção da rede (para muitos serviços do Azure) |
Service Bus
Esta seção se aplica ao tipo de Microsoft.ServiceBus/namespaces
recurso. Saiba mais sobre o Service Bus.
Nome da falha | Cenários aplicáveis |
---|---|
Alterar o estado da fila | Incorreta configuração/interrupção da infraestrutura de mensagens |
Alterar o estado da subscrição | Incorreta configuração/interrupção da infraestrutura de mensagens |
Alterar estado do tópico | Incorreta configuração/interrupção da infraestrutura de mensagens |
Máquinas Virtuais (service-direct)
Esta seção se aplica ao tipo de Microsoft.Compute/virtualMachines
recurso. Saiba mais sobre Máquinas Virtuais.
Nome da falha | Cenários aplicáveis |
---|---|
Reimplantação de VM | Interrupção de computação, eventos de manutenção |
Desligamento da VM | Perda/interrupção de computação |
Conjunto de Dimensionamento de Máquinas Virtuais
Esta seção se aplica ao tipo de Microsoft.Compute/virtualMachineScaleSets
recurso. Saiba mais sobre Conjuntos de Dimensionamento de Máquinas Virtuais.
Nome da falha | Cenários aplicáveis |
---|---|
Desligamento do conjunto de escala da máquina virtual | Perda/interrupção de computação |
Desligamento do conjunto de escala da máquina virtual (2.0) | Perda/interrupção de computação (por zona de disponibilidade) |
Ações de orquestração
Estas ações são elementos constitutivos para a construção de experiências eficazes. Use-os em combinação com outras falhas, como executar um teste de carga enquanto desliga instâncias de computação em paralelo em uma zona.
Categoria de ação | Nome da falha |
---|---|
Carregamento | Iniciar teste de carga (Teste de Carga do Azure) |
Carregamento | Parar teste de carga (Teste de Carga do Azure) |
Atraso de tempo | Atraso |
Detalhes: Falhas baseadas em agente
Desconexão de rede
Property | valor |
---|---|
Nome do recurso | RedeDisconnect-1.1 |
Tipo de destino | Agente da Microsoft |
Tipos de SO suportados | Windows, Linux (apenas tráfego de saída) |
Description | Bloqueia o tráfego de rede para o intervalo de portas e o bloco de rede especificados. Pelo menos uma matriz destinationFilter ou inboundDestinationFilter deve ser fornecida. |
Pré-requisitos | Windows: O agente deve ser executado como administrador, o que acontece por padrão se instalado como uma extensão de VM. |
Linux: O tc pacote (Controle de Tráfego) é usado para falhas de rede. Se ainda não estiver instalado, o agente tentará instalá-lo automaticamente a partir do gerenciador de pacotes padrão. |
|
Urna | urn:csci:microsoft:agent:networkDisconnect/1.1 |
Tipo de falha | Contínuo. |
Parâmetros (chave, valor) | |
destinationFiltros | Matriz JSON delimitada de filtros de pacotes que definem quais pacotes de saída devem ser direcionados. Máximo de 16. |
inboundDestinationFilters | Matriz JSON delimitada de filtros de pacotes que definem quais pacotes de entrada devem ser direcionados. Máximo de 16. |
virtualMachineScaleSetInstances | Uma matriz de IDs de instância quando você aplica essa falha a um conjunto de dimensionamento de máquina virtual. Necessário para conjuntos de dimensionamento de máquina virtual no modo de orquestração uniforme. Saiba mais sobre IDs de instância. |
Os parâmetros destinationFilters e inboundDestinationFilters usam a seguinte matriz de filtros de pacotes.
Property | valor |
---|---|
Endereço | Endereço IP que indica o início do intervalo de IP. |
subnetMask | Máscara de sub-rede para o intervalo de endereços IP. |
portLow | (Opcional) Número da porta do início do intervalo de portas. |
portHigh | (Opcional) Número da porta do final do intervalo de portas. |
Exemplo de 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"
}
]
}
Limitações
- Atualmente, as falhas de rede baseadas em agente suportam apenas endereços IPv4.
- A falha de desconexão de rede afeta apenas novas conexões. As conexões ativas existentes continuam a persistir. Você pode reiniciar o serviço ou processo para forçar a interrupção das conexões.
- Quando executado no Windows, a falha de desconexão de rede atualmente só funciona com pacotes TCP ou UDP.
- Ao executar no Linux, essa falha só pode afetar o tráfego de saída , não o tráfego de entrada. A falha pode afetar o tráfego de entrada e saída em ambientes Windows (através dos
inboundDestinationFilters
parâmetros edestinationFilters
).
Desconexão de rede (via firewall)
Property | valor |
---|---|
Nome do recurso | RedeDisconnectViaFirewall-1.0 |
Tipo de destino | Agente da Microsoft |
Tipos de SO suportados | Windows |
Description | Aplica uma regra do Firewall do Windows para bloquear o tráfego de saída para o intervalo de portas e o bloco de rede especificados. |
Pré-requisitos | O agente deve ser executado como administrador. Se o agente estiver instalado como uma extensão de VM, ele será executado como administrador por padrão. |
Urna | urn:csci:microsoft:agent:networkDisconnectViaFirewall/1.0 |
Tipo de falha | Contínuo. |
Parâmetros (chave, valor) | |
destinationFiltros | Matriz JSON delimitada de filtros de pacotes que definem quais pacotes de saída devem ser direcionados para injeção de falha. |
Endereço | Endereço IP que indica o início do intervalo de IP. |
subnetMask | Máscara de sub-rede para o intervalo de endereços IP. |
portLow | (Opcional) Número da porta do início do intervalo de portas. |
portHigh | (Opcional) Número da porta do final do intervalo de portas. |
virtualMachineScaleSetInstances | Uma matriz de IDs de instância quando você aplica essa falha a um conjunto de dimensionamento de máquina virtual. Necessário para conjuntos de dimensionamento de máquina virtual no modo de orquestração uniforme. Saiba mais sobre IDs de instância. |
Exemplo de 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"
}
]
}
Limitações
- Atualmente, as falhas de rede baseadas em agente suportam apenas endereços IPv4.
- Atualmente, essa falha afeta apenas novas conexões. As conexões ativas existentes não são afetadas. Você pode reiniciar o serviço ou processo para forçar a interrupção das conexões.
- Esta falha afeta apenas o tráfego de saída neste momento.
Latência na Rede
Property | valor |
---|---|
Nome do recurso | Latência de rede-1.1 |
Tipo de destino | Agente da Microsoft |
Tipos de SO suportados | Windows, Linux (apenas tráfego de saída) |
Description | Aumenta a latência da rede para um intervalo de portas e um bloco de rede especificados. Pelo menos uma matriz destinationFilter ou inboundDestinationFilter deve ser fornecida. |
Pré-requisitos | Windows: O agente deve ser executado como administrador, o que acontece por padrão se instalado como uma extensão de VM. |
Linux: O tc pacote (Controle de Tráfego) é usado para falhas de rede. Se ainda não estiver instalado, o agente tentará instalá-lo automaticamente a partir do gerenciador de pacotes padrão. |
|
Urna | urn:csci:microsoft:agent:networkLatency/1.1 |
Tipo de falha | Contínuo. |
Parâmetros (chave, valor) | |
latencyInMilliseconds | Quantidade de latência a ser aplicada em milissegundos. |
destinationFiltros | Matriz JSON delimitada de filtros de pacotes que definem quais pacotes de saída devem ser direcionados. Máximo de 16. |
inboundDestinationFilters | Matriz JSON delimitada de filtros de pacotes que definem quais pacotes de entrada devem ser direcionados. Máximo de 16. |
virtualMachineScaleSetInstances | Uma matriz de IDs de instância quando você aplica essa falha a um conjunto de dimensionamento de máquina virtual. Necessário para conjuntos de dimensionamento de máquina virtual no modo de orquestração uniforme. Saiba mais sobre IDs de instância. |
Os parâmetros destinationFilters e inboundDestinationFilters usam a seguinte matriz de filtros de pacotes.
Property | valor |
---|---|
Endereço | Endereço IP que indica o início do intervalo de IP. |
subnetMask | Máscara de sub-rede para o intervalo de endereços IP. |
portLow | (Opcional) Número da porta do início do intervalo de portas. |
portHigh | (Opcional) Número da porta do final do intervalo de portas. |
Exemplo de 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"
}
]
}
Limitações
- Atualmente, as falhas de rede baseadas em agente suportam apenas endereços IPv4.
- Quando executado no Linux, a falha de latência da rede só pode afetar o tráfego de saída, não o tráfego de entrada. A falha pode afetar o tráfego de entrada e saída em ambientes Windows (através dos
inboundDestinationFilters
parâmetros edestinationFilters
). - Quando executado no Windows, a falha de latência de rede atualmente só funciona com pacotes TCP ou UDP.
- Atualmente, essa falha afeta apenas novas conexões. As conexões ativas existentes não são afetadas. Você pode reiniciar o serviço ou processo para forçar a interrupção das conexões.
Perda de pacotes de rede
Property | valor |
---|---|
Nome do recurso | NetworkPacketLoss-1.0 |
Tipo de destino | Agente da Microsoft |
Tipos de SO suportados | Windows, Linux (apenas tráfego de saída) |
Description | Introduz a perda de pacotes para o tráfego de saída a uma taxa especificada, entre 0.0 (sem perda de pacotes) e 1.0 (todos os pacotes perdidos). Essa ação pode ajudar a simular cenários como congestionamento de rede ou problemas de hardware de rede. |
Pré-requisitos | Windows: O agente deve ser executado como administrador, o que acontece por padrão se instalado como uma extensão de VM. |
Linux: O tc pacote (Controle de Tráfego) é usado para falhas de rede. Se ainda não estiver instalado, o agente tentará instalá-lo automaticamente a partir do gerenciador de pacotes padrão. |
|
Urna | urn:csci:microsoft:agent:networkPacketLoss/1.0 |
Tipo de falha | Contínuo. |
Parâmetros (chave, valor) | |
packetLossRate | A taxa na qual os pacotes correspondentes aos filtros de destino serão perdidos, variando de 0,0 a 1,0. |
virtualMachineScaleSetInstances | Uma matriz de IDs de instância quando você aplica essa falha a um conjunto de dimensionamento de máquina virtual. Necessário para conjuntos de dimensionamento de máquina virtual no modo de orquestração uniforme. Saiba mais sobre IDs de instância. |
destinationFiltros | Matriz JSON delimitada de filtros de pacotes (parâmetros abaixo) que definem quais pacotes de saída devem ser direcionados para injeção de falhas. Máximo de três. |
Endereço | Endereço IP que indica o início do intervalo de IP. |
subnetMask | Máscara de sub-rede para o intervalo de endereços IP. |
portLow | (Opcional) Número da porta do início do intervalo de portas. |
portHigh | (Opcional) Número da porta do final do intervalo de portas. |
Exemplo de 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"
}
]
}
Limitações
- Atualmente, as falhas de rede baseadas em agente suportam apenas endereços IPv4.
- Quando executado no Windows, a falha de perda de pacotes de rede atualmente só funciona com pacotes TCP ou UDP.
- Ao executar no Linux, essa falha só pode afetar o tráfego de saída , não o tráfego de entrada. A falha pode afetar o tráfego de entrada e saída em ambientes Windows (através dos
inboundDestinationFilters
parâmetros edestinationFilters
). - Atualmente, essa falha afeta apenas novas conexões. As conexões ativas existentes não são afetadas. Você pode reiniciar o serviço ou processo para forçar a interrupção das conexões.
Isolamento de Rede
Property | valor |
---|---|
Nome do recurso | NetworkIsolation-1.0 |
Tipo de destino | Agente da Microsoft |
Tipos de SO suportados | Windows, Linux (apenas saída) |
Description | Isole totalmente a máquina virtual das conexões de rede descartando todos os pacotes de entrada (no Windows) e de saída (no Windows e Linux) baseados em IP pela duração especificada. No final da duração, as conexões de rede serão reativadas. Como o agente depende do tráfego de rede, essa ação não pode ser cancelada e será executada até a duração especificada. |
Pré-requisitos | Windows: O agente deve ser executado como administrador, o que acontece por padrão se instalado como uma extensão de VM. |
Linux: O tc pacote (Controle de Tráfego) é usado para falhas de rede. Se ainda não estiver instalado, o agente tentará instalá-lo automaticamente a partir do gerenciador de pacotes padrão. |
|
Urna | urn:csci:microsoft:agent:networkIsolation/1.0 |
Tipo de falha | Contínuo. |
Parâmetros (chave, valor) | |
virtualMachineScaleSetInstances | Uma matriz de IDs de instância quando você aplica essa falha a um conjunto de dimensionamento de máquina virtual. Necessário para conjuntos de dimensionamento de máquina virtual no modo de orquestração uniforme, opcional caso contrário. Saiba mais sobre IDs de instância. |
Exemplo de JSON
{
"name": "branchOne",
"actions": [
{
"type": "continuous",
"name": "urn:csci:microsoft:agent:networkIsolation/1.0",
"parameters": [],
"duration": "PT10M",
"selectorid": "myResources"
}
]
}
Limitações
- Como o agente depende do tráfego de rede, essa ação não pode ser cancelada e será executada até a duração especificada. Use com cuidado.
- Atualmente, essa falha afeta apenas novas conexões. As conexões ativas existentes não são afetadas. Você pode reiniciar o serviço ou processo para forçar a interrupção das conexões.
- Ao executar no Linux, essa falha só pode afetar o tráfego de saída , não o tráfego de entrada. A falha pode afetar o tráfego de entrada e saída em ambientes Windows.
Falha de DNS
Property | valor |
---|---|
Nome do recurso | DnsFailure-1.0 |
Tipo de destino | Agente da Microsoft |
Tipos de SO suportados | Windows |
Description | Substitui as respostas de solicitação de pesquisa DNS por um código de erro especificado. As solicitações de pesquisa de DNS substituídas devem:
|
Pré-requisitos | Nenhum. |
Urna | urn:csci:microsoft:agent:dnsFailure/1.0 |
Tipo de falha | Contínuo. |
Parâmetros (chave, valor) | |
anfitriões | Matriz JSON delimitada de nomes de host para falha na solicitação de pesquisa de DNS. Esta propriedade aceita curingas ( * ), mas apenas para o primeiro subdomínio em um endereço e só se aplica ao subdomínio para o qual eles foram especificados. Por exemplo:
|
dnsFailureReturnCode | Código de erro DNS a ser devolvido ao cliente para a falha de pesquisa (FormErr, ServFail, NXDomain, NotImp, Refused, XDomain, YXRRSet, NXRRSet, NotAuth, NotZone). Para obter mais informações sobre códigos de retorno DNS, consulte o site da IANA. |
virtualMachineScaleSetInstances | Uma matriz de IDs de instância quando você aplica essa falha a um conjunto de dimensionamento de máquina virtual. Necessário para conjuntos de dimensionamento de máquina virtual no modo de orquestração uniforme. Saiba mais sobre IDs de instância. |
Exemplo de 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"
}
]
}
Limitações
- A falha de falha de DNS requer o Windows 2019 RS5 ou mais recente.
- O cache DNS é ignorado durante a duração da falha para os nomes de host definidos na falha.
Pressão da CPU
Property | valor |
---|---|
Nome do recurso | CPUPressure-1.0 |
Tipo de destino | Agente da Microsoft |
Tipos de SO suportados | Windows, Linux |
Description | Adiciona pressão da CPU, até o valor especificado, na VM onde essa falha é injetada durante a ação de falha. A pressão artificial da CPU é removida no final da duração ou se a experiência for cancelada. No Windows, o contador de desempenho % Processor Utility é usado no início da falha para determinar a porcentagem atual da CPU, que é subtraída da pressureLevel definida na falha para que % Processor Utility atinja aproximadamente o pressureLevel definido nos parâmetros de falha. |
Pré-requisitos | Linux: O utilitário stress-ng precisa ser instalado. A instalação acontece automaticamente como parte da instalação do agente, usando o gerenciador de pacotes padrão, em vários sistemas operacionais, incluindo baseados em Debian (como o Ubuntu), Red Hat Enterprise Linux e OpenSUSE. Para outras distribuições, incluindo o Azure Linux, você deve instalar o stress-ng manualmente. Para obter mais informações, consulte o repositório de projetos upstream. |
Windows: Nenhum. | |
Urna | urn:csci:microsoft:agent:cpuPressure/1.0 |
Tipo de falha | Contínuo. |
Parâmetros (chave, valor) | |
nível de pressão | Um inteiro entre 1 e 95 que indica quanta pressão da CPU (%) é aplicada à VM em termos de % de uso da CPU |
virtualMachineScaleSetInstances | Uma matriz de IDs de instância quando você aplica essa falha a um conjunto de dimensionamento de máquina virtual. Necessário para conjuntos de dimensionamento de máquina virtual no modo de orquestração uniforme. Saiba mais sobre IDs de instância. |
Exemplo de 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"
}
]
}
Limitações
Problemas conhecidos no Linux:
- O efeito de stress pode não ser terminado corretamente se
AzureChaosAgent
for morto inesperadamente.
Pressão da memória física
Property | valor |
---|---|
Nome do recurso | PhysicalMemoryPressure-1.0 |
Tipo de destino | Agente da Microsoft |
Tipos de SO suportados | Windows, Linux |
Description | Adiciona pressão de memória física, até o valor especificado, na VM onde essa falha é injetada durante a ação de falha. A pressão da memória física artificial é removida no final da duração ou se a experiência for cancelada. |
Pré-requisitos | Linux: O utilitário stress-ng precisa ser instalado. A instalação acontece automaticamente como parte da instalação do agente, usando o gerenciador de pacotes padrão, em vários sistemas operacionais, incluindo baseados em Debian (como o Ubuntu), Red Hat Enterprise Linux e OpenSUSE. Para outras distribuições, incluindo o Azure Linux, você deve instalar o stress-ng manualmente. Para obter mais informações, consulte o repositório de projetos upstream. |
Windows: Nenhum. | |
Urna | urn:csci:microsoft:agent:physicalMemoryPressure/1.0 |
Tipo de falha | Contínuo. |
Parâmetros (chave, valor) | |
nível de pressão | Um inteiro entre 1 e 95 que indica quanta pressão de memória física (%) é aplicada à VM. |
virtualMachineScaleSetInstances | Uma matriz de IDs de instância quando você aplica essa falha a um conjunto de dimensionamento de máquina virtual. Necessário para conjuntos de dimensionamento de máquina virtual no modo de orquestração uniforme. Saiba mais sobre IDs de instância. |
Exemplo de 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"
}
]
}
Limitações
Atualmente, o agente do Windows não reduz a pressão da memória quando outros aplicativos aumentam o uso de memória. Se o uso geral de memória exceder 100%, o agente do Windows pode falhar.
Pressão da memória virtual
Property | valor |
---|---|
Nome do recurso | VirtualMemoryPressure-1.0 |
Tipo de destino | Agente da Microsoft |
Tipos de SO suportados | Windows |
Description | Adiciona pressão de memória virtual, até o valor especificado, na VM onde essa falha é injetada durante a ação de falha. A pressão da memória virtual artificial é removida no final da duração ou se o experimento for cancelado. |
Pré-requisitos | Nenhum. |
Urna | urn:csci:microsoft:agent:virtualMemoryPressure/1.0 |
Tipo de falha | Contínuo. |
Parâmetros (chave, valor) | |
nível de pressão | Um inteiro entre 1 e 95 que indica quanta pressão de memória física (%) é aplicada à VM. |
virtualMachineScaleSetInstances | Uma matriz de IDs de instância quando você aplica essa falha a um conjunto de dimensionamento de máquina virtual. Necessário para conjuntos de dimensionamento de máquina virtual no modo de orquestração uniforme. Saiba mais sobre IDs de instância. |
Exemplo de 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"
}
]
}
Pressão de E/S do disco
Property | valor |
---|---|
Nome do recurso | DiskIOPressure-1.1 |
Tipo de destino | Agente da Microsoft |
Tipos de SO suportados | Windows |
Description | Usa o utilitário diskspd para adicionar pressão de disco a uma máquina virtual. A pressão é adicionada ao disco primário por padrão ou ao disco especificado com o parâmetro targetTempDirectory. Esta falha tem cinco modos diferentes de execução. A pressão artificial do disco é removida no final da duração ou se a experiência for cancelada. |
Pré-requisitos | Nenhum. |
Urna | urn:csci:microsoft:agent:diskIOPressure/1.1 |
Tipo de falha | Contínuo. |
Parâmetros (chave, valor) | |
Modo de pressão | O modo predefinido de pressão do disco a ser adicionado ao armazenamento primário da VM. Deve ser um dos PressureModes na tabela a seguir. |
targetTempDirectory | (Opcional) O diretório a ser usado para aplicar a pressão do disco. Por exemplo, D:/Temp . Se o parâmetro não estiver incluído, a pressão será adicionada ao disco primário. |
virtualMachineScaleSetInstances | Uma matriz de IDs de instância quando você aplica essa falha a um conjunto de dimensionamento de máquina virtual. Necessário para conjuntos de dimensionamento de máquina virtual no modo de orquestração uniforme. Saiba mais sobre IDs de instância. |
Modos de pressão
Modo de pressão | Description |
---|---|
PremiumStorageP10IOPS | númerodeThreads = 1 randomBlockSizeInKB = 64 randomSeed = 10 númeroOfIOperThread = 25 sizeOfBlocksInKB = 8 sizeOfWriteBufferInKB = 64 fileSizeInGB = 2 percentOfWriteActions = 50 |
PremiumStorageP10Limitação | númerodeThreads = 2 randomBlockSizeInKB = 64 randomSeed = 10 númeroOfIOperThread = 25 tamanhodeBlocosInKB = 64 sizeOfWriteBufferInKB = 64 fileSizeInGB = 1 percentOfWriteActions = 50 |
PremiumStorageP50IOPS | númerodeThreads = 32 randomBlockSizeInKB = 64 randomSeed = 10 númeroOfIOperThread = 32 sizeOfBlocksInKB = 8 sizeOfWriteBufferInKB = 64 fileSizeInGB = 1 percentOfWriteActions = 50 |
PremiumStorageP50Limitação | númerodeThreads = 2 randomBlockSizeInKB = 1024 randomSeed = 10 númeroOfIOperThread = 2 tamanhodeBlocosInKB = 1024 sizeOfWriteBufferInKB = 1024 fileSizeInGB = 20 percentOfWriteActions = 50 |
Predefinido | númerodeThreads = 2 randomBlockSizeInKB = 64 randomSeed = 10 númeroOfIOperThread = 2 tamanhodeBlocosInKB = 64 sizeOfWriteBufferInKB = 64 fileSizeInGB = 1 percentOfWriteActions = 50 |
Exemplo de 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"
}
]
}
Pressão de E/S do disco Linux
Property | valor |
---|---|
Nome do recurso | LinuxDiskIOPressure-1.1 |
Tipo de destino | Agente da Microsoft |
Tipos de SO suportados | Linux |
Description | Usa stress-ng para aplicar pressão ao disco. Um ou mais processos de trabalho são gerados que executam processos de E/S com arquivos temporários. A pressão é adicionada ao disco primário por padrão ou ao disco especificado com o parâmetro targetTempDirectory. Para obter informações sobre como a pressão é aplicada, consulte o artigo stress-ng . |
Pré-requisitos | Linux: O utilitário stress-ng precisa ser instalado. A instalação acontece automaticamente como parte da instalação do agente, usando o gerenciador de pacotes padrão, em vários sistemas operacionais, incluindo baseados em Debian (como o Ubuntu), Red Hat Enterprise Linux e OpenSUSE. Para outras distribuições, incluindo o Azure Linux, você deve instalar o stress-ng manualmente. Para obter mais informações, consulte o repositório de projetos upstream. |
Urna | urn:csci:microsoft:agent:linuxDiskIOPressure/1.1 |
Tipo de falha | Contínuo. |
Parâmetros (chave, valor) | |
trabalhadorContagem | Número de processos de trabalho a serem executados. A configuração workerCount como 0 gera tantos processos de trabalho quanto o número de processadores. |
fileSizePerWorker | Tamanho do arquivo temporário contra o qual um trabalhador executa operações de E/S. Inteiro mais uma unidade em bytes (b), kilobytes (k), megabytes (m) ou gigabytes (g) (por exemplo, 4m para 4 megabytes e 256g para 256 gigabytes). |
tamanho do bloco | Tamanho do bloco a ser usado para operações de E/S de disco, maior que 1 byte e menor que 4 megabytes (o valor máximo é 4095k ). Inteiro mais uma unidade em bytes, kilobytes ou megabytes (por exemplo, 512k para 512 kilobytes). |
targetTempDirectory | (Opcional) O diretório a ser usado para aplicar a pressão do disco. Por exemplo, /tmp/ . Se o parâmetro não estiver incluído, a pressão será adicionada ao disco primário. |
virtualMachineScaleSetInstances | Uma matriz de IDs de instância quando você aplica essa falha a um conjunto de dimensionamento de máquina virtual. Necessário para conjuntos de dimensionamento de máquina virtual no modo de orquestração uniforme. Saiba mais sobre IDs de instância. |
Exemplo de JSON
Esses valores de amostra produziram ~100% de pressão de disco quando testados em uma Standard_D2s_v3
máquina virtual com SSD Premium LRS. Um arquivo grandeSizePerWorker e um blockSize menor ajudam a estressar totalmente o disco.
{
"name": "branchOne",
"actions": [
{
"type": "continuous",
"name": "urn:csci:microsoft:agent:linuxDiskIOPressure/1.1",
"parameters": [
{
"key": "workerCount",
"value": "4"
},
{
"key": "fileSizePerWorker",
"value": "2g"
},
{
"key": "blockSize",
"value": "64k"
},
{
"key": "targetTempDirectory",
"value": "/tmp/"
}
],
"duration": "PT10M",
"selectorid": "myResources"
}
]
}
Parar Serviço
Property | valor |
---|---|
Nome do recurso | StopService-1,0 |
Tipo de destino | Agente da Microsoft |
Tipos de SO suportados | Windows, Linux |
Description | Para um serviço do Windows ou um serviço do sistema Linux durante a falha. Reinicia-o no final da duração ou se a experiência for cancelada. |
Pré-requisitos | Nenhum. |
Urna | urn:csci:microsoft:agent:stopService/1.0 |
Tipo de falha | Contínuo. |
Parâmetros (chave, valor) | |
nome_do_serviço | Nome do serviço Windows ou serviço Linux systemd que você deseja parar. |
virtualMachineScaleSetInstances | Uma matriz de IDs de instância quando você aplica essa falha a um conjunto de dimensionamento de máquina virtual. Necessário para conjuntos de dimensionamento de máquina virtual no modo de orquestração uniforme. Saiba mais sobre IDs de instância. |
Exemplo de 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"
}
]
}
Limitações
- Windows: Não há suporte para nomes de exibição para serviços. Use
sc.exe query
no prompt de comando para explorar nomes de serviço. - Linux: Outros tipos de serviço além do systemd, como sysvinit, não são suportados.
Matar processo
Property | valor |
---|---|
Nome do recurso | KillProcess-1.0 |
Tipo de destino | Agente da Microsoft |
Tipos de SO suportados | Windows, Linux |
Description | Mata todas as instâncias em execução de um processo que corresponde ao nome do processo enviado nos parâmetros de falha. Dentro da duração definida para a ação de falha, um processo é morto repetidamente com base no valor do intervalo de abate especificado. Essa falha é uma falha destrutiva em que o administrador do sistema precisaria recuperar manualmente o processo se a autorrecuperação estiver configurada para ele. Observe que essa falha será errada quando usada em um processo de nome vazio, quando usada com um intervalo não especificado ou quando não conseguirmos encontrar o nome do processo de destino que queremos matar. |
Pré-requisitos | Nenhum. |
Urna | urn:csci:microsoft:agent:killProcess/1.0 |
Tipo de falha | Contínuo. |
Parâmetros (chave, valor) | |
nome_do_processo | Nome de um processo para matar continuamente (sem o .exe). O processo não precisa estar em execução quando a falha começa a ser executada. |
killIntervalInMilliseconds | Quantidade de tempo que a falha aguarda entre sucessivas tentativas de eliminação em milissegundos. |
virtualMachineScaleSetInstances | Uma matriz de IDs de instância quando você aplica essa falha a um conjunto de dimensionamento de máquina virtual. Necessário para conjuntos de dimensionamento de máquina virtual no modo de orquestração uniforme. Saiba mais sobre IDs de instância. |
Exemplo de 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"
}
]
}
Pausar o processo
Property | valor |
---|---|
Nome do recurso | PauseProcess-1.0 |
Tipo de destino | Agente da Microsoft |
Tipos de SO suportados | Windows |
Description | Pausa (suspende) os processos especificados pela duração especificada. Se houver vários processos com o mesmo nome, essa falha suspenderá todos esses processos. Dentro da duração da falha, os processos são pausados repetidamente no intervalo especificado. No final da duração ou se a experiência for cancelada, os processos serão retomados. |
Pré-requisitos | Nenhum. |
Urna | urn:csci:microsoft:agent:pauseProcess/1.0 |
Tipo de falha | Contínuo. |
Parâmetros (chave, valor) | |
processNames | Matriz JSON delimitada de nomes de processos definindo quais processos devem ser pausados. Máximo de 4. O nome do processo pode opcionalmente incluir a extensão ".exe". |
pauseIntervalInMilliseconds | Quantidade de tempo que a falha espera entre sucessivas tentativas de pausa, em milissegundos. |
virtualMachineScaleSetInstances | Uma matriz de IDs de instância quando você aplica essa falha a um conjunto de dimensionamento de máquina virtual. Necessário para conjuntos de dimensionamento de máquina virtual no modo de orquestração uniforme. Saiba mais sobre IDs de instância. |
Exemplo de 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"
}
]
}
Limitações
Atualmente, um máximo de 4 nomes de processo podem ser listados no parâmetro processNames.
Mudança de hora
Property | valor |
---|---|
Nome do recurso | TimeChange-1.0 |
Tipo de destino | Agente da Microsoft |
Tipos de SO suportados | Windows |
Description | Altera a hora do sistema da máquina virtual e redefine a hora no final do experimento ou se o experimento for cancelado. |
Pré-requisitos | Nenhum. |
Urna | urn:csci:microsoft:agent:timeChange/1.0 |
Tipo de falha | Contínuo. |
Parâmetros (chave, valor) | |
dateTime | Uma cadeia de caracteres DateTime no formato ISO8601. Se YYYY-MM-DD os valores estiverem faltando, eles serão padronizados para o dia atual em que o experimento é executado. Se os valores Thh:mm:ss estiverem ausentes, o valor padrão será 12:00:00 AM. Se um ano de 2 dígitos for fornecido (YY ), ele será convertido em um ano de 4 dígitos (YYYY ) com base no século atual. Se o fuso <Z> horário estiver ausente, o deslocamento padrão será o fuso horário local. <Z> deve sempre incluir um símbolo de sinal (negativo ou positivo). |
virtualMachineScaleSetInstances | Uma matriz de IDs de instância quando você aplica essa falha a um conjunto de dimensionamento de máquina virtual. Necessário para conjuntos de dimensionamento de máquina virtual no modo de orquestração uniforme. Saiba mais sobre IDs de instância. |
Exemplo de 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"
}
]
}
Estressor Stress-ng Arbitrário
Property | valor |
---|---|
Nome do recurso | StressNg-1,0 |
Tipo de destino | Agente da Microsoft |
Tipos de SO suportados | Linux |
Description | Executa qualquer comando stress-ng passando argumentos diretamente para stress-ng. Útil quando uma das falhas predefinidas para stress-ng não atende às suas necessidades. |
Pré-requisitos | Linux: O utilitário stress-ng precisa ser instalado. A instalação acontece automaticamente como parte da instalação do agente, usando o gerenciador de pacotes padrão, em vários sistemas operacionais, incluindo baseados em Debian (como o Ubuntu), Red Hat Enterprise Linux e OpenSUSE. Para outras distribuições, incluindo o Azure Linux, você deve instalar o stress-ng manualmente. Para obter mais informações, consulte o repositório de projetos upstream. |
Urna | urn:csci:microsoft:agent:stressNg/1.0 |
Tipo de falha | Contínuo. |
Parâmetros (chave, valor) | |
stressNgArguments | Um ou mais argumentos para passar para o processo de stress-ng. Para obter informações sobre possíveis argumentos de stress-ng, consulte o artigo stress-ng . Observação : não inclua o argumento "-t " porque ele causará um erro. O comprimento do experimento é definido diretamente na interface do usuário do experimento do caos do Azure, NÃO no stressNgArguments. |
Exemplo de 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"
}
]
}
Detalhes: Falhas diretas de serviço
Parar o Serviço de Aplicativo
Property | valor |
---|---|
Nome do recurso | Paragem-1.0 |
Tipo de destino | Microsoft-AppService |
Description | Interrompe os aplicativos do Serviço de Aplicativo de destino e os reinicia no final da duração da falha. Esta ação aplica-se a recursos do tipo "Microsoft.Web/sites", incluindo Serviço de Aplicativo, Aplicativos de API, Aplicativos Móveis e Funções do Azure. |
Pré-requisitos | Nenhum. |
Urna | urn:csci:microsoft:appService:stop/1.0 |
Tipo de falha | Contínuo. |
Parâmetros (chave, valor) | Nenhum. |
Exemplo de JSON
{
"name": "branchOne",
"actions": [
{
"type": "continuous",
"name": "urn:csci:microsoft:appService:stop/1.0",
"duration": "PT10M",
"parameters":[],
"selectorid": "myResources"
}
]
}
Desativar o dimensionamento automático
Property | valor |
---|---|
Nome do recurso | DesativarAutoscale |
Tipo de destino | Microsoft-AutoscaleSettings |
Description | Desativa o serviço de dimensionamento automático. Quando o dimensionamento automático é desativado, recursos como conjuntos de dimensionamento de máquinas virtuais, aplicativos Web, barramento de serviço e muito mais não são adicionados ou removidos automaticamente com base na carga do aplicativo. |
Pré-requisitos | O recurso autoScalesetting habilitado no recurso deve ser integrado ao Chaos Studio. |
Urna | urn:csci:microsoft:autoscalesettings:disableAutoscale/1.0 |
Tipo de falha | Contínuo. |
Parâmetros (chave, valor) | |
enableOnComplete | Booleano. Configura se o dimensionamento automático é reativado após a ação ser concluída. A predefinição é true . |
Exemplo de 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
Property | valor |
---|---|
Nome do recurso | RedeCaos-2.2 |
Tipo de destino | Microsoft-AzureKubernetesServiceChaosMesh |
Tipos de SO de pool de nós suportados | Linux |
Description | Faz com que uma falha de rede disponível por meio do Chaos Mesh seja executada no cluster do Serviço Kubernetes do Azure (AKS). Útil para recriar incidentes AKS resultantes de interrupções de rede, atrasos, duplicações, perdas e corrupção. |
Pré-requisitos | O cluster AKS deve ter o Chaos Mesh implantado. |
Urna | urn:csci:microsoft:azureKubernetesServiceChaosMesh:networkChaos/2.2 |
Parâmetros (chave, valor) | |
jsonSpec | Uma especificação Chaos Mesh formatada em JSON que usa o tipo NetworkChaos. Você pode usar um conversor YAML para JSON como Converter YAML em JSON para converter o Chaos Mesh YAML para JSON e reduzi-lo. Use aspas simples dentro do JSON ou escape das aspas com um caractere de barra invertida. Inclua apenas o YAML sob a jsonSpec propriedade. Não inclua informações como metadados e tipos. Especificar a duração dentro do jsonSpec não é necessário, mas é usado se disponível. |
Exemplo de 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 Malha Pod Caos
Property | valor |
---|---|
Nome do recurso | PodChaos-2,2 |
Tipo de destino | Microsoft-AzureKubernetesServiceChaosMesh |
Tipos de SO de pool de nós suportados | Linux |
Description | Faz com que uma falha de pod disponível através do Chaos Mesh seja executada no seu cluster AKS. Útil para recriar incidentes AKS que são resultado de falhas de pod ou problemas de contêiner. |
Pré-requisitos | O cluster AKS deve ter o Chaos Mesh implantado. |
Urna | urn:csci:microsoft:azureKubernetesServiceChaosMesh:podChaos/2.2 |
Parâmetros (chave, valor) | |
jsonSpec | Uma especificação Chaos Mesh formatada em JSON que usa o tipo PodChaos. Você pode usar um conversor YAML para JSON como Converter YAML em JSON para converter o Chaos Mesh YAML para JSON e reduzi-lo. Use aspas simples dentro do JSON ou escape das aspas com um caractere de barra invertida. Inclua apenas o YAML sob a jsonSpec propriedade. Não inclua informações como metadados e tipos. Especificar a duração dentro do jsonSpec não é necessário, mas é usado se disponível. |
Exemplo de 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 Malha Stress Caos
Property | valor |
---|---|
Nome do recurso | StressChaos-2.2 |
Tipo de destino | Microsoft-AzureKubernetesServiceChaosMesh |
Tipos de SO de pool de nós suportados | Linux |
Description | Faz com que uma falha de estresse disponível através do Chaos Mesh seja executada contra seu cluster AKS. Útil para recriar incidentes AKS por causa de tensões sobre uma coleção de pods, por exemplo, devido ao alto consumo de CPU ou memória. |
Pré-requisitos | O cluster AKS deve ter o Chaos Mesh implantado. |
Urna | urn:csci:microsoft:azureKubernetesServiceChaosMesh:stressChaos/2.2 |
Parâmetros (chave, valor) | |
jsonSpec | Uma especificação Chaos Mesh formatada em JSON que usa o tipo StressChaos. Você pode usar um conversor YAML para JSON como Converter YAML em JSON para converter o Chaos Mesh YAML para JSON e reduzi-lo. Use aspas simples dentro do JSON ou escape das aspas com um caractere de barra invertida. Inclua apenas o YAML sob a jsonSpec propriedade. Não inclua informações como metadados e tipos. Especificar a duração dentro do jsonSpec não é necessário, mas é usado se disponível. |
Exemplo de 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
Property | valor |
---|---|
Nome do recurso | IOChaos-2,2 |
Tipo de destino | Microsoft-AzureKubernetesServiceChaosMesh |
Tipos de SO de pool de nós suportados | Linux |
Description | Faz com que uma falha de E/S disponível através do Chaos Mesh seja executada no cluster AKS. Útil para recriar incidentes AKS devido a atrasos de E/S e falhas de leitura/gravação quando você usa chamadas do sistema de E/S, como open , read e write . |
Pré-requisitos | O cluster AKS deve ter o Chaos Mesh implantado. |
Urna | urn:csci:microsoft:azureKubernetesServiceChaosMesh:IOChaos/2.2 |
Parâmetros (chave, valor) | |
jsonSpec | Uma especificação Chaos Mesh formatada em JSON que usa o tipo IOChaos. Você pode usar um conversor YAML para JSON como Converter YAML em JSON para converter o Chaos Mesh YAML para JSON e reduzi-lo. Use aspas simples dentro do JSON ou escape das aspas com um caractere de barra invertida. Inclua apenas o YAML sob a jsonSpec propriedade. Não inclua informações como metadados e tipos. Especificar a duração dentro do jsonSpec não é necessário, mas é usado se disponível. |
Exemplo de 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 Malha Tempo Caos
Property | valor |
---|---|
Nome do recurso | TimeChaos-2.2 |
Tipo de destino | Microsoft-AzureKubernetesServiceChaosMesh |
Tipos de SO de pool de nós suportados | Linux |
Description | Causa uma alteração no relógio do sistema em seu cluster AKS usando Chaos Mesh. Útil para recriar incidentes AKS que resultam de sistemas distribuídos fora de sincronia, lógica de ano bissexto/segundo bissexto ausente/incorreta e muito mais. |
Pré-requisitos | O cluster AKS deve ter o Chaos Mesh implantado. |
Urna | urn:csci:microsoft:azureKubernetesServiceChaosMesh:timeChaos/2.2 |
Parâmetros (chave, valor) | |
jsonSpec | Uma especificação Chaos Mesh formatada em JSON que usa o tipo TimeChaos. Você pode usar um conversor YAML para JSON como Converter YAML em JSON para converter o Chaos Mesh YAML para JSON e reduzi-lo. Use aspas simples dentro do JSON ou escape das aspas com um caractere de barra invertida. Inclua apenas o YAML sob a jsonSpec propriedade. Não inclua informações como metadados e tipos. Especificar a duração dentro do jsonSpec não é necessário, mas é usado se disponível. |
Exemplo de 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"
}
]
}
AKS Chaos Mesh Kernel Chaos
Property | valor |
---|---|
Nome do recurso | KernelChaos-2.2 |
Tipo de destino | Microsoft-AzureKubernetesServiceChaosMesh |
Tipos de SO de pool de nós suportados | Linux |
Description | Faz com que uma falha do kernel disponível através do Chaos Mesh seja executada no cluster AKS. Útil para recriar incidentes AKS devido a erros no nível do kernel Linux, como falha de montagem ou não alocação de memória. |
Pré-requisitos | O cluster AKS deve ter o Chaos Mesh implantado. |
Urna | urn:csci:microsoft:azureKubernetesServiceChaosMesh:kernelChaos/2.2 |
Parâmetros (chave, valor) | |
jsonSpec | Uma especificação Chaos Mesh formatada em JSON que usa o tipo KernelChaos. Você pode usar um conversor YAML para JSON como Converter YAML em JSON para converter o Chaos Mesh YAML para JSON e reduzi-lo. Use aspas simples dentro do JSON ou escape das aspas com um caractere de barra invertida. Inclua apenas o YAML sob a jsonSpec propriedade. Não inclua informações como metadados e tipos. Especificar a duração dentro do jsonSpec não é necessário, mas é usado se disponível. |
Exemplo de 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
Property | valor |
---|---|
Nome do recurso | HTTPChaos-2,2 |
Tipo de destino | Microsoft-AzureKubernetesServiceChaosMesh |
Tipos de SO de pool de nós suportados | Linux |
Description | Faz com que uma falha HTTP disponível através do Chaos Mesh seja executada no cluster AKS. Útil para recriar incidentes devido a falhas de processamento de solicitação e resposta HTTP, como respostas atrasadas ou incorretas. |
Pré-requisitos | O cluster AKS deve ter o Chaos Mesh implantado. |
Urna | urn:csci:microsoft:azureKubernetesServiceChaosMesh:httpChaos/2.2 |
Parâmetros (chave, valor) | |
jsonSpec | Uma especificação Chaos Mesh formatada em JSON que usa o tipo HTTPChaos. Você pode usar um conversor YAML para JSON como Converter YAML em JSON para converter o Chaos Mesh YAML para JSON e reduzi-lo. Use aspas simples dentro do JSON ou escape das aspas com um caractere de barra invertida. Inclua apenas o YAML sob a jsonSpec propriedade. Não inclua informações como metadados e tipos. Especificar a duração dentro do jsonSpec não é necessário, mas é usado se disponível. |
Exemplo de 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
Property | valor |
---|---|
Nome do recurso | DNSChaos-2.2 |
Tipo de destino | Microsoft-AzureKubernetesServiceChaosMesh |
Tipos de SO de pool de nós suportados | Linux |
Description | Faz com que uma falha de DNS disponível através do Chaos Mesh seja executada no cluster AKS. Útil para recriar incidentes devido a falhas de DNS. |
Pré-requisitos | O cluster AKS deve ter o Chaos Mesh implantado e o serviço DNS deve ser instalado. |
Urna | urn:csci:microsoft:azureKubernetesServiceChaosMesh:dnsChaos/2.2 |
Parâmetros (chave, valor) | |
jsonSpec | Uma especificação Chaos Mesh formatada em JSON que usa o tipo DNSChaos. Você pode usar um conversor YAML para JSON como Converter YAML em JSON para converter o Chaos Mesh YAML para JSON e reduzi-lo. Use aspas simples dentro do JSON ou escape das aspas com um caractere de barra invertida. Inclua apenas o YAML sob a jsonSpec propriedade. Não inclua informações como metadados e tipos. Especificar a duração dentro do jsonSpec não é necessário, mas é usado se disponível. |
Exemplo de 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"
}
]
}
Desligamento dos Serviços de Nuvem (Clássico)
Property | valor |
---|---|
Nome do recurso | Desligamento-1.0 |
Tipo de destino | Microsoft-DomainName |
Description | Interrompe uma implantação durante a falha. Reinicia a implantação no final da duração da falha ou se o experimento for cancelado. |
Pré-requisitos | Nenhum. |
Urna | urn:csci:microsoft:domainName:shutdown/1.0 |
Tipo de falha | Contínuo. |
Parâmetros | Nenhum. |
Exemplo de JSON
{
"name": "branchOne",
"actions": [
{
"type": "continuous",
"name": "urn:csci:microsoft:domainName:shutdown/1.0",
"parameters": [],
"duration": "PT10M",
"selectorid": "myResources"
}
]
}
Cache do Azure para Redis (Reinicialização)
Property | valor |
---|---|
Nome do recurso | Reinicialização-1.0 |
Tipo de destino | Microsoft-AzureClusteredCacheForRedis |
Description | Faz com que uma operação de reinicialização forçada ocorra no destino para simular uma breve interrupção. |
Pré-requisitos | N/A |
Urna | urn:csci:microsoft:azureClusteredCacheForRedis:reboot/1.0 |
Tipo de falha | Discreto. |
Parâmetros (chave, valor) | |
Tipo de reinicialização | Os tipos de nó onde a ação de reinicialização deve ser executada, que pode ser especificada como PrimaryNode, SecondaryNode ou AllNodes. |
shardId | O ID do fragmento a ser reinicializado. Apenas relevante para caches de nível Premium. |
Exemplo de 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"
}
]
}
Limitações
- A falha de reinicialização faz com que uma reinicialização forçada simule melhor um evento de interrupção, o que significa que há o potencial de perda de dados.
- A falha de reinicialização é um tipo de falha discreta . Ao contrário das falhas contínuas, é uma ação única e não tem duração.
Cosmos DB Failover
Property | valor |
---|---|
Nome do recurso | Failover-1.0 |
Tipo de destino | Microsoft-CosmosDB |
Description | Faz com que uma conta do Azure Cosmos DB com uma única região de gravação faça failover para uma região de leitura especificada para simular uma interrupção de região de gravação. |
Pré-requisitos | Nenhum. |
Urna | urn:csci:microsoft:cosmosDB:failover/1.0 |
Tipo de falha | Contínuo. |
Parâmetros (chave, valor) | |
readRegion | A região de leitura que deve ser promovida para gravar região durante o failover, por exemplo, East US 2 . |
Exemplo de 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"
}
]
}
Alterar o estado do Hub de Eventos
Property | valor |
---|---|
Nome do recurso | ChangeEventHubState-1.0 |
Tipo de destino | Microsoft-EventHub |
Description | Define hubs de eventos individuais para o estado desejado dentro de um namespace de Hubs de Eventos do Azure. Você pode afetar nomes específicos de hub de eventos ou usar "*" para afetar todos dentro do namespace. Essa ação pode ajudar a testar sua infraestrutura de mensagens em busca de cenários de manutenção ou falha. Esta é uma falha discreta, portanto, a entidade não será retornada ao estado inicial automaticamente. |
Pré-requisitos | Um namespace de Hubs de Eventos do Azure com pelo menos uma entidade de hub de eventos. |
Urna | urn:csci:microsoft:eventHub:changeEventHubState/1.0 |
Tipo de falha | Discreto. |
Parâmetros (chave, valor) | |
Estado desejado | O estado desejado para os hubs de eventos de destino. Os estados possíveis são Ative, Disabled e SendDisabled. |
Centros de eventos | Uma lista separada por vírgulas dos nomes do hub de eventos dentro do namespace de destino. Use "*" para afetar todas as entidades dentro do namespace. |
Exemplo de JSON
{
"name": "Branch1",
"actions": [
{
"selectorId": "Selector1",
"type": "discrete",
"parameters": [
{
"key": "eventhubs",
"value": "[\"*\"]"
},
{
"key": "desiredState",
"value": "Disabled"
}
],
"name": "urn:csci:microsoft:eventHub:changeEventHubState/1.0"
}
]
}
Cofre da Chave: Negar Acesso
Property | valor |
---|---|
Nome do recurso | DenyAccess-1,0 |
Tipo de destino | Microsoft-KeyVault |
Description | Bloqueia todo o acesso da rede a um cofre de chaves modificando temporariamente as regras de rede do cofre de chaves. Essa ação impede que um aplicativo dependente do cofre de chaves acesse segredos, chaves e/ou certificados. Se o cofre de chaves permitir acesso a todas as redes, essa configuração será alterada para permitir apenas o acesso de redes selecionadas. Nenhuma rede virtual está na lista de permissões no início da falha. Todas as redes têm acesso permitido no final da duração da falha. Se o cofre de chaves estiver definido para permitir apenas o acesso de redes selecionadas, todas as redes virtuais na lista de permissões serão removidas no início da falha. Eles são restaurados no final da duração da falha. |
Pré-requisitos | O cofre da chave de destino não pode ter regras de firewall e não deve ser definido para permitir que os serviços do Azure ignorem o firewall. Se o cofre da chave de destino estiver definido para permitir apenas o acesso de redes selecionadas, deve haver pelo menos uma regra de rede virtual. O cofre de chaves não pode estar no modo de recuperação. |
Urna | urn:csci:microsoft:keyVault:denyAccess/1.0 |
Tipo de falha | Contínuo. |
Parâmetros (chave, valor) | Nenhum. |
Exemplo de JSON
{
"name": "branchOne",
"actions": [
{
"type": "continuous",
"name": "urn:csci:microsoft:keyvault:denyAccess/1.0",
"parameters": [],
"duration": "PT10M",
"selectorid": "myResources"
}
]
}
Cofre da Chave: Desativar Certificado
Property | valor |
---|---|
Nome do recurso | DisableCertificate-1.0 |
Tipo de destino | Microsoft-KeyVault |
Description | Usando propriedades de certificado, a falha desativa o certificado por uma duração específica (fornecida pelo usuário). Ele habilita o certificado após a duração dessa falha. |
Pré-requisitos | Nenhum. |
Urna | urn:csci:microsoft:keyvault:disableCertificate/1.0 |
Tipo de falha | Contínuo. |
Parâmetros (chave, valor) | |
Nome do certificado | Nome do certificado do Cofre de Chaves do Azure no qual a falha é executada. |
versão | Versão do certificado que deve ser desativada. Se não for especificado, a versão mais recente será desativada. |
Exemplo de 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"
}
]
}
Cofre da chave: versão do certificado de incremento
Property | valor |
---|---|
Nome do recurso | IncrementCertificateVersion-1.0 |
Tipo de destino | Microsoft-KeyVault |
Description | Gera uma nova versão de certificado e impressão digital usando a biblioteca de cliente do Key Vault Certificate. O certificado de trabalho atual é atualizado para esta versão. A versão do certificado não é revertida após a duração da falha. |
Pré-requisitos | Nenhum. |
Urna | urn:csci:microsoft:keyvault:incrementCertificateVersion/1.0 |
Tipo de falha | Discreto. |
Parâmetros (chave, valor) | |
Nome do certificado | Nome do certificado do Cofre de Chaves do Azure no qual a falha é executada. |
Exemplo de 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"
}
]
}
Cofre da Chave: Atualizar Política de Certificados
Property | valor |
---|---|
Nome do recurso | UpdateCertificatePolicy-1.0 |
Tipo de destino | Microsoft-KeyVault |
Description | As políticas de certificado (por exemplo, período de validade do certificado, tipo de certificado, tamanho da chave ou tipo de chave) são atualizadas com base na entrada do usuário e revertidas após a duração da falha. |
Pré-requisitos | Nenhum. |
Urna | urn:csci:microsoft:keyvault:updateCertificatePolicy/1.0 |
Tipo de falha | Contínuo. |
Parâmetros (chave, valor) | |
Nome do certificado | Nome do certificado do Cofre de Chaves do Azure no qual a falha é executada. |
versão | Versão do certificado que deve ser atualizada. Se não for especificado, a versão mais recente será atualizada. |
ativado | Booleano. Valor que indica se a nova versão do certificado está habilitada. |
validadeInMonths | Período de validade do certificado em meses. |
certificadoTransparência | Indica se o certificado deve ser publicado na lista de transparência do certificado quando criado. |
Tipo de certificado | Tipo de certificado. |
contentType | Tipo de conteúdo do certificado. Por exemplo, é Pkcs12 quando o certificado contém bytes PFX brutos ou Pem quando contém bytes codificados em PEM ASCII. Pkcs12 é o valor padrão assumido. |
keySize | Tamanho da chave RSA: 2048, 3072 ou 4096. |
exportável | Booleano. Valor que indica se a chave de certificado é exportável do cofre ou do armazenamento seguro de certificados. |
reuseKey | Booleano. Valor que indica se a chave do certificado deve ser reutilizada quando o certificado é girado. |
tipo de chave | Tipo de chave de suporte gerada quando novos certificados são emitidos, como RSA ou EC. |
Exemplo de 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"
}
]
}
Regra de segurança do NSG
Property | valor |
---|---|
Nome do recurso | SecurityRule-1.0, SecurityRule-1.1 |
Tipo de destino | Microsoft-NetworkSecurityGroup |
Description | Permite a manipulação ou a criação de regras em um NSG (grupo de segurança de rede) ou conjunto de NSGs do Azure existentes, supondo que a definição de regra seja aplicável entre grupos de segurança. Útil para:
|
Pré-requisitos | Nenhum. |
Urna | urn:csci:microsoft:networkSecurityGroup:securityRule/1.0, urn:csci:microsoft:networkSecurityGroup:securityRule/1.1 |
Tipo de falha | Contínuo. |
Parâmetros (chave, valor) | |
nome | Um nome exclusivo para a regra de segurança criada. A falha falha se já existir outra regra no NSG com o mesmo nome. Deve começar com uma letra ou número. Tem de terminar com uma letra, um número ou um caráter de sublinhado. Pode conter apenas letras, números, sublinhados, pontos ou hífenes. |
protocolo | Protocolo para a regra de segurança. Deve ser Qualquer, TCP, UDP ou ICMP. |
sourceAddresses | Uma cadeia de caracteres que representa uma matriz delimitada por JSON de endereços IP formatados em CIDR. Também pode ser um nome de marca de serviço para uma regra de entrada, por exemplo, AppService . Um asterisco * também pode ser usado para corresponder a todos os IPs de origem. |
destinationAddresses | Uma cadeia de caracteres que representa uma matriz delimitada por JSON de endereços IP formatados em CIDR. Também pode ser um nome de marca de serviço para uma regra de saída, por exemplo, AppService . Um asterisco * também pode ser usado para corresponder a todos os IPs de destino. |
action | Tipo de acesso ao grupo de segurança. Deve ser Permitir ou Negar. |
destinationPortRanges | Uma cadeia de caracteres que representa uma matriz delimitada por JSON de portas únicas e/ou intervalos de portas, como 80 ou 1024-65535. |
sourcePortRanges | Uma cadeia de caracteres que representa uma matriz delimitada por JSON de portas únicas e/ou intervalos de portas, como 80 ou 1024-65535. |
prioridade | Um valor entre 100 e 4096 que é exclusivo para todas as regras de segurança dentro do NSG. A falha falha se já existir outra regra no NSG com a mesma prioridade. |
direção | Direção do tráfego afetada pela regra de segurança. Deve ser de entrada ou de saída. |
Exemplo de 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"
}
]
}
Limitações
- A falha só pode ser aplicada a um NSG existente.
- Quando uma regra NSG destinada a negar tráfego é aplicada, as conexões existentes não serão interrompidas até ficarem ociosas por 4 minutos. Uma solução alternativa é adicionar outra ramificação na mesma etapa que usa uma falha que faria com que as conexões existentes quebrassem quando a falha NSG é aplicada. Por exemplo, matar o processo, interromper temporariamente o serviço ou reiniciar a VM faria com que as conexões fossem redefinidas.
- As regras são aplicadas no início da ação. Quaisquer alterações externas na regra durante a duração da ação fazem com que o experimento falhe.
- Não há suporte para a criação ou modificação de regras do Grupo de Segurança de Aplicativos.
- Os valores de prioridade devem ser exclusivos em cada NSG visado. A tentativa de criar uma nova regra que tenha o mesmo valor de prioridade que outra faz com que o experimento falhe.
- A falha NSG Security Rule versão 1.1 suporta um parâmetro adicional
flushConnection
. Essa funcionalidade tem um problema conhecido ativo: seflushConnection
estiver habilitada, a falha pode resultar em um erro "FlushingNetworkSecurityGroupConnectionIsNotEnabled". Para evitar esse erro temporariamente, desative oflushConnection
parâmetro ou use a falha NSG Security Rule versão 1.0 .
Barramento de serviço: alterar o estado da fila
Property | valor |
---|---|
Nome do recurso | ChangeQueueState-1.0 |
Tipo de destino | Barramento Microsoft-ServiceBus |
Description | Define as entidades Queue dentro de um namespace do Service Bus para o estado desejado. Você pode afetar nomes de entidades específicas ou usar "*" para afetar todos. Essa ação pode ajudar a testar sua infraestrutura de mensagens em busca de cenários de manutenção ou falha. Esta é uma falha discreta, portanto, a entidade não será retornada ao estado inicial automaticamente. |
Pré-requisitos | Um namespace do Service Bus com pelo menos uma entidade Queue. |
Urna | urn:csci:microsoft:serviceBus:changeQueueState/1.0 |
Tipo de falha | Discreto. |
Parâmetros (chave, valor) | |
Estado desejado | O estado desejado para as filas de destino. Os estados possíveis são Ative, Disabled, SendDisabled e ReceiveDisabled. |
filas | Uma lista separada por vírgulas dos nomes de fila dentro do namespace de destino. Use "*" para afetar todas as filas dentro do namespace. |
Exemplo de 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"
}
]
}
Limitações
- Um máximo de 1000 entidades de fila pode ser passado para essa falha.
Barramento de serviço: alterar o estado da assinatura
Property | valor |
---|---|
Nome do recurso | ChangeSubscriptionState-1.0 |
Tipo de destino | Barramento Microsoft-ServiceBus |
Description | Define as entidades Subscription dentro de um namespace e Topic do Service Bus para o estado desejado. Você pode afetar nomes de entidades específicas ou usar "*" para afetar todos. Essa ação pode ajudar a testar sua infraestrutura de mensagens em busca de cenários de manutenção ou falha. Esta é uma falha discreta, portanto, a entidade não será retornada ao estado inicial automaticamente. |
Pré-requisitos | Um namespace do Service Bus com pelo menos uma entidade Subscription. |
Urna | urn:csci:microsoft:serviceBus:changeSubscriptionState/1.0 |
Tipo de falha | Discreto. |
Parâmetros (chave, valor) | |
Estado desejado | O estado desejado para as assinaturas de destino. Os estados possíveis são Ativo e Desativado. |
topic | O tópico pai que contém uma ou mais assinaturas para afetar. |
subscrições | Uma lista separada por vírgulas dos nomes de assinatura dentro do namespace de destino. Use "*" para afetar todas as assinaturas dentro do namespace. |
Exemplo de 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"
}
]
}
Limitações
- Um máximo de 1000 entidades de subscrição podem ser passadas para esta falha.
Barramento de serviço: alterar o estado do tópico
Property | valor |
---|---|
Nome do recurso | ChangeTopicState-1.0 |
Tipo de destino | Barramento Microsoft-ServiceBus |
Description | Define as entidades Topic especificadas em um namespace do Service Bus para o estado desejado. Você pode afetar nomes de entidades específicas ou usar "*" para afetar todos. Essa ação pode ajudar a testar sua infraestrutura de mensagens em busca de cenários de manutenção ou falha. Esta é uma falha discreta, portanto, a entidade não será retornada ao estado inicial automaticamente. |
Pré-requisitos | Um namespace do Service Bus com pelo menos uma entidade Topic. |
Urna | urn:csci:microsoft:serviceBus:changeTopicState/1.0 |
Tipo de falha | Discreto. |
Parâmetros (chave, valor) | |
Estado desejado | O estado desejado para os tópicos visados. Os estados possíveis são Ativo e Desativado. |
Tópicos | Uma lista separada por vírgulas dos nomes de tópicos dentro do namespace de destino. Use "*" para afetar todos os tópicos dentro do namespace. |
Exemplo de JSON
{
"name": "branchOne",
"actions": [
{
"type": "discrete",
"name": "urn:csci:microsoft:serviceBus:changeTopicState/1.0",
"parameters":[
{
"key": "desiredState",
"value": "Disabled"
},
{
"key": "topics",
"value": "*"
}
],
"selectorid": "myServiceBusSelector"
}
]
}
Limitações
- Um máximo de 1000 entidades de tópico podem ser passadas para esta falha.
Reimplantação de VM
Property | valor |
---|---|
Nome do recurso | Reimplantar-1.0 |
Tipo de destino | Microsoft-VirtualMachine |
Description | Reimplanta uma VM desligando-a, movendo-a para um novo nó na infraestrutura do Azure e ligando-a novamente. Isso ajuda a validar a resiliência da sua carga de trabalho a eventos de manutenção. |
Pré-requisitos | Nenhum. |
Urna | urn:csci:microsoft:virtualMachine:redeploy/1.0 |
Tipo de falha | Discreto. |
Parâmetros (chave, valor) | Nenhum. |
Exemplo de JSON
{
"name": "branchOne",
"actions": [
{
"type": "discrete",
"name": "urn:csci:microsoft:virtualMachine:redeploy/1.0",
"parameters":[],
"selectorid": "myResources"
}
]
}
Limitações
- A operação de Reimplantação de Máquina Virtual é limitada dentro de um intervalo de 10 horas. Se o experimento falhar com um erro "Muitas solicitações de reimplantação", aguarde 10 horas para repetir o experimento.
Desligamento da máquina virtual
Property | valor |
---|---|
Nome do recurso | Desligamento-1.0 |
Tipo de destino | Microsoft-VirtualMachine |
Tipos de SO suportados | Windows, Linux. |
Description | Desliga uma VM durante a falha. Reinicia-o no final do experimento ou se o experimento for cancelado. Apenas as VMs do Azure Resource Manager são suportadas. |
Pré-requisitos | Nenhum. |
Urna | urn:csci:microsoft:virtualMachine:shutdown/1.0 |
Tipo de falha | Contínuo. |
Parâmetros (chave, valor) | |
abruptShutdown | (Opcional) Booleano que indica se a VM deve ser desligada graciosa ou abruptamente (destrutiva). |
Exemplo de JSON
{
"name": "branchOne",
"actions": [
{
"type": "continuous",
"name": "urn:csci:microsoft:virtualMachine:shutdown/1.0",
"parameters": [
{
"key": "abruptShutdown",
"value": "false"
}
],
"duration": "PT10M",
"selectorid": "myResources"
}
]
}
Desligamento do conjunto de escala da máquina virtual
Esta falha tem duas versões disponíveis que você pode usar, Versão 1.0 e Versão 2.0. A principal diferença é que a Versão 2.0 permite filtrar por zonas de disponibilidade, desligando apenas instâncias dentro de uma zona ou zonas especificadas.
Desligamento do conjunto de dimensionamento de máquina virtual versão 1.0
Property | valor |
---|---|
Nome do recurso | Versão 1.0 |
Tipo de destino | Microsoft-VirtualMachineScaleSet |
Tipos de SO suportados | Windows, Linux. |
Description | Desliga ou mata uma instância de conjunto de escala de máquina virtual durante a falha e reinicia a VM no final da duração da falha ou se o experimento for cancelado. |
Pré-requisitos | Nenhum. |
Urna | urn:csci:microsoft:virtualMachineScaleSet:shutdown/1.0 |
Tipo de falha | Contínuo. |
Parâmetros (chave, valor) | |
abruptShutdown | (Opcional) Booleano que indica se a instância do conjunto de escala da máquina virtual deve ser desligada normal ou abruptamente (destrutiva). |
instâncias | Uma cadeia de caracteres que é uma matriz delimitada de IDs de instância de conjunto de escala de máquina virtual à qual a falha é aplicada. |
JSON de exemplo da versão 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"
}
]
}
Desligamento do conjunto de dimensionamento de máquina virtual versão 2.0
Property | valor |
---|---|
Nome do recurso | Desligamento-2.0 |
Tipo de destino | Microsoft-VirtualMachineScaleSet |
Tipos de SO suportados | Windows, Linux. |
Description | Desliga ou elimina uma instância do conjunto de dimensionamento de máquina virtual durante a falha. Reinicia a VM no final da duração da falha ou se o experimento for cancelado. Suporta segmentação dinâmica. |
Pré-requisitos | Nenhum. |
Urna | urn:csci:microsoft:virtualMachineScaleSet:shutdown/2.0 |
Tipo de falha | Contínuo. |
filter | (Opcional) Disponível a partir da versão 2.0. Usado para filtrar a lista de destinos em um seletor. Atualmente suporta filtragem em uma lista de zonas. O filtro só é aplicado a recursos do conjunto de dimensionamento de máquina virtual dentro de uma zona:
|
Parâmetros (chave, valor) | |
abruptShutdown | (Opcional) Booleano que indica se a instância do conjunto de escala da máquina virtual deve ser desligada normal ou abruptamente (destrutiva). |
Trechos JSON de exemplo da versão 2.0
Os trechos a seguir mostram como configurar a filtragem dinâmica e a falha de desligamento 2.0.
Configure um filtro para segmentação dinâmica:
{
"type": "List",
"id": "myResources",
"targets": [
{
"id": "<targetResourceId>",
"type": "ChaosTarget"
}
],
"filter": {
"type": "Simple",
"parameters": {
"zones": [
"1"
]
}
}
}
Configure a falha de desligamento:
{
"name": "branchOne",
"actions": [
{
"name": "urn:csci:microsoft:virtualMachineScaleSet:shutdown/2.0",
"type": "continuous",
"selectorId": "myResources",
"duration": "PT10M",
"parameters": [
{
"key": "abruptShutdown",
"value": "false"
}
]
}
]
}
Limitações
Atualmente, apenas conjuntos de dimensionamento de máquina virtual configurados com o modo de orquestração uniforme são suportados. Se o conjunto de dimensionamento da máquina virtual usar orquestração flexível , você poderá usar a falha de desligamento da máquina virtual do Azure Resource Manager para desligar instâncias selecionadas.
Detalhes: Ações de orquestração
Atraso
Property | valor |
---|---|
Provedor de falhas | N/A |
Tipos de SO suportados | N/A |
Description | Adiciona um atraso de tempo antes, entre ou depois de outras ações do experimento. Essa ação não é uma falha e é usada para sincronizar ações dentro de um experimento. Use essa ação para aguardar o impacto de uma falha aparecer em um serviço ou aguardar a conclusão de uma atividade fora do experimento. Por exemplo, seu experimento pode esperar que a recuperação automática ocorra antes de injetar outra falha. |
Pré-requisitos | N/A |
Urna | urn:csci:microsoft:chaosStudio:timedDelay/1.0 |
Duração | A duração do atraso no formato ISO 8601 (por exemplo, PT10M). |
Exemplo de JSON
{
"name": "branchOne",
"actions": [
{
"type": "delay",
"name": "urn:csci:microsoft:chaosStudio:timedDelay/1.0",
"duration": "PT10M"
}
]
}
Iniciar Teste de Carga (Teste de Carga do Azure)
Property | valor |
---|---|
Nome do recurso | Início-1.0 |
Tipo de destino | Microsoft-AzureLoadTest |
Description | Inicia um teste de carga (do Teste de Carga do Azure) com base na ID de teste de carga fornecida. |
Pré-requisitos | Um teste de carga com uma ID de teste de carga válida deve ser criado no serviço de Teste de Carga do Azure. |
Urna | urn:csci:microsoft:azureLoadTest:start/1.0 |
Tipo de falha | Discreto. |
Parâmetros (chave, valor) | |
testID | A ID de um teste de carga específico criado no serviço de Teste de Carga do Azure. |
Exemplo de JSON
{
"name": "branchOne",
"actions": [
{
"type": "discrete",
"name": "urn:csci:microsoft:azureLoadTest:start/1.0",
"parameters": [
{
"key": "testID",
"value": "0"
}
],
"selectorid": "myResources"
}
]
}
Parar Teste de Carga (Teste de Carga do Azure)
Property | valor |
---|---|
Nome do recurso | Paragem-1.0 |
Tipo de destino | Microsoft-AzureLoadTest |
Description | Interrompe um teste de carga (do Teste de Carga do Azure) com base na ID de teste de carga fornecida. |
Pré-requisitos | Um teste de carga com uma ID de teste de carga válida deve ser criado no serviço de Teste de Carga do Azure. |
Urna | urn:csci:microsoft:azureLoadTest:stop/1.0 |
Tipo de falha | Discreto. |
Parâmetros (chave, valor) | |
testID | A ID de um teste de carga específico criado no serviço de Teste de Carga do Azure. |
Exemplo de JSON
{
"name": "branchOne",
"actions": [
{
"type": "discrete",
"name": "urn:csci:microsoft:azureLoadTest:stop/1.0",
"parameters": [
{
"key": "testID",
"value": "0"
}
],
"selectorid": "myResources"
}
]
}