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, Linux Desconexão da rede Interrupção de rede
Windows, Linux Latência da rede Degradação do desempenho da rede
Windows, Linux Perda de pacotes de rede Problemas de confiabilidade 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, Linux Alteração de tempo Problemas de sincronização de tempo
Windows, Linux 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
Windows falha de DNS Problemas de resolução de DNS
Windows Desconexão de rede (via Firewall) Interrupção de rede

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

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 de VMSS Perda/interrupção de computação
Desligamento de VMSS (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.
Descrição 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 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
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.

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

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

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

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:
  • Originar 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.
Urn urn:csci:microsoft:agent:dnsFailure/1.0
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:
  • *.microsoft.com conta com suporte.
  • subdomain.*.microsoft não conta com suporte.
  • *.microsoft.com não funciona para vários subdomínios em um endereço, como subdomínio1.subdomínio2.microsoft.com.
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
Parâmetros (chave, valor)
pressureLevel Um inteiro entre 1 e 99 que indica a quantidade de pressão da CPU (%) que é 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
Parâmetros (chave, valor)
pressureLevel Um inteiro entre 1 e 99 que indica a quantidade de pressão de memória física (%) que é 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
Parâmetros (chave, valor)
pressureLevel Um inteiro entre 1 e 99 que indica a quantidade de pressão de memória física (%) que é 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
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
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
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.
Pré-requisitos Nenhum.
Urn urn:csci:microsoft:agent:killProcess/1.0
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"
    }
  ]
}

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
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
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 DisaleAutoscale
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.1
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.1
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 jsonSpecnã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.1",
      "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.1
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.1
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 jsonSpecnã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.1",
      "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.1
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.1
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 jsonSpecnã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.1",
      "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.1
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.1
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 jsonSpecnã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.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"
    }
  ]
}

Caos de tempo do Chaos Mesh do AKS

Propriedade Valor
Nome do recurso TimeChaos-2.1
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.1
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 jsonSpecnã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.1",
      "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.1
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.1
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 jsonSpecnã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.1",
      "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.1
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.1
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 jsonSpecnã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.1",
      "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.1
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.1
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 jsonSpecnã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.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)

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
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
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:
  • Simular uma interrupção de uma dependência de downstream ou entre regiões/sem dependência.
  • Simular um evento que deve disparar uma lógica para forçar um failover de serviço.
  • Simular um evento que deve disparar uma ação de um serviço de monitoramento ou gerenciamento de estado.
  • Usar como alternativa para bloquear ou permitir o tráfego de rede em que o Agente do Chaos não pode ser implantado.
Pré-requisitos Nenhum.
Urn urn:csci:microsoft:networkSecurityGroup:securityRule/1.0
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.

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 VM

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

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