Biblioteca de ações e falhas do Azure Chaos Studio
Este artigo lista as falhas que é possível 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
Falhas baseadas em agente são injetadas em Máquinas Virtuais do Azure ou instâncias do Conjunto de Dimensionamento de Máquinas Virtuais instalando o Agente do Chaos Studio. Encontre as opções de falha direta de serviço para esses recursos abaixo nas tabelas do Conjunto de Dimensionamento de Máquinas Virtuais e Máquinas Virtuais.
Tipos de sistema operacional 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 | Encerrar o processo | Interrupção de dependência |
Windows | Pausar Processo | Interrupção de dependência, interrupção de serviço |
Windows1, Linux2 | Desconexão da rede | Interrupção de rede |
Windows1, Linux2 | Latência da rede | Degradação do desempenho da rede |
Windows1, Linux2 | Perda de pacotes de rede | Problemas de confiabilidade de rede |
Windows, Linux2 | Isolamento de rede | Interrupção de rede |
Windows | falha de DNS | Problemas de resolução de DNS |
Windows | Desconexão de rede (via Firewall) | Interrupção de rede |
Windows, Linux | Pressão de memória física | Perda de capacidade de memória, pressão de recurso |
Windows, Linux | Parar o Serviço | Interrupção/reinicialização do serviço |
Windows | Alteração de tempo | Problemas de sincronização de tempo |
Windows | Pressão de memória virtual | Perda de capacidade de memória, pressão de recurso |
Linux | Estresse arbitrário Stress-ng | Teste geral de estresse do sistema |
Linux | Pressão do DiskIO do Linux | Degradação do desempenho de E/S do disco |
Windows | Pressão do DiskIO | Degradação do desempenho de E/S do disco |
1 Somente pacotes TCP/UDP. 2 Somente tráfego de rede de saída.
Serviço de Aplicativo
Esta seção se aplica ao tipo de recurso Microsoft.Web/sites
. Saiba mais sobre Serviço de Aplicativo.
Nome da falha | Cenários aplicáveis |
---|---|
Parar o Serviço de Aplicativo | Interrupção de serviço |
Configurações de dimensionamento automático
Esta seção se aplica ao tipo de recurso Microsoft.Insights/autoscaleSettings
. Saiba mais sobre as Configurações de Dimensionamento Automático.
Nome da falha | Cenários aplicáveis |
---|---|
Desabilitar dimensionamento automático | Perda de capacidade de computação (quando usada com Desligamento do Conjunto de Dimensionamento de Máquinas Virtuais) |
Serviço de Kubernetes do Azure
Esta seção se aplica ao tipo de recurso Microsoft.ContainerService/managedClusters
. Saiba mais sobre o Serviço de Kubernetes do Azure.
Nome da falha | Cenários aplicáveis |
---|---|
Caos de DNS do Chaos Mesh do AKS | Problemas de resolução de DNS |
Caos de HTTP do Chaos Mesh do AKS | Interrupção de rede |
Caos de E/S do Chaos Mesh do AKS | Degradação/pressão de disco |
Caos de Kernel do Chaos Mesh do AKS | Interrupção do Kernel |
Caos de Rede do Chaos Mesh do AKS | Interrupção de rede |
Caos de Pod do Chaos Mesh do AKS | Interrupção do contêiner |
Caos de Estresse do Chaos Mesh do AKS | Teste de estresse do sistema |
Caos de tempo do Chaos Mesh do AKS | Problemas de sincronização de tempo |
Serviços de Nuvem (Clássico)
Esta seção se aplica ao tipo de recurso Microsoft.ClassicCompute/domainNames
. Saiba mais sobre os Serviços de Nuvem (Clássico)..
Nome da falha | Cenários aplicáveis |
---|---|
Desligamento do Serviço de Nuvem | Perda de computação |
Cache clusterizado para Redis
Esta seção se aplica ao tipo de recurso Microsoft.Cache/redis
. Saiba mais sobre o Cache Clusterizado 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 recurso Microsoft.DocumentDB/databaseAccounts
. Saiba mais sobre o Cosmos DB.
Nome da falha | Cenários aplicáveis |
---|---|
Failover do Cosmos DB | Failover do banco de dados |
Hubs de Eventos
Esta seção se aplica ao tipo de recurso Microsoft.EventHub/namespaces
. Saiba mais sobre os Hubs de Eventos.
Nome da falha | Cenários aplicáveis |
---|---|
Alterar o estado do Hub de Eventos | Configuração/interrupção incorreta da infraestrutura de mensagens |
Key Vault
Esta seção se aplica ao tipo de recurso Microsoft.KeyVault/vaults
. Saiba mais sobre o Key Vault.
Nome da falha | Cenários aplicáveis |
---|---|
Key Vault: negar acesso | Negação de certificado |
Key Vault: desabilitar certificado | Interrupção do certificado |
Key Vault: incrementar a versão do certificado | Incremento de versão do certificado |
Key Vault: atualizar a política de certificado | Alterações/configurações incorretas da política de certificado |
Grupos de segurança de rede
Esta seção se aplica ao tipo de recurso Microsoft.Network/networkSecurityGroups
. Saiba mais sobre grupos de segurança de rede.
Nome da falha | Cenários aplicáveis |
---|---|
Regra de segurança do NSG | Interrupção de rede (para muitos serviços do Azure) |
Barramento de Serviço
Esta seção se aplica ao tipo de recurso Microsoft.ServiceBus/namespaces
. Saiba mais sobre o Barramento de Serviço.
Nome da falha | Cenários aplicáveis |
---|---|
Alterar o estado da fila | Configuração/interrupção incorreta da infraestrutura de mensagens |
Alterar estado da assinatura | Configuração/interrupção incorreta da infraestrutura de mensagens |
Alterar status do tópico | Configuração/interrupção incorreta da infraestrutura de mensagens |
Máquinas Virtuais (serviço direto)
Esta seção se aplica ao tipo de recurso Microsoft.Compute/virtualMachines
. Saiba mais sobre as 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 recurso Microsoft.Compute/virtualMachineScaleSets
. Saiba mais sobre os Conjuntos de Dimensionamento de Máquinas Virtuais.
Nome da falha | Cenários aplicáveis |
---|---|
Desligamento do Conjunto de Dimensionamento de Máquinas Virtuais | Perda/interrupção de computação |
Desligamento do Conjunto de Dimensionamento de Máquinas Virtuais (2.0) | Perda/interrupção de computação (por Zona de Disponibilidade) |
Ações de orquestração
Essas ações são blocos de construção para construir experimentos eficazes. Use-as em combinação com outras falhas, como executar um teste de carga enquanto, em paralelo, desligar instâncias de computação em uma zona.
Categoria de ação | Nome da falha |
---|---|
Carregar | Iniciar teste de carga (Teste de Carga do Azure) |
Carregar | Parar teste de carga (Teste de Carga do Azure) |
Atraso de tempo | Atraso |
Detalhes: falhas baseadas em agente
Desconexão da rede
Propriedade | Valor |
---|---|
Nome do recurso | NetworkDisconnect-1.1 |
Tipo de destino | Microsoft-Agent |
Tipos de sistema operacional com suporte | Windows, Linux (somente tráfego de saída) |
Descrição | 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 pacote tc (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. |
|
Urn | urn:csci:microsoft:agent:networkDisconnect/1.1 |
Tipo de falha | Contínuos. |
Parâmetros (chave, valor) | |
destinationFilters | Matriz JSON delimitada de filtros de pacote que definem quais pacotes de saída serão direcionados. No máximo 16. |
inboundDestinationFilters | Matriz JSON delimitada de filtros de pacote que definem quais pacotes de entrada serão direcionados. No máximo 16. |
virtualMachineScaleSetInstances | Uma matriz de IDs de instância ao aplicar essa falha a um conjunto de dimensionamento de máquinas virtuais. Necessário para conjuntos de dimensionamento de máquinas virtuais 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 pacote.
Propriedade | Valor |
---|---|
address | Endereço IP que indica o início do intervalo de IP. |
subnetMask | A 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. |
JSON de exemplo
{
"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 dão suporte apenas aos endereços IPv4.
- A falha de desconexão de rede afeta apenas novas conexões. As conexões ativas existentes continuam persistindo. Você pode reiniciar o serviço ou o processo para forçar as conexões a serem interrompidas.
- Ao executar no Windows, a falha de desconexão de rede atualmente só funciona com pacotes TCP ou UDP.
- Ao ser executado 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 (por meio dos parâmetros
inboundDestinationFilters
edestinationFilters
).
Desconexão de rede (via Firewall)
Propriedade | Valor |
---|---|
Nome do recurso | NetworkDisconnectViaFirewall-1.0 |
Tipo de destino | Microsoft-Agent |
Tipos de sistema operacional com suporte | Windows |
Descrição | Aplica uma regra de 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 for instalado como uma extensão de VM, ele será executado como administrador por padrão. |
Urn | urn:csci:microsoft:agent:networkDisconnectViaFirewall/1.0 |
Tipo de falha | Contínuos. |
Parâmetros (chave, valor) | |
destinationFilters | Matriz JSON delimitada de filtros de pacote que definem quais pacotes de saída direcionar para injeção de falha. |
address | Endereço IP que indica o início do intervalo de IP. |
subnetMask | A 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 ao aplicar essa falha a um conjunto de dimensionamento de máquinas virtuais. Necessário para conjuntos de dimensionamento de máquinas virtuais no modo de orquestração uniforme. Saiba mais sobre IDs de instância. |
JSON de exemplo
{
"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 dão suporte apenas aos endereços IPv4.
- Atualmente, essa falha afeta somente as novas conexões. As conexões ativas existentes não são afetadas. Você pode reiniciar o serviço ou o processo para forçar as conexões a serem interrompidas.
- Essa falha afeta apenas o tráfego de saída no momento.
Latência de rede
Propriedade | Valor |
---|---|
Nome do recurso | NetworkLatency-1.1 |
Tipo de destino | Microsoft-Agent |
Tipos de sistema operacional com suporte | Windows, Linux (somente tráfego de saída) |
Descrição | Aumenta a latência de rede para um intervalo de portas e 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 pacote tc (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. |
|
Urn | urn:csci:microsoft:agent:networkLatency/1.1 |
Tipo de falha | Contínuos. |
Parâmetros (chave, valor) | |
latencyInMilliseconds | Quantidade de latência a ser aplicada em milissegundos. |
destinationFilters | Matriz JSON delimitada de filtros de pacote que definem quais pacotes de saída serão direcionados. No máximo 16. |
inboundDestinationFilters | Matriz JSON delimitada de filtros de pacote que definem quais pacotes de entrada serão direcionados. No máximo 16. |
virtualMachineScaleSetInstances | Uma matriz de IDs de instância ao aplicar essa falha a um conjunto de dimensionamento de máquinas virtuais. Necessário para conjuntos de dimensionamento de máquinas virtuais 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 pacote.
Propriedade | Valor |
---|---|
address | Endereço IP que indica o início do intervalo de IP. |
subnetMask | A 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. |
JSON de exemplo
{
"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 dão suporte apenas aos endereços IPv4.
- Ao executar no Linux, a falha de latência de 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 (por meio dos parâmetros
inboundDestinationFilters
edestinationFilters
). - Ao executar no Windows, a falha de latência de rede atualmente só funciona com pacotes TCP ou UDP.
- Atualmente, essa falha afeta somente as novas conexões. As conexões ativas existentes não são afetadas. Você pode reiniciar o serviço ou o processo para forçar as conexões a serem interrompidas.
Perda de Pacotes de Rede
Propriedade | Valor |
---|---|
Nome do recurso | NetworkPacketLoss-1.0 |
Tipo de destino | Microsoft-Agent |
Tipos de sistema operacional com suporte | Windows, Linux (somente tráfego de saída) |
Descrição | Introduz a perda de pacote para o tráfego de saída a uma taxa especificada, entre 0,0 (sem pacotes perdidos) 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 pacote tc (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. |
|
Urn | urn:csci:microsoft:agent:networkPacketLoss/1.0 |
Tipo de falha | Contínuos. |
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 ao aplicar essa falha a um conjunto de dimensionamento de máquinas virtuais. Necessário para conjuntos de dimensionamento de máquinas virtuais no modo de orquestração uniforme. Saiba mais sobre IDs de instância. |
destinationFilters | Matriz JSON delimitada de filtros de pacote (parâmetros abaixo) que definem quais pacotes de saída serão direcionados para injeção de falha. Máximo de três. |
address | Endereço IP que indica o início do intervalo de IP. |
subnetMask | A 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. |
JSON de exemplo
{
"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 dão suporte apenas aos endereços IPv4.
- Ao executar no Windows, a falha de perda de pacotes de rede atualmente só funciona com pacotes TCP ou UDP.
- Ao ser executado 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 (por meio dos parâmetros
inboundDestinationFilters
edestinationFilters
). - Atualmente, essa falha afeta somente as novas conexões. As conexões ativas existentes não são afetadas. Você pode reiniciar o serviço ou o processo para forçar as conexões a serem interrompidas.
Isolamento de rede
Propriedade | Valor |
---|---|
Nome do recurso | NetworkIsolation-1.0 |
Tipo de destino | Microsoft-Agent |
Tipos de sistema operacional com suporte | Windows, Linux (somente saída) |
Descrição | Isole totalmente a máquina virtual das conexões de rede descartando todos os pacotes de entrada baseados em IP (no Windows) e de saída (no Windows e no Linux) durante a duração especificada. No final da duração, as conexões de rede serão reabilitadas. Como o agente depende do tráfego de rede, essa ação não poderá 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 pacote tc (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. |
|
Urn | urn:csci:microsoft:agent:networkIsolation/1.0 |
Tipo de falha | Contínuos. |
Parâmetros (chave, valor) | |
virtualMachineScaleSetInstances | Uma matriz de IDs de instância ao aplicar essa falha a um conjunto de dimensionamento de máquinas virtuais. Necessário para conjuntos de dimensionamento de máquinas virtuais no modo de orquestração uniforme, caso contrário, opcional. Saiba mais sobre IDs de instância. |
JSON de exemplo
{
"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 poderá ser cancelada e será executada até a duração especificada. Use-o com cuidado.
- Atualmente, essa falha afeta somente as novas conexões. As conexões ativas existentes não são afetadas. Você pode reiniciar o serviço ou o processo para forçar as conexões a serem interrompidas.
- Ao ser executado 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 de saída em ambientes Windows.
falha de DNS
Propriedade | Valor |
---|---|
Nome do recurso | DnsFailure-1.0 |
Tipo de destino | Microsoft-Agent |
Tipos de sistema operacional com suporte | Windows |
Descrição | Substitui as respostas de uma solicitação de pesquisa de DNS por um código de erro especificado. As solicitações de pesquisa de DNS que são substituídas precisam:
|
Pré-requisitos | Nenhum. |
Urn | urn:csci:microsoft:agent:dnsFailure/1.0 |
Tipo de falha | Contínuos. |
Parâmetros (chave, valor) | |
hosts | Matriz JSON delimitada de nomes do host para a solicitação de pesquisa de DNS com falha. Essa propriedade aceita curingas ( * ), mas somente para o primeiro subdomínio em um endereço e só se aplica ao subdomínio para o qual eles são especificados. Por exemplo:
|
dnsFailureReturnCode | Código de erro DNS a ser retornado 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 de DNS, consulte o site da IANA. |
virtualMachineScaleSetInstances | Uma matriz de IDs de instância ao aplicar essa falha a um conjunto de dimensionamento de máquinas virtuais. Necessário para conjuntos de dimensionamento de máquinas virtuais no modo de orquestração uniforme. Saiba mais sobre IDs de instância. |
JSON de exemplo
{
"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 DNS requer o Windows 2019 RS5 ou mais recente.
- O Cache DNS é ignorado durante a falha para os nomes do host definidos na falha.
Pressão da CPU
Propriedade | Valor |
---|---|
Nome do recurso | CPUPressure-1.0 |
Tipo de destino | Microsoft-Agent |
Tipos de sistema operacional com suporte | Windows, Linux |
Descrição | Adiciona pressão da CPU, até o valor especificado, na VM em que essa falha é injetada durante a ação de falha. A pressão artificial da CPU é removida no término da duração ou se o experimento for cancelado. No Windows, o contador de desempenho % de Utilitário do Processador é usado no início da falha para determinar o percentual atual da CPU e isso é subtraído do pressureLevel definido na falha para que a % de Utilitário do Processador 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 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, veja o repositório do projeto upstream. |
Windows: Nenhum. | |
Urn | urn:csci:microsoft:agent:cpuPressure/1.0 |
Tipo de falha | Contínuos. |
Parâmetros (chave, valor) | |
pressureLevel | Um inteiro entre 1 e 95 que indica a quantidade de pressão da CPU (%) aplicada à VM em termos de % de uso da CPU |
virtualMachineScaleSetInstances | Uma matriz de IDs de instância ao aplicar essa falha a um conjunto de dimensionamento de máquinas virtuais. Necessário para conjuntos de dimensionamento de máquinas virtuais no modo de orquestração uniforme. Saiba mais sobre IDs de instância. |
JSON de exemplo
{
"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 estresse pode não ser finalizado corretamente se
AzureChaosAgent
for eliminado inesperadamente.
Pressão de Memória Física
Propriedade | Valor |
---|---|
Nome do recurso | PhysicalMemoryPressure-1.0 |
Tipo de destino | Microsoft-Agent |
Tipos de sistema operacional com suporte | Windows, Linux |
Descrição | Adiciona a pressão de memória física, até o valor especificado, na VM em que essa falha é injetada durante a ação de falha. A pressão artificial de memória física é removida no término da duração ou se o experimento for cancelado. |
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 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, veja o repositório do projeto upstream. |
Windows: Nenhum. | |
Urn | urn:csci:microsoft:agent:physicalMemoryPressure/1.0 |
Tipo de falha | Contínuos. |
Parâmetros (chave, valor) | |
pressureLevel | Um inteiro entre 1 e 95 que indica a quantidade de pressão de memória física (%) aplicada à VM. |
virtualMachineScaleSetInstances | Uma matriz de IDs de instância ao aplicar essa falha a um conjunto de dimensionamento de máquinas virtuais. Necessário para conjuntos de dimensionamento de máquinas virtuais no modo de orquestração uniforme. Saiba mais sobre IDs de instância. |
JSON de exemplo
{
"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 de memória quando outros aplicativos aumentam o uso de memória. Se o uso geral de memória exceder 100%, o agente do Windows poderá falhar.
Pressão de Memória Virtual
Propriedade | Valor |
---|---|
Nome do recurso | VirtualMemoryPressure-1.0 |
Tipo de destino | Microsoft-Agent |
Tipos de sistema operacional com suporte | Windows |
Descrição | Adiciona a pressão de memória virtual, até o valor especificado, na VM em que essa falha é injetada durante a ação de falha. A pressão artificial de memória virtual é removida no término da duração ou se o experimento for cancelado. |
Pré-requisitos | Nenhum. |
Urn | urn:csci:microsoft:agent:virtualMemoryPressure/1.0 |
Tipo de falha | Contínuos. |
Parâmetros (chave, valor) | |
pressureLevel | Um inteiro entre 1 e 95 que indica a quantidade de pressão de memória física (%) aplicada à VM. |
virtualMachineScaleSetInstances | Uma matriz de IDs de instância ao aplicar essa falha a um conjunto de dimensionamento de máquinas virtuais. Necessário para conjuntos de dimensionamento de máquinas virtuais no modo de orquestração uniforme. Saiba mais sobre IDs de instância. |
JSON de exemplo
{
"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
Propriedade | Valor |
---|---|
Nome do recurso | DiskIOPressure-1.1 |
Tipo de destino | Microsoft-Agent |
Tipos de sistema operacional com suporte | Windows |
Descrição | 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. Essa falha tem cinco modos diferentes de execução. A pressão artificial do disco é removida no término da duração ou se o experimento for cancelado. |
Pré-requisitos | Nenhum. |
Urn | urn:csci:microsoft:agent:diskIOPressure/1.1 |
Tipo de falha | Contínuos. |
Parâmetros (chave, valor) | |
pressureMode | O modo predefinido de pressão de disco a ser adicionada ao armazenamento primário da VM. Deve ser um dos PressureModes da tabela a seguir. |
targetTempDirectory | (Opcional) O diretório a ser usado para aplicar pressão de 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 ao aplicar essa falha a um conjunto de dimensionamento de máquinas virtuais. Necessário para conjuntos de dimensionamento de máquinas virtuais no modo de orquestração uniforme. Saiba mais sobre IDs de instância. |
Modos de pressão
PressureMode | Descrição |
---|---|
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 |
Padrão | numberOfThreads = 2 randomBlockSizeInKB = 64 randomSeed = 10 numberOfIOperThread = 2 sizeOfBlocksInKB = 64 sizeOfWriteBufferInKB = 64 fileSizeInGB = 1 percentOfWriteActions = 50 |
JSON de exemplo
{
"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 do Linux
Propriedade | Valor |
---|---|
Nome do recurso | LinuxDiskIOPressure-1.1 |
Tipo de destino | Microsoft-Agent |
Tipos de sistema operacional com suporte | Linux |
Descrição | Usa stress-ng para aplicar pressão ao disco. Um ou mais processos de trabalho são gerados e 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 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, veja o repositório do projeto upstream. |
Urn | urn:csci:microsoft:agent:linuxDiskIOPressure/1.1 |
Tipo de falha | Contínuos. |
Parâmetros (chave, valor) | |
workerCount | Número de processos de trabalho a serem executados. A definição de workerCount como 0 gera o mesmo número de processos de trabalho que o número de processadores. |
fileSizePerWorker | Tamanho do arquivo temporário no 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). |
blockSize | Tamanho do bloco a ser usado para operações de E/S de disco, maior que 1 byte e menos de 4 megabytes (o valor máximo é 4095k ). Inteiro mais uma unidade em bytes, quilobytes ou megabytes (por exemplo, 512k para 512 quilobytes). |
targetTempDirectory | (Opcional) O diretório a ser usado para aplicar pressão de 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 ao aplicar essa falha a um conjunto de dimensionamento de máquinas virtuais. Necessário para conjuntos de dimensionamento de máquinas virtuais no modo de orquestração uniforme. Saiba mais sobre IDs de instância. |
JSON de exemplo
Esses valores de amostra produziram cerca de 100% de pressão em disco quando testados em uma máquina virtual Standard_D2s_v3
com o LRS do SSD Premium. Um fileSizePerWorker grande e um tamanho de bloco 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
Propriedade | Valor |
---|---|
Nome do recurso | StopService-1.0 |
Tipo de destino | Microsoft-Agent |
Tipos de sistema operacional com suporte | Windows, Linux |
Descrição | Interrompe um serviço Windows ou um serviço sistemado Linux durante a falha. Reinicia-o no final da duração ou se o experimento for cancelado. |
Pré-requisitos | Nenhum. |
Urn | urn:csci:microsoft:agent:stopService/1.0 |
Tipo de falha | Contínuos. |
Parâmetros (chave, valor) | |
serviceName | Nome do serviço Windows ou serviço sistemado Linux a ser interrompido. |
virtualMachineScaleSetInstances | Uma matriz de IDs de instância ao aplicar essa falha a um conjunto de dimensionamento de máquinas virtuais. Necessário para conjuntos de dimensionamento de máquinas virtuais no modo de orquestração uniforme. Saiba mais sobre IDs de instância. |
JSON de exemplo
{
"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: não há suporte para outros tipos de serviço além do systemd, como o sysvinit.
Encerrar o processo
Propriedade | Valor |
---|---|
Nome do recurso | KillProcess-1.0 |
Tipo de destino | Microsoft-Agent |
Tipos de sistema operacional com suporte | Windows, Linux |
Descrição | Encerra 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 é encerrado repetitivamente com base no valor do intervalo de encerramento especificado. Essa falha é uma falha destrutiva em que o administrador do sistema precisaria recuperar manualmente o processo se a autorrecuperação estivesse configurada para ele. Observe que essa falha ocorrerá quando usada em um processo com nome vazio, quando usada com um intervalo não especificado ou quando não pudermos encontrar o nome do processo alvo que desejamos encerrar. |
Pré-requisitos | Nenhum. |
Urn | urn:csci:microsoft:agent:killProcess/1.0 |
Tipo de falha | Contínuos. |
Parâmetros (chave, valor) | |
processName | Nome de um processo para encerrar continuamente (sem o .exe). O processo não precisa ser executado quando a falha começa a executar. |
killIntervalInMilliseconds | Período de tempo em que a falha aguarda entre tentativas de encerramento sucessivas em milissegundos. |
virtualMachineScaleSetInstances | Uma matriz de IDs de instância ao aplicar essa falha a um conjunto de dimensionamento de máquinas virtuais. Necessário para conjuntos de dimensionamento de máquinas virtuais no modo de orquestração uniforme. Saiba mais sobre IDs de instância. |
JSON de exemplo
{
"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 Processo
Propriedade | Valor |
---|---|
Nome do recurso | PauseProcess-1.0 |
Tipo de destino | Microsoft-Agent |
Tipos de sistema operacional com suporte | Windows |
Descrição | Pausa (suspende) os processos especificados pela duração especificada. Se houver vários processos com o mesmo nome, essa falha suspende todos esses processos. Durante a duração da falha, os processos são pausados repetidamente no intervalo especificado. Ao final do período ou se a experiência for cancelada, os processos serão retomados. |
Pré-requisitos | Nenhum. |
Urn | urna:csci:microsoft:agent:pauseProcess/1.0 |
Tipo de falha | Contínuos. |
Parâmetros (chave, valor) | |
processNames | Matriz JSON delimitada de nomes de processos que definem quais processos devem ser pausados. Máximo de 4. O nome do processo pode incluir opcionalmente a extensão “.exe”. |
pauseIntervalInMilliseconds | Quantidade de tempo que a falha aguarda entre tentativas sucessivas de pausa, em milissegundos. |
virtualMachineScaleSetInstances | Uma matriz de IDs de instância ao aplicar essa falha a um conjunto de dimensionamento de máquinas virtuais. Necessário para conjuntos de dimensionamento de máquinas virtuais no modo de orquestração uniforme. Saiba mais sobre IDs de instância. |
JSON de exemplo
{
"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, no máximo 4 nomes de processos podem ser listados no parâmetro processNames.
Alteração de tempo
Propriedade | Valor |
---|---|
Nome do recurso | TimeChange-1.0 |
Tipo de destino | Microsoft-Agent |
Tipos de sistema operacional com suporte | Windows |
Descrição | 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. |
Urn | urn:csci:microsoft:agent:timeChange/1.0 |
Tipo de falha | Contínuos. |
Parâmetros (chave, valor) | |
dateTime | Uma cadeia de caracteres DateTime no formato ISO8601. Se os valores YYYY-MM-DD estiverem faltando, eles serão padronizados para o dia atual em que o experimento for executado. Se os valores de Thh:mm:ss estiverem ausentes, o valor padrão será 12:00:00 AM. Se for fornecido um ano de 2 dígitos (YY ), ele será convertido para um ano de 4 dígitos (YYYY ) com base no século atual. Se o fuso horário <Z> estiver faltando, 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 ao aplicar essa falha a um conjunto de dimensionamento de máquinas virtuais. Necessário para conjuntos de dimensionamento de máquinas virtuais no modo de orquestração uniforme. Saiba mais sobre IDs de instância. |
JSON de exemplo
{
"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"
}
]
}
Estresse arbitrário Stress-ng
Propriedade | Valor |
---|---|
Nome do recurso | StressNg-1.0 |
Tipo de destino | Microsoft-Agent |
Tipos de sistema operacional com suporte | Linux |
Descrição | Executa qualquer comando stress-ng passando argumentos diretamente para stress-ng. Útil quando uma das falhas pré-definidas para stress-ng não atender à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 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, veja o repositório do projeto upstream. |
Urn | urn:csci:microsoft:agent:stressNg/1.0 |
Tipo de falha | Contínuos. |
Parâmetros (chave, valor) | |
stressNgArguments | Um ou mais argumentos a serem passados para o processo stress-ng. Para obter informações sobre possíveis argumentos de estresse, consulte o artigo stress-ng. OBSERVAÇÃO: NÃO inclua o argumento "-t" porque causará um erro. O comprimento do experimento é definido diretamente na interface do usuário do experimento do caos do Azure, NÃO no stressNgArguments. |
JSON de exemplo
{
"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 do serviço
Parar o Serviço de Aplicativo
Propriedade | Valor |
---|---|
Nome do recurso | Stop-1.0 |
Tipo de destino | Microsoft-AppService |
Descrição | Interrompe os aplicativos de Serviço de Aplicativo direcionados e, em seguida, reinicia-os no final da duração da falha. Essa ação aplica-se a recursos do tipo "Microsoft.Web/sites", incluindo Serviço de Aplicações, Aplicações API, Aplicações Móveis e Azure Functions. |
Pré-requisitos | Nenhum. |
Urn | urn:csci:microsoft:appService:stop/1.0 |
Tipo de falha | Contínuos. |
Parâmetros (chave, valor) | Nenhum. |
JSON de exemplo
{
"name": "branchOne",
"actions": [
{
"type": "continuous",
"name": "urn:csci:microsoft:appService:stop/1.0",
"duration": "PT10M",
"parameters":[],
"selectorid": "myResources"
}
]
}
Desabilitar dimensionamento automático
Propriedade | Valor |
---|---|
Nome do recurso | DisableAutoscale |
Tipo de destino | Microsoft-AutoscaleSettings |
Descrição | Desabilita o serviço de dimensionamento automático. Quando o dimensionamento automático é desabilitado, 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. |
Urn | urn:csci:microsoft:autoscalesettings:disableAutoscale/1.0 |
Tipo de falha | Contínuos. |
Parâmetros (chave, valor) | |
enableOnComplete | Booliano. Configura se o dimensionamento automático é habilitado novamente após a ação ser concluída. O padrão é true . |
JSON de exemplo
{
"name": "BranchOne",
"actions": [
{
"type": "continuous",
"name": "urn:csci:microsoft:autoscaleSetting:disableAutoscale/1.0",
"parameters": [
{
"key": "enableOnComplete",
"value": "true"
}
],
"duration": "PT2M",
"selectorId": "Selector1",
}
]
}
Caos de Rede do Chaos Mesh do AKS
Propriedade | Valor |
---|---|
Nome do recurso | NetworkChaos-2.2 |
Tipo de destino | Microsoft-AzureKubernetesServiceChaosMesh |
Tipos de sistema operacional do pool de nós com suporte | Linux |
Descrição | Faz com que uma falha de rede disponível por meio do Chaos Mesh seja executada em seu cluster do AKS (Serviço de Kubernetes do Azure). Útil para criar novamente incidentes do AKS que resultam de interrupções de rede, atrasos, duplicações, perda e corrupção. |
Pré-requisitos | O cluster do AKS deve ter o Chaos Mesh implantado. |
Urn | urn:csci:microsoft:azureKubernetesServiceChaosMesh:networkChaos/2.2 |
Parâmetros (chave, valor) | |
jsonSpec | Uma especificação do Chaos Mesh formatada em JSON que usa o tipo NetworkChaos. Você pode usar um conversor de YAML para JSON como Converter YAML em JSON para converter o YAML da malha do Chaos em JSON e minificá-lo. Use aspas simples no JSON ou evite as aspas com um caractere de barra invertida. Inclua apenas o YAML na propriedade jsonSpec . Não inclua informações como metadados e tipo. Especificar a duração dentro de jsonSpec não é necessário, mas será usado se estiver disponível. |
JSON de exemplo
{
"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"
}
]
}
Caos de Pod do Chaos Mesh do AKS
Propriedade | Valor |
---|---|
Nome do recurso | PodChaos-2.2 |
Tipo de destino | Microsoft-AzureKubernetesServiceChaosMesh |
Tipos de sistema operacional do pool de nós com suporte | Linux |
Descrição | Faz com que uma falha de pod disponível pelo Chaos Mesh seja executada no cluster do AKS. Útil para criar novamente incidentes do AKS resultantes de falhas de pod ou problemas de contêiner. |
Pré-requisitos | O cluster do AKS deve ter o Chaos Mesh implantado. |
Urn | urn:csci:microsoft:azureKubernetesServiceChaosMesh:podChaos/2.2 |
Parâmetros (chave, valor) | |
jsonSpec | Uma especificação do Chaos Mesh formatada em JSON que usa o tipo PodChaos. Você pode usar um conversor de YAML para JSON como Converter YAML em JSON para converter o YAML da malha do Chaos em JSON e minificá-lo. Use aspas simples no JSON ou evite as aspas com um caractere de barra invertida. Inclua apenas o YAML na propriedade jsonSpec . Não inclua informações como metadados e tipo. Especificar a duração dentro de jsonSpec não é necessário, mas será usado se estiver disponível. |
JSON de exemplo
{
"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"
}
]
}
Caos de Estresse do Chaos Mesh do AKS
Propriedade | Valor |
---|---|
Nome do recurso | StressChaos-2.2 |
Tipo de destino | Microsoft-AzureKubernetesServiceChaosMesh |
Tipos de sistema operacional do pool de nós com suporte | Linux |
Descrição | Faz com que uma falha de estresse disponível pelo Chaos Mesh seja executada no cluster do AKS. Útil para criar novamente incidentes do AKS por causa de estresses em uma coleção de pods, por exemplo, devido ao alto consumo da CPU ou memória. |
Pré-requisitos | O cluster do AKS deve ter o Chaos Mesh implantado. |
Urn | urn:csci:microsoft:azureKubernetesServiceChaosMesh:stressChaos/2.2 |
Parâmetros (chave, valor) | |
jsonSpec | Uma especificação do Chaos Mesh formatada em JSON que usa o tipo StressChaos. Você pode usar um conversor de YAML para JSON como Converter YAML em JSON para converter o YAML da malha do Chaos em JSON e minificá-lo. Use aspas simples no JSON ou evite as aspas com um caractere de barra invertida. Inclua apenas o YAML na propriedade jsonSpec . Não inclua informações como metadados e tipo. Especificar a duração dentro de jsonSpec não é necessário, mas será usado se estiver disponível. |
JSON de exemplo
{
"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"
}
]
}
Caos de E/S do Chaos Mesh do AKS
Propriedade | Valor |
---|---|
Nome do recurso | IOChaos-2.2 |
Tipo de destino | Microsoft-AzureKubernetesServiceChaosMesh |
Tipos de sistema operacional do pool de nós com suporte | Linux |
Descrição | Faz com que uma falha de E/S disponível pelo Chaos Mesh seja executada no cluster do AKS. Útil para criar novamente incidentes do AKS por causa dos atrasos de E/S e falhas de leitura/gravação ao usar chamadas do sistema de E/S, como open , read e write . |
Pré-requisitos | O cluster do AKS deve ter o Chaos Mesh implantado. |
Urn | urn:csci:microsoft:azureKubernetesServiceChaosMesh:IOChaos/2.2 |
Parâmetros (chave, valor) | |
jsonSpec | Uma especificação do Chaos Mesh formatada em JSON que usa o tipo IOChaos. Você pode usar um conversor de YAML para JSON como Converter YAML em JSON para converter o YAML da malha do Chaos em JSON e minificá-lo. Use aspas simples no JSON ou evite as aspas com um caractere de barra invertida. Inclua apenas o YAML na propriedade jsonSpec . Não inclua informações como metadados e tipo. Especificar a duração dentro de jsonSpec não é necessário, mas será usado se estiver disponível. |
JSON de exemplo
{
"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"
}
]
}
Caos de tempo do Chaos Mesh do AKS
Propriedade | Valor |
---|---|
Nome do recurso | TimeChaos-2.2 |
Tipo de destino | Microsoft-AzureKubernetesServiceChaosMesh |
Tipos de sistema operacional do pool de nós com suporte | Linux |
Descrição | Causa uma alteração no relógio do sistema no cluster do AKS usando Chaos Mesh. Útil para criar novamente incidentes do AKS que resultam de sistemas distribuídos que estão fora de sincronia, lógica de ano bissexto/segundo bissexto ausente/incorreta e muito mais. |
Pré-requisitos | O cluster do AKS deve ter o Chaos Mesh implantado. |
Urn | urn:csci:microsoft:azureKubernetesServiceChaosMesh:timeChaos/2.2 |
Parâmetros (chave, valor) | |
jsonSpec | Uma especificação do Chaos Mesh formatada em JSON que usa o tipo TimeChaos. Você pode usar um conversor de YAML para JSON como Converter YAML em JSON para converter o YAML da malha do Chaos em JSON e minificá-lo. Use aspas simples no JSON ou evite as aspas com um caractere de barra invertida. Inclua apenas o YAML na propriedade jsonSpec . Não inclua informações como metadados e tipo. Especificar a duração dentro de jsonSpec não é necessário, mas será usado se estiver disponível. |
JSON de exemplo
{
"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"
}
]
}
Caos de Kernel do Chaos Mesh do AKS
Propriedade | Valor |
---|---|
Nome do recurso | KernelChaos-2.2 |
Tipo de destino | Microsoft-AzureKubernetesServiceChaosMesh |
Tipos de sistema operacional do pool de nós com suporte | Linux |
Descrição | Faz com que uma falha de kernel disponível pelo Chaos Mesh seja executada no cluster do AKS. Útil para criar novamente incidentes do AKS por cauda de erros de nível de kernel do Linux, como falha na montagem ou não alocação de memória. |
Pré-requisitos | O cluster do AKS deve ter o Chaos Mesh implantado. |
Urn | urn:csci:microsoft:azureKubernetesServiceChaosMesh:kernelChaos/2.2 |
Parâmetros (chave, valor) | |
jsonSpec | Uma especificação do Chaos Mesh formatada em JSON que usa o tipo KernelChaos. Você pode usar um conversor de YAML para JSON como Converter YAML em JSON para converter o YAML da malha do Chaos em JSON e minificá-lo. Use aspas simples no JSON ou evite as aspas com um caractere de barra invertida. Inclua apenas o YAML na propriedade jsonSpec . Não inclua informações como metadados e tipo. Especificar a duração dentro de jsonSpec não é necessário, mas será usado se estiver disponível. |
JSON de exemplo
{
"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"
}
]
}
Caos de HTTP do Chaos Mesh do AKS
Propriedade | Valor |
---|---|
Nome do recurso | HTTPChaos-2.2 |
Tipo de destino | Microsoft-AzureKubernetesServiceChaosMesh |
Tipos de sistema operacional do pool de nós com suporte | Linux |
Descrição | Faz com que uma falha de HTTP disponível pelo Chaos Mesh seja executada no cluster do AKS. Útil para criar novamente incidentes por causa de falhas de processamento de resposta e solicitação HTTP, como respostas incorretas ou em atraso. |
Pré-requisitos | O cluster do AKS deve ter o Chaos Mesh implantado. |
Urn | urn:csci:microsoft:azureKubernetesServiceChaosMesh:httpChaos/2.2 |
Parâmetros (chave, valor) | |
jsonSpec | Uma especificação de Chaos Mesh formatada em JSON que usa o tipo HTTPChaos. Você pode usar um conversor de YAML para JSON como Converter YAML em JSON para converter o YAML da malha do Chaos em JSON e minificá-lo. Use aspas simples no JSON ou evite as aspas com um caractere de barra invertida. Inclua apenas o YAML na propriedade jsonSpec . Não inclua informações como metadados e tipo. Especificar a duração dentro de jsonSpec não é necessário, mas será usado se estiver disponível. |
JSON de exemplo
{
"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"
}
]
}
Caos de DNS do Chaos Mesh do AKS
Propriedade | Valor |
---|---|
Nome do recurso | DNSChaos-2.2 |
Tipo de destino | Microsoft-AzureKubernetesServiceChaosMesh |
Tipos de sistema operacional do pool de nós com suporte | Linux |
Descrição | Faz com que uma falha de DNS disponível pelo Chaos Mesh seja executada no cluster do AKS. Útil para criar novamente incidentes por causa de falhas de DNS. |
Pré-requisitos | O cluster do AKS deve ter o Chaos Mesh implantado e o serviço DNS deve estar instalado. |
Urn | urn:csci:microsoft:azureKubernetesServiceChaosMesh:dnsChaos/2.2 |
Parâmetros (chave, valor) | |
jsonSpec | Uma especificação de Chaos Mesh formatada em JSON que usa o tipo DNSChaos. Você pode usar um conversor de YAML para JSON como Converter YAML em JSON para converter o YAML da malha do Chaos em JSON e minificá-lo. Use aspas simples no JSON ou evite as aspas com um caractere de barra invertida. Inclua apenas o YAML na propriedade jsonSpec . Não inclua informações como metadados e tipo. Especificar a duração dentro de jsonSpec não é necessário, mas será usado se estiver disponível. |
JSON de exemplo
{
"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)
Propriedade | Valor |
---|---|
Nome do recurso | Shutdown-1.0 |
Tipo de destino | Microsoft-DomainName |
Descrição | Interrompe uma implantação durante a falha. Reinicia a implantação no final da duração da falha ou se o experimento é cancelado. |
Pré-requisitos | Nenhum. |
Urn | urn:csci:microsoft:domainName:shutdown/1.0 |
Tipo de falha | Contínuos. |
Parâmetros | Nenhum. |
JSON de exemplo
{
"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)
Propriedade | Valor |
---|---|
Nome do recurso | Reboot-1.0 |
Tipo de destino | Microsoft-AzureClusteredCacheForRedis |
Descrição | Faz com que uma operação de reinicialização forçada ocorra no destino para simular uma breve interrupção. |
Pré-requisitos | N/D |
Urn | urn:csci:microsoft:azureClusteredCacheForRedis:reboot/1.0 |
Tipo de falha | Discreto. |
Parâmetros (chave, valor) | |
rebootType | Os tipos de nó em que a ação de reinicialização deve ser executada, que pode ser especificada como PrimaryNode, SecondaryNode ou AllNodes. |
shardId | A ID do fragmento a ser reinicializado. Relevante apenas para caches de camada Premium. |
JSON de exemplo
{
"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 causa uma reinicialização forçada para simular melhor um evento de interrupção, o que significa que há o potencial para que a perda de dados ocorra.
- A falha de reinicialização é um tipo de falha discreta. Ao contrário das falhas contínuas, essa é uma ação única e não tem duração.
Failover do Cosmos DB
Propriedade | Valor |
---|---|
Nome do recurso | Failover-1.0 |
Tipo de destino | Microsoft-CosmosDB |
Descrição | Faz com que a 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 da região de gravação. |
Pré-requisitos | Nenhum. |
Urn | urn:csci:microsoft:cosmosDB:failover/1.0 |
Tipo de falha | Contínuos. |
Parâmetros (chave, valor) | |
readRegion | A região de leitura que deve ser promovida para a região de gravação durante o failover, por exemplo, East US 2 . |
JSON de exemplo
{
"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
Propriedade | Valor |
---|---|
Nome do recurso | ChangeEventHubState-1.0 |
Tipo de destino | Microsoft-EventHub |
Descrição | Configura hubs de eventos individuais para o estado desejado em um namespace dos Hubs de Eventos do Azure. É possível especificar hubs de eventos específicos ou usar "*" para modificar todos dentro do namespace. Essa ação pode ajudar a testar sua infraestrutura de mensagens para cenários de manutenção ou falha. Esta é uma falha discreta, portanto, a entidade não retornará automaticamente ao estado inicial. |
Pré-requisitos | Um namespace dos Hubs de Eventos do Azure que contenha pelo menos uma entidade de hub de eventos. |
Urn | urn:csci:microsoft:eventHub:changeEventHubState/1.0 |
Tipo de falha | Discreto. |
Parâmetros (chave, valor) | |
desiredState | O estado desejado para os hubs de eventos escolhidos. Os estados possíveis são Active, Disabled e SendDisabled. |
eventHubs | Uma lista dos nomes dos hubs de eventos separados por vírgulas, que estão dentro do namespace escolhido. Use "*" para aplicar a alteração em todas as entidades dentro do namespace. |
JSON de exemplo
{
"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: negar acesso
Propriedade | Valor |
---|---|
Nome do recurso | DenyAccess-1.0 |
Tipo de destino | Microsoft-KeyVault |
Descrição | Bloqueia todo o acesso de 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 o 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 de chaves de destino não pode ter nenhuma regra de firewall e não pode ser definido para permitir que os serviços do Azure ignorem o firewall. Se o cofre de chaves de destino estiver definido para permitir o acesso somente de redes selecionadas, deverá haver pelo menos uma regra de rede virtual. O cofre de chaves não pode estar no modo de recuperação. |
Urn | urn:csci:microsoft:keyVault:denyAccess/1.0 |
Tipo de falha | Contínuos. |
Parâmetros (chave, valor) | Nenhum. |
JSON de exemplo
{
"name": "branchOne",
"actions": [
{
"type": "continuous",
"name": "urn:csci:microsoft:keyvault:denyAccess/1.0",
"parameters": [],
"duration": "PT10M",
"selectorid": "myResources"
}
]
}
Key Vault: desabilitar certificado
Propriedade | Valor |
---|---|
Nome do recurso | DisableCertificate-1.0 |
Tipo de destino | Microsoft-KeyVault |
Descrição | Ao usar as propriedades de certificado, a falha desabilita o certificado por uma duração específica (fornecida pelo usuário). Ele habilita o certificado após essa duração da falha. |
Pré-requisitos | Nenhum. |
Urn | urn:csci:microsoft:keyvault:disableCertificate/1.0 |
Tipo de falha | Contínuos. |
Parâmetros (chave, valor) | |
certificateName | Nome do certificado do Azure Key Vault no qual a falha é executada. |
version | Versão do certificado que deve ser desabilitada. Se não for especificado, a versão mais recente será desabilitada. |
JSON de exemplo
{
"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: incrementar a versão do certificado
Propriedade | Valor |
---|---|
Nome do recurso | IncrementCertificateVersion-1.0 |
Tipo de destino | Microsoft-KeyVault |
Descrição | Gera uma nova versão de certificado e impressão digital usando a biblioteca de clientes do Certificado do Key Vault. 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. |
Urn | urn:csci:microsoft:keyvault:incrementCertificateVersion/1.0 |
Tipo de falha | Discreto. |
Parâmetros (chave, valor) | |
certificateName | Nome do certificado do Azure Key Vault no qual a falha é executada. |
JSON de exemplo
{
"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: atualizar a política de certificado
Propriedade | Valor |
---|---|
Nome do recurso | UpdateCertificatePolicy-1.0 |
Tipo de destino | Microsoft-KeyVault |
Descrição | 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. |
Urn | urn:csci:microsoft:keyvault:updateCertificatePolicy/1.0 |
Tipo de falha | Contínuos. |
Parâmetros (chave, valor) | |
certificateName | Nome do certificado do Azure Key Vault no qual a falha é executada. |
version | Versão do certificado que deve ser atualizada. Se não for especificado, a versão mais recente será atualizada. |
Habilitado | Booliano. Valor que indica se a nova versão do certificado está habilitada. |
validityInMonths | Período de validade do certificado em meses. |
certificateTransparency | Indica se o certificado deve ser publicado na lista de transparência do certificado ao ser criado. |
certificateType | 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 do ASCII. Pkcs12 é o valor padrão assumido. |
keySize | Tamanho da chave RSA: 2048, 3072 ou 4096. |
exportável | Booliano. Valor que indica se a chave de certificado é exportável do cofre ou repositório de certificados seguro. |
reuseKey | Booliano. Valor que indica se a chave de certificado deve ser reutilizada quando o certificado é girado. |
keyType | Tipo de chave de backup gerada quando novos certificados são emitidos, como RSA ou EC. |
JSON de exemplo
{
"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
Propriedade | Valor |
---|---|
Nome do recurso | SecurityRule-1.0, SecurityRule-1.1 |
Tipo de destino | Microsoft-NetworkSecurityGroup |
Descrição | Habilita a manipulação ou a criação de uma regra em um NSG (grupo de segurança de rede) existente ou em um conjunto de NSGs do Azure, supondo que a definição da regra seja aplicável em todos os grupos de segurança. Útil para:
|
Pré-requisitos | Nenhum. |
Urn | urn:csci:microsoft:networkSecurityGroup:securityRule/1.0, urn:csci:microsoft:networkSecurityGroup:securityRule/1.1 |
Tipo de falha | Contínuos. |
Parâmetros (chave, valor) | |
name | Um nome exclusivo para a regra de segurança que é criada. A falha irá falhar se já existir outra regra no NSG com o mesmo nome. Deve começar com uma letra ou número. Deve terminar com uma letra, número ou sublinhado. Pode conter apenas letras, números, sublinhados, pontos ou hifens. |
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 por 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 por 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. |
ação | Tipo de acesso do 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 porta, como 80 ou 1024-65535. |
sourcePortRanges | Uma cadeia de caracteres que representa uma matriz delimitada por JSON de portas únicas e/ou intervalos de porta, como 80 ou 1024-65535. |
priority | Um valor entre 100 e 4096 que seja exclusivo para todas as regras de segurança dentro do NSG. A falha irá falhar se já existir outra regra no NSG com a mesma prioridade. |
direction | Direção do tráfego afetada pela regra de segurança. Deve ser Entrada ou Saída. |
JSON de exemplo
{
"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 que se destina a negar tráfego é aplicada, as conexões existentes não são interrompidas até que fiquem ociosas por quatro minutos. Uma solução alternativa é adicionar outra ramificação na mesma etapa que use uma falha que faria com que as conexões existentes fossem interrompidas quando a falha de NSG for aplicada. Por exemplo, o encerramento do processo, a interrupção temporária do serviço ou a reinicialização da VM faria com que as conexões fossem redefinidas.
- As regras são aplicadas no início da ação. Todas as alterações externas na regra durante a ação fazem com que o experimento falhe.
- Não há suporte para criar ou modificar regras do Grupo de Segurança de Aplicativo.
- Os valores de prioridade devem ser exclusivos em cada NSG direcionado. A tentativa de criar uma nova regra que tenha o mesmo valor de prioridade que outra faz com que o experimento falhe.
- A falha da regra de segurança NSG versão 1.1 dá suporte a um parâmetro
flushConnection
adicional. Essa funcionalidade tem um problema ativo conhecido: seflushConnection
estiver habilitado, a falha poderá resultar em um erro "FlushingNetworkSecurityGroupConnectionIsNotEnabled". Para evitar esse erro temporariamente, desative o parâmetroflushConnection
ou use a falha da regra de segurança NSG versão 1.0.
Barramento de Serviço: alterar o estado da fila
Propriedade | Valor |
---|---|
Nome do recurso | ChangeQueueState-1.0 |
Tipo de destino | Microsoft-ServiceBus |
Descrição | Define entidades de fila dentro de um namespace do Barramento de Serviço para o estado desejado. É possível influenciar nomes de entidade específicos ou usar "*" para influenciar todos. Essa ação pode ajudar a testar sua infraestrutura de mensagens para cenários de manutenção ou falha. Esta é uma falha discreta, portanto, a entidade não retornará automaticamente ao estado inicial. |
Pré-requisitos | Um namespace do Barramento de Serviço com pelo menos uma Entidade de fila. |
Urn | urn:csci:microsoft:serviceBus:changeQueueState/1.0 |
Tipo de falha | Discreto. |
Parâmetros (chave, valor) | |
desiredState | O estado desejado para as filas de destino. Os estados possíveis são Ativo, Desabilitado, SendDisabled e ReceiveDisabled. |
queues | Uma lista separada por vírgulas dos nomes de fila dentro do namespace de destino. Use "*" para influenciar todas as filas dentro do namespace. |
JSON de exemplo
{
"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
- No máximo 1.000 entidades de fila podem ser passadas para essa falha.
Barramento de Serviço: alterar o estado da assinatura
Propriedade | Valor |
---|---|
Nome do recurso | ChangeSubscriptionState-1.0 |
Tipo de destino | Microsoft-ServiceBus |
Descrição | Define entidades de assinatura em um namespace do Barramento de Serviço e Tópico para o estado desejado. É possível influenciar nomes de entidade específicos ou usar "*" para influenciar todos. Essa ação pode ajudar a testar sua infraestrutura de mensagens para cenários de manutenção ou falha. Esta é uma falha discreta, portanto, a entidade não retornará automaticamente ao estado inicial. |
Pré-requisitos | Um namespace do Barramento de Serviço com pelo menos uma Entidade de assinatura. |
Urn | urn:csci:microsoft:serviceBus:changeSubscriptionState/1.0 |
Tipo de falha | Discreto. |
Parâmetros (chave, valor) | |
desiredState | O estado desejado para as assinaturas de destino. Os estados possíveis são Ativos e Desabilitados. |
tópico | O tópico pai que contém uma ou mais assinaturas a serem afetadas. |
assinaturas | Uma lista separada por vírgulas dos nomes de assinatura dentro do namespace de destino. Use "*" para influenciar todas as assinaturas no namespace. |
JSON de exemplo
{
"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
- No máximo 1.000 entidades de assinatura podem ser passadas para essa falha.
Barramento de Serviço: alterar o estado do tópico
Propriedade | Valor |
---|---|
Nome do recurso | ChangeTopicState-1.0 |
Tipo de destino | Microsoft-ServiceBus |
Descrição | Define as entidades de Tópico especificadas em um namespace do Barramento de Serviço como o estado desejado. É possível influenciar nomes de entidade específicos ou usar "*" para influenciar todos. Essa ação pode ajudar a testar sua infraestrutura de mensagens para cenários de manutenção ou falha. Esta é uma falha discreta, portanto, a entidade não retornará automaticamente ao estado inicial. |
Pré-requisitos | Um namespace do Barramento de Serviço com pelo menos uma Entidade de tópico. |
Urn | urn:csci:microsoft:serviceBus:changeTopicState/1.0 |
Tipo de falha | Discreto. |
Parâmetros (chave, valor) | |
desiredState | O estado desejado para os tópicos de destino. Os estados possíveis são Ativos e Desabilitados. |
topics | Uma lista separada por vírgulas dos nomes de tópico no namespace de destino. Use "*" para influenciar todos os tópicos no namespace. |
JSON de exemplo
{
"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
- No máximo 1.000 entidades de tópico podem ser passadas para essa falha.
Reimplantação de VM
Propriedade | Valor |
---|---|
Nome do recurso | Redeploy-1.0 |
Tipo de destino | Microsoft-VirtualMachine |
Descrição | Implanta novamente uma VM desligando-a, movendo-a para um novo nó na infraestrutura do Azure e ativando-a novamente. Isso ajuda a validar a resiliência da carga de trabalho para eventos de manutenção. |
Pré-requisitos | Nenhum. |
Urn | urn:csci:microsoft:virtualMachine:redeploy/1.0 |
Tipo de falha | Discreto. |
Parâmetros (chave, valor) | Nenhum. |
JSON de exemplo
{
"name": "branchOne",
"actions": [
{
"type": "discrete",
"name": "urn:csci:microsoft:virtualMachine:redeploy/1.0",
"parameters":[],
"selectorid": "myResources"
}
]
}
Limitações
- A operação de implantar novamente a Máquina Virtual é limitada em um intervalo de 10 horas. Se a sua experiência falhar com um erro "Demasiadas solicitações de reimplantação", aguarde 10 horas para tentar novamente a experiência.
Desligamento da Máquina Virtual
Propriedade | Valor |
---|---|
Nome do recurso | Shutdown-1.0 |
Tipo de destino | Microsoft-VirtualMachine |
Tipos de sistema operacional com suporte | Windows, Linux. |
Descrição | Desliga uma VM durante a falha. Reinicia-o no final do experimento ou se o experimento é cancelado. Somente as VMs do Azure Resource Manager têm suporte. |
Pré-requisitos | Nenhum. |
Urn | urn:csci:microsoft:virtualMachine:shutdown/1.0 |
Tipo de falha | Contínuos. |
Parâmetros (chave, valor) | |
abruptShutdown | (Opcional) Booliano que indica se a VM deve ser desligada normalmente ou abruptamente (destrutiva). |
JSON de exemplo
{
"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 Dimensionamento de Máquinas Virtuais
Essa 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 zona especificada.
Desligamento do Conjunto de Dimensionamento de Máquinas Virtuais Versão 1.0
Propriedade | Valor |
---|---|
Nome do recurso | Versão 1.0 |
Tipo de destino | Microsoft-VirtualMachineScaleSet |
Tipos de sistema operacional com suporte | Windows, Linux. |
Descrição | Desliga ou encerra uma instância do conjunto de dimensionamento de máquinas virtuais durante a falha e reinicia a VM no final do experimento ou quando ele é cancelado. |
Pré-requisitos | Nenhum. |
Urn | urn:csci:microsoft:virtualMachineScaleSet:shutdown/1.0 |
Tipo de falha | Contínuos. |
Parâmetros (chave, valor) | |
abruptShutdown | (Opcional) Booliano que indica se a instância do conjunto de dimensionamento de máquinas virtuais deve ser desligada normalmente ou abruptamente (destrutiva). |
instances | Uma cadeia de caracteres que é uma matriz delimitada das IDs de instância do conjunto de dimensionamento de máquinas virtuais às quais a falha é aplicada. |
Versão 1.0 amostra JSON
{
"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áquinas Virtuais Versão 2.0
Propriedade | Valor |
---|---|
Nome do recurso | Desligado-2.0 |
Tipo de destino | Microsoft-VirtualMachineScaleSet |
Tipos de sistema operacional com suporte | Windows, Linux. |
Descrição | Desliga ou encerra uma instância do conjunto de dimensionamento de máquinas virtuais durante a falha. Reinicia a VM no final da duração da falha ou se o experimento é cancelado. Dá suporte ao direcionamento dinâmico. |
Pré-requisitos | Nenhum. |
Urn | urn:csci:microsoft:virtualMachineScaleSet:shutdown/2.0 |
Tipo de falha | Contínuos. |
filtro | (Opcional) Disponível a partir da versão 2.0. Usado para filtrar a lista de destinos em um seletor. Atualmente, dá suporte à filtragem em uma lista de zonas. O filtro só é aplicado aos recursos do conjunto de dimensionamento de máquinas virtuais dentro de uma zona:
|
Parâmetros (chave, valor) | |
abruptShutdown | (Opcional) Booliano que indica se a instância do conjunto de dimensionamento de máquinas virtuais deve ser desligada normalmente ou abruptamente (destrutiva). |
Snippets JSON de amostra da versão 2.0
Os snippets a seguir mostram como configurar a filtragem dinâmica e a falha do desligamento 2.0.
Configurar um filtro para direcionamento dinâmico:
{
"type": "List",
"id": "myResources",
"targets": [
{
"id": "<targetResourceId>",
"type": "ChaosTarget"
}
],
"filter": {
"type": "Simple",
"parameters": {
"zones": [
"1"
]
}
}
}
Configurar 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, há suporte apenas para conjuntos de dimensionamento de máquinas virtuais configurados com o modo de orquestração Uniforme. Se o conjunto de dimensionamento de máquinas virtuais usar a orquestração Flexível, você poderá usar a falha de desligamento da máquina virtual do Azure Resource Manager para desligar as instâncias selecionadas.
Detalhes: ações de orquestração
Atrasar
Propriedade | Valor |
---|---|
Provedor de falhas | N/D |
Tipos de sistema operacional com suporte | N/D |
Descrição | Adiciona um atraso de tempo antes, entre ou depois de outras ações experimentais. Essa ação não é uma falha e é usada para sincronizar ações dentro de um experimento. Use esta ação para aguardar a conclusão do impacto de uma falha em um serviço ou aguardar a conclusão de uma atividade fora do experimento. Por exemplo, seu experimento poderia esperar que a recuperação automática ocorresse antes de injetar outra falha. |
Pré-requisitos | N/D |
Urn | urn:csci:microsoft:chaosStudio:timedDelay/1.0 |
Duration | A duração do atraso no formato ISO 8601 (por exemplo, PT10M). |
JSON de exemplo
{
"name": "branchOne",
"actions": [
{
"type": "delay",
"name": "urn:csci:microsoft:chaosStudio:timedDelay/1.0",
"duration": "PT10M"
}
]
}
Iniciar teste de carga (Teste de Carga do Azure)
Propriedade | Valor |
---|---|
Nome do recurso | Start-1.0 |
Tipo de destino | Microsoft-AzureLoadTest |
Descrição | 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. |
Urn | urn:csci:microsoft:azureLoadTest:start/1.0 |
Tipo de falha | Discreto. |
Parâmetros (chave, valor) | |
testID | A ID de um teste de carga específica criada no serviço de Teste de Carga do Azure. |
JSON de exemplo
{
"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)
Propriedade | Valor |
---|---|
Nome do recurso | Stop-1.0 |
Tipo de destino | Microsoft-AzureLoadTest |
Descrição | 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. |
Urn | urn:csci:microsoft:azureLoadTest:stop/1.0 |
Tipo de falha | Discreto. |
Parâmetros (chave, valor) | |
testID | A ID de um teste de carga específica criada no serviço de Teste de Carga do Azure. |
JSON de exemplo
{
"name": "branchOne",
"actions": [
{
"type": "discrete",
"name": "urn:csci:microsoft:azureLoadTest:stop/1.0",
"parameters": [
{
"key": "testID",
"value": "0"
}
],
"selectorid": "myResources"
}
]
}