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, Linux Desconexão de rede Interrupção da rede
Windows, Linux Latência da rede Degradação do desempenho da rede
Windows, Linux Perda de pacotes de rede Problemas de fiabilidade 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, Linux Mudança de hora Problemas de sincronização de tempo
Windows, Linux 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
Windows Falha de DNS Problemas de resolução de DNS
Windows Desconexão de rede (via firewall) Interrupção da rede

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 VMSS)

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 VMSS Perda/interrupção de computação
Desligamento do VMSS (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.
Description Bloqueia o tráfego de rede de saída 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
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.

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 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 estiver instalado como uma extensão de VM, ele será executado como administrador por padrão.
Urna urn:csci:microsoft:agent:networkDisconnectViaFirewall/1.0
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.

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
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 e destinationFilters ).
  • Quando executado no Windows, a falha de latência de rede atualmente só funciona com pacotes TCP ou UDP.

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
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
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.

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:
  • Originar-se da VM.
  • Corresponder aos parâmetros de falha definidos.
As pesquisas de DNS que não são feitas pelo cliente DNS do Windows não são afetadas por essa falha.
Pré-requisitos Nenhum.
Urna urn:csci:microsoft:agent:dnsFailure/1.0
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:
  • *.microsoft.com é suportado.
  • subdomínio.*.microsoft não é suportado.
  • *.microsoft.com não funciona para vários subdomínios em um endereço, como subdomain1.subdomain2.microsoft.com.
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
Parâmetros (chave, valor)
nível de pressão Um inteiro entre 1 e 99 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
Parâmetros (chave, valor)
nível de pressão Um inteiro entre 1 e 99 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
Parâmetros (chave, valor)
nível de pressão Um inteiro entre 1 e 99 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
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
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
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.
Pré-requisitos Nenhum.
Urna urn:csci:microsoft:agent:killProcess/1.0
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"
    }
  ]
}

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
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
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 DisaleAutoscale
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.1
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.1
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.1",
      "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.1
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.1
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.1",
      "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.1
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.1
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.1",
      "parameters": [
        {
            "key": "jsonSpec",
            "value": "{\"mode\":\"one\",\"selector\":{\"namespaces\":[\"default\"]},\"stressors\":{\"cpu\":{\"workers\":1,\"load\":50},\"memory\":{\"workers\":4,\"size\":\"256MB\"}}"
        }
    ],
      "selectorid": "myResources"
    }
  ]
}

AKS Chaos Mesh IO Chaos

Property valor
Nome do recurso IOChaos-2,1
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, reade write.
Pré-requisitos O cluster AKS deve ter o Chaos Mesh implantado.
Urna urn:csci:microsoft:azureKubernetesServiceChaosMesh:IOChaos/2.1
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.1",
      "parameters": [
        {
            "key": "jsonSpec",
            "value": "{\"action\":\"latency\",\"mode\":\"one\",\"selector\":{\"app\":\"etcd\"},\"volumePath\":\"\/var\/run\/etcd\",\"path\":\"\/var\/run\/etcd\/**\/*\",\"delay\":\"100ms\",\"percent\":50}"
        }
    ],
      "selectorid": "myResources"
    }
  ]
}

AKS Chaos Malha Tempo Caos

Property valor
Nome do recurso TimeChaos-2.1
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.1
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.1",
      "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.1
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.1
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.1",
      "parameters": [
        {
            "key": "jsonSpec",
            "value": "{\"mode\":\"one\",\"selector\":{\"namespaces\":[\"default\"]},\"failKernRequest\":{\"callchain\":[{\"funcname\":\"__x64_sys_mount\"}],\"failtype\":0}}"
        }
    ],
      "selectorid": "myResources"
    }
  ]
}

AKS Chaos Mesh HTTP Chaos

Property valor
Nome do recurso HTTPChaos-2,1
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.1
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.1",
      "parameters": [
        {
            "key": "jsonSpec",
            "value": "{\"mode\":\"all\",\"selector\":{\"namespaces\":[\"default\"]},\"target\":\"Request\",\"port\":80,\"method\":\"GET\",\"path\":\"/api\",\"abort\":true}"
        }
    ],
      "selectorid": "myResources"
    }
  ]
}

AKS Chaos Mesh DNS Chaos

Property valor
Nome do recurso DNSChaos-2,1
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.1
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.1",
      "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
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
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:
  • Simulação de uma interrupção de uma dependência/não dependência a jusante ou entre regiões.
  • Simular um evento que se espera acionar uma lógica para forçar um failover de serviço.
  • Simular um evento que se espera que acione uma ação de um serviço de monitoramento ou gerenciamento de estado.
  • Usando como alternativa para bloquear ou permitir tráfego de rede onde o Chaos Agent não pode ser implantado.
Pré-requisitos Nenhum.
Urna urn:csci:microsoft:networkSecurityGroup:securityRule/1.0
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.

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 VM

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
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 VMSS

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 VMSS 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
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 VMSS 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
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:
  • Se nenhum filtro for especificado, essa falha desligará todas as instâncias no conjunto de escala da máquina virtual.
  • O experimento tem como alvo todas as instâncias do conjunto de dimensionamento de máquinas virtuais nas zonas especificadas.
  • Se um filtro não resultar em nenhum alvo, o experimento falhará.
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"
    }
  ]
}