Share via


Biblioteca de acciones y errores de Azure Chaos Studio

En este artículo se enumeran los errores que puede usar en Chaos Studio, organizados por el tipo de recurso aplicable. Para comprender qué asignaciones de roles se recomiendan para cada tipo de recurso, consulte Tipos de recursos admitidos y asignaciones de roles para Azure Chaos Studio.

Errores basados en agente

Los errores basados en agente se insertan en Azure Virtual Machines o en instancias de conjunto de escalado de máquinas virtuales instalando el agente de Chaos Studio. Busque las opciones de error directo del servicio para estos recursos en las tablas Máquina virtual y Conjunto de escalado de máquinas virtuales.

Tipos de sistema operativo aplicables Nombre de error Situaciones aplicables
Windows, Linux Presión de CPU Pérdida de capacidad de proceso, presión de recursos
Windows, Linux Proceso de terminación Interrupción de dependencias
Windows Pausar proceso Interrupción de dependencias, interrupción del servicio
Windows, Linux Desconexión de red Interrupción de la red
Windows, Linux Latencia de red Degradación del rendimiento de la red
Windows, Linux Pérdida de paquetes de red Problemas de confiabilidad de red
Windows, Linux Presión de memoria física Pérdida de capacidad de memoria, presión de recursos
Windows, Linux Detención del servicio Interrupción o reinicio del servicio
Windows, Linux Cambio de hora Problemas de sincronización de hora
Windows, Linux Presión de memoria virtual Pérdida de capacidad de memoria, presión de recursos
Linux Esfuerzo de stress-ng arbitrario Pruebas generales de esfuerzo del sistema
Linux Presión de DiskIO de Linux Degradación del rendimiento de E/S de disco
Windows Presión de DiskIO Degradación del rendimiento de E/S de disco
Windows Error de DNS Problemas de resolución de DNS
Windows Desconexión de red (mediante firewall) Interrupción de la red

App Service

Esta sección se aplica al tipo de recurso Microsoft.Web/sites. Obtenga más información sobre App Service.

Nombre de error Situaciones aplicables
Detención de App Service Interrupción del servicio

Configuración de escalado automático

Esta sección se aplica al tipo de recurso Microsoft.Insights/autoscaleSettings. Obtenga más información sobre la configuración de escalabilidad automática.

Nombre de error Situaciones aplicables
Deshabilitar escalado automático Pérdida de capacidad de proceso (cuando se usa con apagado de VMSS)

Azure Kubernetes Service

Esta sección se aplica al tipo de recurso Microsoft.ContainerService/managedClusters. Obtenga más información acerca de Azure Kubernetes Service.

Nombre de error Situaciones aplicables
Chaos de DNS de Chaos Mesh de AKS Problemas de resolución de DNS
Chaos de HTTP de Chaos Mesh de AKS Interrupción de la red
Chaos de E/S de Chaos Mesh de AKS Degradación y presión del disco
Chaos del kernel de Chaos Mesh de AKS Interrupción del kernel
Chaos de red de Chaos Mesh de AKS Interrupción de la red
Chaos de pod de Chaos Mesh de AKS Interrupción del contenedor
Chaos de esfuerzo de Chaos Mesh de AKS Pruebas de esfuerzo del sistema
Chaos de tiempo de Chaos Mesh de AKS Problemas de sincronización de hora

Cloud Services (clásico)

Esta sección se aplica al tipo de recurso Microsoft.ClassicCompute/domainNames. Obtenga más información sobre Cloud Services (clásico).

Nombre de error Situaciones aplicables
Apagado del servicio en la nube Pérdida de proceso

Caché en clúster para Redis

Esta sección se aplica al tipo de recurso Microsoft.Cache/redis. Obtenga más información sobre caché en clúster para Redis.

Nombre de error Situaciones aplicables
Azure Cache for Redis (reinicio) Interrupción de dependencias (cachés)

Cosmos DB

Esta sección se aplica al tipo de recurso Microsoft.DocumentDB/databaseAccounts. Más información sobre Azure Cosmos DB.

Nombre de error Situaciones aplicables
Conmutación por error de Cosmos DB Conmutación por error de la base de datos

Event Hubs

Esta sección se aplica al tipo de recurso Microsoft.EventHub/namespaces. Más información sobre Event Hubs.

Nombre de error Situaciones aplicables
Cambiar el estado del centro de eventos Configuración o interrupción de la infraestructura de mensajería

Key Vault

Esta sección se aplica al tipo de recurso Microsoft.KeyVault/vaults. Obtenga más información sobre Key Vault.

Nombre de error Situaciones aplicables
Key Vault: Denegar acceso Denegación de certificado
Key Vault: Deshabilitar certificado Interrupción del certificado
Key Vault: Incrementar la versión del certificado Incremento de la versión del certificado
Key Vault: Actualizar directiva de certificado Cambios o configuraciones incorrectas de la directiva de certificado

Grupos de seguridad de red

Esta sección se aplica al tipo de recurso Microsoft.Network/networkSecurityGroups. Más información sobre los grupos de seguridad de red.

Nombre de error Situaciones aplicables
Regla de seguridad de NSG Interrupción de la red (para muchos servicios de Azure)

Service Bus

Esta sección se aplica al tipo de recurso Microsoft.ServiceBus/namespaces. Más información acerca de Service Bus.

Nombre de error Situaciones aplicables
Cambio del estado de la cola Configuración o interrupción de la infraestructura de mensajería
Cambio del estado de la suscripción Configuración o interrupción de la infraestructura de mensajería
Cambio del estado del tema Configuración o interrupción de la infraestructura de mensajería

Virtual Machines (service-direct)

Esta sección se aplica al tipo de recurso Microsoft.Compute/virtualMachines. Obtenga más información acerca de Virtual Machines.

Nombre de error Situaciones aplicables
Reimplementación de máquina virtual Interrupción del proceso, eventos de mantenimiento
Apagado de máquina virtual Pérdida o interrupción del proceso

Conjunto de escalado de máquinas virtuales

Esta sección se aplica al tipo de recurso Microsoft.Compute/virtualMachineScaleSets. Obtenga más información sobre Virtual Machine Scale Sets.

Nombre de error Situaciones aplicables
Apagado de VMSS Pérdida o interrupción del proceso
Apagado de VMSS (2.0) Pérdida o interrupción del proceso (por zona de disponibilidad)

Acciones de orquestación

Estas acciones son bloques de creación para construir experimentos efectivos. Úselas en combinación con otros errores, como ejecutar una prueba de carga mientras se cierran instancias de proceso en paralelo en una zona.

Categoría de acción Nombre de error
Cargar Inicio de prueba de carga (Azure Load Testing)
Cargar Detención de la prueba de carga (Azure Load Testing)
Retraso de tiempo Delay

Detalles: errores basados en agente

Desconexión de red

Propiedad Valor
Nombre de la prestación NetworkDisconnect-1.1
Tipo de destino Microsoft-Agent
Tipos de sistema operativo admitidos Windows y Linux.
Descripción Bloquea el tráfico de red saliente para el intervalo de puertos y el bloque de red especificados. Se debe proporcionar al menos una matriz destinationFilter o inboundDestinationFilter.
Requisitos previos Windows: el agente debe ejecutarse como administrador, lo que sucede de forma predeterminada si se instala como una extensión de máquina virtual.
Linux: el paquete tc (Control de tráfico) se usa para errores de red. Si aún no está instalado, el agente intenta instalarlo automáticamente desde el administrador de paquetes predeterminado.
Urn urn:csci:microsoft:agent:networkDisconnect/1.1
Parámetros (clave, valor)
destinationFilters Matriz JSON delimitada de filtros de paquetes que definen los paquetes salientes que se van a destinar. Máximo de 16.
inboundDestinationFilters Matriz JSON delimitada de filtros de paquetes que definen los paquetes entrantes que se van a destinar. Máximo de 16.
virtualMachineScaleSetInstances Matriz de id. de instancia al aplicar este error a un conjunto de escalado de máquinas virtuales. Necesario para los conjuntos de escalado de máquinas virtuales en modo de orquestación uniforme. Obtenga más información sobre los id. de instancia.

Los parámetros destinationFilters e inboundDestinationFilters usan la siguiente matriz de filtros de paquetes.

Propiedad Valor
address Dirección IP que indica el inicio del intervalo IP.
subnetMask Máscara de subred para el intervalo de direcciones IP.
portLow (Opcional) Número de puerto del inicio del intervalo de puertos.
portHigh (Opcional) Número de puerto del final del intervalo de puertos.

Ejemplo 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"
    }
  ]
}

Limitaciones

  • Actualmente, los errores de red basados en agente solo admiten direcciones IPv4.
  • El error de desconexión de red solo afecta a las nuevas conexiones. Las conexiones activas existentes siguen persistiendo. Puede reiniciar el servicio o el proceso para forzar la interrupción de las conexiones.
  • Cuando se ejecuta en Windows, el error de desconexión de red solo funciona actualmente con paquetes TCP o UDP.

Desconexión de red (mediante firewall)

Propiedad Valor
Nombre de la prestación NetworkDisconnectViaFirewall-1.0
Tipo de destino Microsoft-Agent
Tipos de sistema operativo admitidos Windows
Descripción Aplica una regla de firewall de Windows para bloquear el tráfico saliente para el intervalo de puertos y el bloque de red especificados.
Requisitos previos El agente debe ejecutarse como administrador. Si el agente se instala como una extensión de máquina virtual, se ejecuta como administrador de manera predeterminada.
Urn urn:csci:microsoft:agent:networkDisconnectViaFirewall/1.0
Parámetros (clave, valor)
destinationFilters Matriz JSON delimitada de filtros de paquetes que define los paquetes salientes que se deben dirigir para la inyección de errores.
address Dirección IP que indica el inicio del intervalo IP.
subnetMask Máscara de subred para el intervalo de direcciones IP.
portLow (Opcional) Número de puerto del inicio del intervalo de puertos.
portHigh (Opcional) Número de puerto del final del intervalo de puertos.
virtualMachineScaleSetInstances Matriz de id. de instancia al aplicar este error a un conjunto de escalado de máquinas virtuales. Necesario para los conjuntos de escalado de máquinas virtuales en modo de orquestación uniforme. Obtenga más información sobre los id. de instancia.

Ejemplo 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"
    }
  ]
}

Limitaciones

  • Actualmente, los errores de red basados en agente solo admiten direcciones IPv4.

Latencia de red

Propiedad Valor
Nombre de la prestación NetworkLatency-1.1
Tipo de destino Microsoft-Agent
Tipos de sistema operativo admitidos Windows y Linux (solo tráfico saliente)
Descripción Aumenta la latencia de red para un intervalo de puertos y un bloque de red especificados. Se debe proporcionar al menos una matriz destinationFilter o inboundDestinationFilter.
Requisitos previos Windows: el agente debe ejecutarse como administrador, lo que sucede de forma predeterminada si se instala como una extensión de máquina virtual.
Linux: el paquete tc (Control de tráfico) se usa para errores de red. Si aún no está instalado, el agente intenta instalarlo automáticamente desde el administrador de paquetes predeterminado.
Urn urn:csci:microsoft:agent:networkLatency/1.1
Parámetros (clave, valor)
latencyInMilliseconds Cantidad de latencia que se va a aplicar en milisegundos.
destinationFilters Matriz JSON delimitada de filtros de paquetes que definen los paquetes salientes que se van a destinar. Máximo de 16.
inboundDestinationFilters Matriz JSON delimitada de filtros de paquetes que definen los paquetes entrantes que se van a destinar. Máximo de 16.
virtualMachineScaleSetInstances Matriz de id. de instancia al aplicar este error a un conjunto de escalado de máquinas virtuales. Necesario para los conjuntos de escalado de máquinas virtuales en modo de orquestación uniforme. Obtenga más información sobre los id. de instancia.

Los parámetros destinationFilters e inboundDestinationFilters usan la siguiente matriz de filtros de paquetes.

Propiedad Valor
address Dirección IP que indica el inicio del intervalo IP.
subnetMask Máscara de subred para el intervalo de direcciones IP.
portLow (Opcional) Número de puerto del inicio del intervalo de puertos.
portHigh (Opcional) Número de puerto del final del intervalo de puertos.

Ejemplo 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"
    }
  ]
}

Limitaciones

  • Actualmente, los errores de red basados en agente solo admiten direcciones IPv4.
  • Cuando se ejecuta en Linux, el error de latencia de red solo puede afectar al tráfico saliente, nunca al entrante. El error puede afectar tanto al tráfico entrante como al saliente en entornos de Windows (a través de los inboundDestinationFilters parámetros y destinationFilters).
  • Cuando se ejecuta en Windows, el error de latencia de red solo funciona actualmente con paquetes TCP o UDP.

Pérdida de paquetes de red

Propiedad Valor
Nombre de la prestación NetworkPacketLoss-1.0
Tipo de destino Microsoft-Agent
Tipos de sistema operativo admitidos Windows, Linux
Descripción Introduce la pérdida de paquetes para el tráfico saliente a una velocidad especificada, entre 0,0 (sin paquetes perdidos) y 1,0 (todos los paquetes perdidos). Esto puede ayudar a simular escenarios como problemas de congestión de red o hardware de red.
Requisitos previos Windows: el agente debe ejecutarse como administrador, lo que sucede de forma predeterminada si se instala como una extensión de máquina virtual.
Linux: el paquete tc (Control de tráfico) se usa para errores de red. Si aún no está instalado, el agente intenta instalarlo automáticamente desde el administrador de paquetes predeterminado.
Urn urn:csci:microsoft:agent:networkPacketLoss/1.0
Parámetros (clave, valor)
packetLossRate Velocidad a la que se perderán los paquetes que coincidan con los filtros de destino, que va de 0,0 a 1,0.
virtualMachineScaleSetInstances Matriz de id. de instancia al aplicar este error a un conjunto de escalado de máquinas virtuales. Necesario para los conjuntos de escalado de máquinas virtuales en modo de orquestación uniforme. Obtenga más información sobre los id. de instancia.
destinationFilters Matriz JSON delimitada de filtros de paquetes (parámetros que se indican a continuación) que definen los paquetes salientes que se destinan a la inyección de errores. Máximo de tres.
address Dirección IP que indica el inicio del intervalo IP.
subnetMask Máscara de subred para el intervalo de direcciones IP.
portLow (Opcional) Número de puerto del inicio del intervalo de puertos.
portHigh (Opcional) Número de puerto del final del intervalo de puertos.

Ejemplo 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"
    }
  ]
}

Limitaciones

  • Actualmente, los errores de red basados en agente solo admiten direcciones IPv4.
  • Cuando se ejecuta en Windows, el error de pérdida de paquete de red solo funciona actualmente con paquetes TCP o UDP.

Error de DNS

Propiedad Valor
Nombre de la prestación DnsFailure-1.0
Tipo de destino Microsoft-Agent
Tipos de sistema operativo admitidos Windows
Descripción Sustituye las respuestas de una solicitud de búsqueda DNS por un código de error especificado. Las solicitudes de búsqueda DNS que se sustituyen deben:
  • Originarse desde la máquina virtual.
  • Coincidir con los parámetros de error definidos.
A las búsquedas DNS que no realiza el cliente DNS de Windows no les afectará este error.
Requisitos previos Ninguno.
Urn urn:csci:microsoft:agent:dnsFailure/1.0
Parámetros (clave, valor)
hosts Matriz JSON delimitada de nombres de host para los que se producirá un error en la solicitud de búsqueda DNS.

Esta propiedad acepta caracteres comodín (*), pero solo para el primer subdominio de una dirección y solo se aplica al subdominio para el que se especifican. Por ejemplo:
  • Se admite *.microsoft.com.
  • No se admite subdomain.*.microsoft.
  • *.microsoft.com no tendrá en cuenta varios subdominios en una dirección, como subdomain1.subdomain2.microsoft.com.
dnsFailureReturnCode Código de error DNS que se va a devolver al cliente para el error de búsqueda (FormErr, ServFail, NXDomain, NotImp, Refused, XDomain, YXRRSet, NXRRSet, NotAuth, NotZone). Para obtener más información sobre los códigos de retorno DNS, consulte el sitio web de IANA.
virtualMachineScaleSetInstances Matriz de id. de instancia al aplicar este error a un conjunto de escalado de máquinas virtuales. Necesario para los conjuntos de escalado de máquinas virtuales en modo de orquestación uniforme. Obtenga más información sobre los id. de instancia.

Ejemplo 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"
    }
  ]
}

Limitaciones

  • El error de DNS requiere Windows 2019 RS5 o posterior.
  • La caché DNS se omite durante la duración del error para los nombres de host definidos en el error.

Presión de CPU

Propiedad Valor
Nombre de la prestación CPUPressure-1.0
Tipo de destino Microsoft-Agent
Tipos de sistema operativo admitidos Windows y Linux.
Descripción Agregue presión de CPU hasta el valor especificado en la máquina virtual donde se inserta este error durante la acción de error. La presión artificial de la CPU se elimina al final de la duración o si se cancela el experimento. En Windows, el contador de rendimiento % de utilidad del procesador se usa al principio del error para determinar el porcentaje de CPU actual, que se resta del elemento pressureLevel definido en el error para que % de utilidad del procesador alcance aproximadamente el elemento pressureLevel definido en los parámetros de error.
Requisitos previos Linux: debe instalarse la utilidad stress-ng. Esto sucede automáticamente como parte de la instalación del agente mediante el administrador de paquetes predeterminado en varios sistemas operativos, incluyendo los basados en Debian (como Ubuntu), Red Hat Enterprise Linux y OpenSUSE. Para otras distribuciones, incluido Azure Linux, debe instalar stress-ng manualmente. Para obtener más información, consulte el repositorio de proyectos ascendentes.
Windows: ninguno.
Urn urn:csci:microsoft:agent:cpuPressure/1.0
Parámetros (clave, valor)
pressureLevel Entero entre 1 y 99 que indica cuánta presión de CPU (%) se aplica a la máquina virtual en términos de % de uso de la CPU.
virtualMachineScaleSetInstances Matriz de id. de instancia al aplicar este error a un conjunto de escalado de máquinas virtuales. Necesario para los conjuntos de escalado de máquinas virtuales en modo de orquestación uniforme. Obtenga más información sobre los id. de instancia.

Ejemplo 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"
    }
  ]
}

Limitaciones

Problemas conocidos en Linux:

  • Es posible que el efecto de estrés no finalice correctamente si AzureChaosAgent se termina inesperadamente.

Presión de memoria física

Propiedad Valor
Nombre de la prestación PhysicalMemoryPressure-1.0
Tipo de destino Microsoft-Agent
Tipos de sistema operativo admitidos Windows y Linux.
Descripción Agrega presión de memoria física, hasta el valor especificado, en la máquina virtual donde se inserta este error durante la acción de error. La presión de memoria física artificial se elimina al final de la duración o si se cancela el experimento.
Requisitos previos Linux: debe instalarse la utilidad stress-ng. Esto sucede automáticamente como parte de la instalación del agente mediante el administrador de paquetes predeterminado en varios sistemas operativos, incluyendo los basados en Debian (como Ubuntu), Red Hat Enterprise Linux y OpenSUSE. Para otras distribuciones, incluido Azure Linux, debe instalar stress-ng manualmente. Para obtener más información, consulte el repositorio de proyectos ascendentes.
Windows: ninguno.
Urn urn:csci:microsoft:agent:physicalMemoryPressure/1.0
Parámetros (clave, valor)
pressureLevel Entero entre 1 y 99 que indica cuánta presión de memoria física (%) se aplica a la máquina virtual.
virtualMachineScaleSetInstances Matriz de id. de instancia al aplicar este error a un conjunto de escalado de máquinas virtuales. Necesario para los conjuntos de escalado de máquinas virtuales en modo de orquestación uniforme. Obtenga más información sobre los id. de instancia.

Ejemplo 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"
    }
  ]
}

Limitaciones

Actualmente, el agente de Windows no reduce la presión de memoria cuando otras aplicaciones aumentan su uso de memoria. Si el uso general de memoria supera el 100 %, el agente de Windows podría bloquearse.

Presión de memoria virtual

Propiedad Valor
Nombre de la prestación VirtualMemoryPressure-1.0
Tipo de destino Microsoft-Agent
Tipos de sistema operativo admitidos Windows
Descripción Agrega presión de memoria virtual, hasta el valor especificado, en la máquina virtual donde se inserta este error durante la acción de error. La presión de memoria virtual artificial se elimina al final de la duración o si se cancela el experimento.
Requisitos previos Ninguno.
Urn urn:csci:microsoft:agent:virtualMemoryPressure/1.0
Parámetros (clave, valor)
pressureLevel Entero entre 1 y 99 que indica cuánta presión de memoria física (%) se aplica a la máquina virtual.
virtualMachineScaleSetInstances Matriz de id. de instancia al aplicar este error a un conjunto de escalado de máquinas virtuales. Necesario para los conjuntos de escalado de máquinas virtuales en modo de orquestación uniforme. Obtenga más información sobre los id. de instancia.

Ejemplo 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"
    }
  ]
}

Presión de E/S de disco

Propiedad Valor
Nombre de la prestación DiskIOPressure-1.1
Tipo de destino Microsoft-Agent
Tipos de sistema operativo admitidos Windows
Descripción Usa la utilidad diskspd para agregar presión de disco a una máquina virtual. De forma predeterminada, se agrega presión al disco principal o al disco especificado con el parámetro targetTempDirectory. Este error tiene cinco modos de ejecución diferentes. La presión del disco artificial se elimina al final de la duración o si se cancela el experimento.
Requisitos previos Ninguno.
Urn urn:csci:microsoft:agent:diskIOPressure/1.1
Parámetros (clave, valor)
pressureMode Modo preestablecido de presión de disco que se agrega al almacenamiento principal de la máquina virtual. Debe ser uno de los PressureModes de la tabla siguiente.
targetTempDirectory (Opcional) Directorio que se va a usar para aplicar presión al disco. Por ejemplo, D:/Temp. Si el parámetro no está incluido, se agregará presión al disco principal.
virtualMachineScaleSetInstances Matriz de id. de instancia al aplicar este error a un conjunto de escalado de máquinas virtuales. Necesario para los conjuntos de escalado de máquinas virtuales en modo de orquestación uniforme. Obtenga más información sobre los id. de instancia.

Modos de presión

PressureMode Descripción
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
Valor predeterminado numberOfThreads = 2
randomBlockSizeInKB = 64
randomSeed = 10
numberOfIOperThread = 2
sizeOfBlocksInKB = 64
sizeOfWriteBufferInKB = 64
fileSizeInGB = 1
percentOfWriteActions = 50

Ejemplo 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"
    }
  ]
}

Presión de E/S de disco Linux

Propiedad Valor
Nombre de la prestación LinuxDiskIOPressure-1.1
Tipo de destino Microsoft-Agent
Tipos de sistema operativo admitidos Linux
Descripción Usa stress-ng para aplicar presión al disco. Se generan uno o varios procesos de trabajo que realizan procesos de E/S con archivos temporales. De forma predeterminada, se agrega presión al disco principal o al disco especificado con el parámetro targetTempDirectory. Para obtener información sobre cómo se aplica la presión, consulte el artículo stress-ng.
Requisitos previos Linux: debe instalarse la utilidad stress-ng. Esto sucede automáticamente como parte de la instalación del agente mediante el administrador de paquetes predeterminado en varios sistemas operativos, incluyendo los basados en Debian (como Ubuntu), Red Hat Enterprise Linux y OpenSUSE. Para otras distribuciones, incluido Azure Linux, debe instalar stress-ng manualmente. Para obtener más información, consulte el repositorio de proyectos ascendentes.
Urn urn:csci:microsoft:agent:linuxDiskIOPressure/1.1
Parámetros (clave, valor)
workerCount Número de procesos de trabajo que se ejecutarán. Establecer workerCount en 0 genera tantos procesos de trabajo como número de procesadores haya.
fileSizePerWorker Tamaño del archivo temporal con el que un trabajo realiza operaciones de E/S. Entero más una unidad en bytes (b), kilobytes (k), megabytes (m) o gigabytes (g) (por ejemplo, 4m para 4 megabytes y 256g para 256 gigabytes).
blockSize Tamaño de bloque que se usará para las operaciones de E/S de disco, superiores a 1 byte e inferiores a 4 megabytes (el valor máximo es 4095k). Entero más una unidad en bytes, kilobytes o megabytes (por ejemplo, 512k para 512 kilobytes).
targetTempDirectory (Opcional) Directorio que se va a usar para aplicar presión al disco. Por ejemplo, /tmp/. Si el parámetro no está incluido, se agregará presión al disco principal.
virtualMachineScaleSetInstances Matriz de id. de instancia al aplicar este error a un conjunto de escalado de máquinas virtuales. Necesario para los conjuntos de escalado de máquinas virtuales en modo de orquestación uniforme. Obtenga más información sobre los id. de instancia.

Ejemplo de JSON

Estos valores de ejemplo produjeron aproximadamente un 100 % de presión de disco cuando se probaron en una máquina virtual Standard_D2s_v3 con LRS SSD prémium. Un fileSizePerWorker grande y un blockSize más pequeño ayudan a que el disco se esfuerce por completo.

{
  "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"
    }
  ]
}

Detener servicio

Propiedad Valor
Nombre de la prestación StopService-1.0
Tipo de destino Microsoft-Agent
Tipos de sistema operativo admitidos Windows y Linux.
Descripción Detiene un servicio de Windows o un servicio con sistema Linux durante el error. Lo reinicia al final de la duración o si se cancela el experimento.
Requisitos previos Ninguno.
Urn urn:csci:microsoft:agent:stopService/1.0
Parámetros (clave, valor)
serviceName Nombre del servicio de Windows o del servicio con sistema Linux que desea detener.
virtualMachineScaleSetInstances Matriz de id. de instancia al aplicar este error a un conjunto de escalado de máquinas virtuales. Necesario para los conjuntos de escalado de máquinas virtuales en modo de orquestación uniforme. Obtenga más información sobre los id. de instancia.

Ejemplo 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"
    }
  ]
}

Limitaciones

  • Windows: no se admiten nombres para mostrar para los servicios. Use sc.exe query en el símbolo del sistema para explorar los nombres de servicio.
  • Linux: no se admiten otros tipos de servicio aparte de systemd, como sysvinit.

Proceso de terminación

Propiedad Valor
Nombre de la prestación KillProcess-1.0
Tipo de destino Microsoft-Agent
Tipos de sistema operativo admitidos Windows y Linux.
Descripción Termina todas las instancias en ejecución de un proceso que coincide con el nombre del proceso enviado en los parámetros de error. Dentro de la duración establecida para la acción de error, un proceso se termina de forma repetitiva en función del valor del intervalo de eliminación especificado. Este es un error destructivo donde el administrador del sistema tendrá que recuperar manualmente el proceso si la recuperación automática está configurada para el proceso.
Requisitos previos Ninguno.
Urn urn:csci:microsoft:agent:killProcess/1.0
Parámetros (clave, valor)
processName Nombre de un proceso que se va a terminar continuamente (sin el .exe). No es necesario ejecutar el proceso cuando el error comienza a ejecutarse.
killIntervalInMilliseconds Cantidad de tiempo que espera el error entre intentos sucesivos de eliminación en milisegundos.
virtualMachineScaleSetInstances Matriz de id. de instancia al aplicar este error a un conjunto de escalado de máquinas virtuales. Necesario para los conjuntos de escalado de máquinas virtuales en modo de orquestación uniforme. Obtenga más información sobre los id. de instancia.

Ejemplo de JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "continuous",
      "name": "urn:csci:microsoft:agent:killProcess/1.0",
      "parameters": [
        {
          "key": "processName",
          "value": "myapp"
        },
        {
          "key": "killIntervalInMilliseconds",
          "value": "1000"
        },
        {
          "key": "virtualMachineScaleSetInstances",
          "value": "[0,1,2]"
        }
      ],
      "duration": "PT10M",
      "selectorid": "myResources"
    }
  ]
}

Pausar proceso

Propiedad Valor
Nombre de la prestación PauseProcess-1.0
Tipo de destino Microsoft-Agent
Tipos de sistema operativo admitidos Windows.
Descripción Pausa (suspende) los procesos especificados durante la duración especificada. Si hay varios procesos con el mismo nombre, este error suspende todos esos procesos. Dentro de la duración del error, los procesos se pausan repetidamente en el intervalo especificado. Al final de la duración o si se cancela el experimento, los procesos se reanudarán.
Requisitos previos Ninguno.
Urn urn:csci:microsoft:agent:pauseProcess/1.0
Parámetros (clave, valor)
processNames Matriz JSON delimitada de nombres de proceso que definen qué procesos se van a pausar. Máximo de 4. El nombre del proceso puede incluir opcionalmente la extensión ".exe".
pauseIntervalInMilliseconds Cantidad de tiempo que el error espera entre intentos sucesivos de pausa, en milisegundos.
virtualMachineScaleSetInstances Matriz de id. de instancia al aplicar este error a un conjunto de escalado de máquinas virtuales. Necesario para los conjuntos de escalado de máquinas virtuales en modo de orquestación uniforme. Obtenga más información sobre los id. de instancia.

Ejemplo de JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "continuous",
      "name": "urn:csci:microsoft:agent:pauseProcess/1.0",
      "parameters": [
        {
          "key": "processNames",
          "value": "[ \"test-0\", \"test-1.exe\" ]"
        },
        {
          "key": "pauseIntervalInMilliseconds",
          "value": "1000"
        }
      ],
      "duration": "PT10M",
      "selectorid": "myResources"
    }
  ]
}

Limitaciones

Actualmente, se puede enumerar un máximo de 4 nombres de proceso en el parámetro processNames.

Cambio de hora

Propiedad Valor
Nombre de la prestación TimeChange-1.0
Tipo de destino Microsoft-Agent
Tipos de sistema operativo admitidos Windows
Descripción Cambia la hora del sistema de la máquina virtual y la restablece al final del experimento o si este se cancela.
Requisitos previos Ninguno.
Urn urn:csci:microsoft:agent:timeChange/1.0
Parámetros (clave, valor)
dateTime Una cadena DateTime en formato ISO8601. Si faltan valores YYYY-MM-DD, el valor predeterminado es el día actual cuando se ejecuta el experimento. Si faltan valores hh:mm:ss, el valor predeterminado es 12:00:00 AM. Si se proporciona un año de 2 dígitos (YY), se convierte en un año de 4 dígitos (YYYY) basado en el siglo actual. Si falta la zona horaria <Z>, el desplazamiento predeterminado es la zona horaria local. <Z> debe incluir siempre un símbolo de signo (negativo o positivo).
virtualMachineScaleSetInstances Matriz de id. de instancia al aplicar este error a un conjunto de escalado de máquinas virtuales. Necesario para los conjuntos de escalado de máquinas virtuales en modo de orquestación uniforme. Obtenga más información sobre los id. de instancia.

Ejemplo 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"
    }
  ]
}

Esfuerzo de stress-ng arbitrario

Propiedad Valor
Nombre de la prestación StressNg-1.0
Tipo de destino Microsoft-Agent
Tipos de sistema operativo admitidos Linux
Descripción Ejecuta cualquier comando stress-ng pasando argumentos directamente a stress-ng. Resulta útil cuando uno de los errores predefinidos para stress-ng no satisface sus necesidades.
Requisitos previos Linux: debe instalarse la utilidad stress-ng. Esto sucede automáticamente como parte de la instalación del agente mediante el administrador de paquetes predeterminado en varios sistemas operativos, incluyendo los basados en Debian (como Ubuntu), Red Hat Enterprise Linux y OpenSUSE. Para otras distribuciones, incluido Azure Linux, debe instalar stress-ng manualmente. Para obtener más información, consulte el repositorio de proyectos ascendentes.
Urn urn:csci:microsoft:agent:stressNg/1.0
Parámetros (clave, valor)
stressNgArguments Uno o varios argumentos que se pasarán al proceso stress-ng. Para obtener información sobre los posibles argumentos de stress-ng, consulte el artículo stress-ng. NOTA: NO incluya el argumento "-t" porque provocará un error. La longitud del experimento se define directamente en la interfaz de usuario del experimento del caos de Azure, NO en stressNgArguments.

Ejemplo 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"
    }
  ]
}

Detalles: errores directos del servicio

Detención de App Service

Propiedad Valor
Nombre de la prestación Stop-1.0
Tipo de destino Microsoft-AppService
Descripción Detiene las aplicaciones de App Service de destino y, a continuación, las reinicia al final de la duración del error. Esto se aplica a los recursos del tipo "Microsoft.Web/sites", incluidos App Service, API Apps, Mobile Apps y Azure Functions.
Requisitos previos Ninguno.
Urn urn:csci:microsoft:appService:stop/1.0
Tipo de error Continuo:
Parámetros (clave, valor) Ninguno.

Ejemplo de JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "continuous",
      "name": "urn:csci:microsoft:appService:stop/1.0",
      "duration": "PT10M",
      "parameters":[],
      "selectorid": "myResources"
    }
  ]
}

Deshabilitar escalado automático

Propiedad Valor
Nombre de la prestación DisaleAutoscale
Tipo de destino Microsoft-AutoscaleSettings
Descripción Deshabilita el servicio de escalado automático. Cuando la escalabilidad automática está deshabilitada, recursos como los conjuntos de escalado de máquinas virtuales, aplicaciones web, Service Bus y mucho más no se agregan ni se quitan automáticamente en función de la carga de la aplicación.
Requisitos previos El recurso autoScalesetting que está habilitado en el recurso debe incorporarse a Chaos Studio.
Urn urn:csci:microsoft:autoscalesettings:disableAutoscale/1.0
Tipo de error Continuo:
Parámetros (clave, valor)
enableOnComplete booleano. Configura si se vuelve a habilitar el escalado automático una vez finalizada la acción. El valor predeterminado es true.

Ejemplo de JSON

{
  "name": "BranchOne", 
  "actions": [ 
    { 
    "type": "continuous", 
    "name": "urn:csci:microsoft:autoscaleSetting:disableAutoscale/1.0", 
    "parameters": [ 
     { 
      "key": "enableOnComplete", 
      "value": "true" 
      }                 
  ],                                 
   "duration": "PT2M", 
   "selectorId": "Selector1",           
  } 
 ] 
} 

Chaos de red de Chaos Mesh de AKS

Propiedad Valor
Nombre de la prestación NetworkChaos-2.1
Tipo de destino Microsoft-AzureKubernetesServiceChaosMesh
Tipos de sistema operativo del grupo de nodos admitidos Linux
Descripción Hace que un error de red disponible a través de Chaos Mesh se ejecute en el clúster de Azure Kubernetes Service (AKS). Resulta útil para volver a crear incidentes de AKS resultantes de interrupciones de red, retrasos, duplicaciones, pérdidas y daños.
Requisitos previos El clúster de AKS debe tener implementado Chaos Mesh.
Urn urn:csci:microsoft:azureKubernetesServiceChaosMesh:networkChaos/2.1
Parámetros (clave, valor)
jsonSpec Especificación de Chaos Mesh con formato JSON que usa el tipo NetworkChaos. Puede usar un convertidor de YAML a JSON como Convertir YAML a JSON para convertir el YAML de Chaos Mesh a JSON y minificarlo. Use comillas simples dentro del JSON o escape las comillas con un carácter de barra diagonal inversa. Incluya solo el YAML en la propiedad jsonSpec. No incluya información como metadatos o el tipo. La especificación de la duración dentro de jsonSpec no es necesaria, pero se usará si está disponible.

Ejemplo 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"
    }
  ]
}

Chaos de pod de Chaos Mesh de AKS

Propiedad Valor
Nombre de la prestación PodChaos-2.1
Tipo de destino Microsoft-AzureKubernetesServiceChaosMesh
Tipos de sistema operativo del grupo de nodos admitidos Linux
Descripción Provoca un error de pod disponible a través de Chaos Mesh para ejecutarse en el clúster de AKS. Resulta útil para volver a crear incidentes de AKS que son el resultado de errores de pod o problemas de contenedor.
Requisitos previos El clúster de AKS debe tener implementado Chaos Mesh.
Urn urn:csci:microsoft:azureKubernetesServiceChaosMesh:podChaos/2.1
Parámetros (clave, valor)
jsonSpec Especificación de Chaos Mesh con formato JSON que usa el tipo podChaos. Puede usar un convertidor de YAML a JSON como Convertir YAML a JSON para convertir el YAML de Chaos Mesh a JSON y minificarlo. Use comillas simples dentro del JSON o escape las comillas con un carácter de barra diagonal inversa. Incluya solo el YAML en la propiedad jsonSpec. No incluya información como metadatos o el tipo. La especificación de la duración dentro de jsonSpec no es necesaria, pero se usará si está disponible.

Ejemplo 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"
    }
  ]
}

Chaos de esfuerzo de Chaos Mesh de AKS

Propiedad Valor
Nombre de la prestación StressChaos-2.1
Tipo de destino Microsoft-AzureKubernetesServiceChaosMesh
Tipos de sistema operativo del grupo de nodos admitidos Linux
Descripción Provoca un error de esfuerzo disponible a través de Chaos Mesh para ejecutarse en el clúster de AKS. Resulta útil para volver a crear incidentes de AKS debido a las sobrecargas en una colección de pods, por ejemplo, debido a un consumo elevado de CPU o memoria.
Requisitos previos El clúster de AKS debe tener implementado Chaos Mesh.
Urn urn:csci:microsoft:azureKubernetesServiceChaosMesh:stressChaos/2.1
Parámetros (clave, valor)
jsonSpec Especificación de Chaos Mesh con formato JSON que usa el tipo StressChaos. Puede usar un convertidor de YAML a JSON como Convertir YAML a JSON para convertir el YAML de Chaos Mesh a JSON y minificarlo. Use comillas simples dentro del JSON o escape las comillas con un carácter de barra diagonal inversa. Incluya solo el YAML en la propiedad jsonSpec. No incluya información como metadatos o el tipo. La especificación de la duración dentro de jsonSpec no es necesaria, pero se usará si está disponible.

Ejemplo 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"
    }
  ]
}

Chaos de E/S de Chaos Mesh de AKS

Propiedad Valor
Nombre de la prestación IOChaos-2.1
Tipo de destino Microsoft-AzureKubernetesServiceChaosMesh
Tipos de sistema operativo del grupo de nodos admitidos Linux
Descripción Provoca un error de E/S disponible a través de Chaos Mesh para ejecutarse en el clúster de AKS. Resulta útil para volver a crear incidentes de AKS debido a retrasos de E/S y errores de lectura y escritura cuando se usan llamadas del sistema de E/S, como open, read o write.
Requisitos previos El clúster de AKS debe tener implementado Chaos Mesh.
Urn urn:csci:microsoft:azureKubernetesServiceChaosMesh:IOChaos/2.1
Parámetros (clave, valor)
jsonSpec Especificación de Chaos Mesh con formato JSON que usa el tipo IOChaos. Puede usar un convertidor de YAML a JSON como Convertir YAML a JSON para convertir el YAML de Chaos Mesh a JSON y minificarlo. Use comillas simples dentro del JSON o escape las comillas con un carácter de barra diagonal inversa. Incluya solo el YAML en la propiedad jsonSpec. No incluya información como metadatos o el tipo. La especificación de la duración dentro de jsonSpec no es necesaria, pero se usará si está disponible.

Ejemplo 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"
    }
  ]
}

Chaos de tiempo de Chaos Mesh de AKS

Propiedad Valor
Nombre de la prestación TimeChaos-2.1
Tipo de destino Microsoft-AzureKubernetesServiceChaosMesh
Tipos de sistema operativo del grupo de nodos admitidos Linux
Descripción Provoca un cambio en el reloj del sistema en el clúster de AKS mediante Chaos Mesh. Resulta útil para volver a crear incidentes de AKS que se deban a sistemas distribuidos que no están sincronizados, lógica de año bisiesto o segundo intercalar ausente o incorrecta, etc.
Requisitos previos El clúster de AKS debe tener implementado Chaos Mesh.
Urn urn:csci:microsoft:azureKubernetesServiceChaosMesh:timeChaos/2.1
Parámetros (clave, valor)
jsonSpec Especificación de Chaos Mesh con formato JSON que usa el tipo TimeChaos. Puede usar un convertidor de YAML a JSON como Convertir YAML a JSON para convertir el YAML de Chaos Mesh a JSON y minificarlo. Use comillas simples dentro del JSON o escape las comillas con un carácter de barra diagonal inversa. Incluya solo el YAML en la propiedad jsonSpec. No incluya información como metadatos o el tipo. La especificación de la duración dentro de jsonSpec no es necesaria, pero se usará si está disponible.

Ejemplo 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"
    }
  ]
}

Chaos del kernel de Chaos Mesh de AKS

Propiedad Valor
Nombre de la prestación KernelChaos-2.1
Tipo de destino Microsoft-AzureKubernetesServiceChaosMesh
Tipos de sistema operativo del grupo de nodos admitidos Linux
Descripción Provoca un error de kernel disponible a través de Chaos Mesh para ejecutarse en el clúster de AKS. Resulta útil para volver a crear incidentes de AKS debidos a errores de nivel de kernel de Linux, como un error de montaje o falta de asignación de memoria.
Requisitos previos El clúster de AKS debe tener implementado Chaos Mesh.
Urn urn:csci:microsoft:azureKubernetesServiceChaosMesh:kernelChaos/2.1
Parámetros (clave, valor)
jsonSpec Especificación de Chaos Mesh con formato JSON que usa el tipo KernelChaos. Puede usar un convertidor de YAML a JSON como Convertir YAML a JSON para convertir el YAML de Chaos Mesh a JSON y minificarlo. Use comillas simples dentro del JSON o escape las comillas con un carácter de barra diagonal inversa. Incluya solo el YAML en la propiedad jsonSpec. No incluya información como metadatos o el tipo. La especificación de la duración dentro de jsonSpec no es necesaria, pero se usará si está disponible.

Ejemplo 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"
    }
  ]
}

Chaos de HTTP de Chaos Mesh de AKS

Propiedad Valor
Nombre de la prestación HTTPChaos-2.1
Tipo de destino Microsoft-AzureKubernetesServiceChaosMesh
Tipos de sistema operativo del grupo de nodos admitidos Linux
Descripción Provoca un error de HTTP disponible a través de Chaos Mesh para ejecutarse en el clúster de AKS. Resulta útil para volver a crear incidentes debidos a errores de procesamiento de solicitudes y respuestas HTTP, como respuestas retrasadas o incorrectas.
Requisitos previos El clúster de AKS debe tener implementado Chaos Mesh.
Urn urn:csci:microsoft:azureKubernetesServiceChaosMesh:httpChaos/2.1
Parámetros (clave, valor)
jsonSpec Especificación de Chaos Mesh con formato JSON que usa el tipo HTTPChaos. Puede usar un convertidor de YAML a JSON como Convertir YAML a JSON para convertir el YAML de Chaos Mesh a JSON y minificarlo. Use comillas simples dentro del JSON o escape las comillas con un carácter de barra diagonal inversa. Incluya solo el YAML en la propiedad jsonSpec. No incluya información como metadatos o el tipo. La especificación de la duración dentro de jsonSpec no es necesaria, pero se usará si está disponible.

Ejemplo 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"
    }
  ]
}

Chaos de DNS de Chaos Mesh de AKS

Propiedad Valor
Nombre de la prestación DNSChaos-2.1
Tipo de destino Microsoft-AzureKubernetesServiceChaosMesh
Tipos de sistema operativo del grupo de nodos admitidos Linux
Descripción Provoca un error de DNS disponible a través de Chaos Mesh para ejecutarse en el clúster de AKS. Resulta útil para volver a crear incidentes debido a errores de DNS.
Requisitos previos El clúster de AKS debe tener implementado Chaos Mesh y el servicio DNS debe estar instalado.
Urn urn:csci:microsoft:azureKubernetesServiceChaosMesh:dnsChaos/2.1
Parámetros (clave, valor)
jsonSpec Especificación de Chaos Mesh con formato JSON que usa el tipo DNSChaos. Puede usar un convertidor de YAML a JSON como Convertir YAML a JSON para convertir el YAML de Chaos Mesh a JSON y minificarlo. Use comillas simples dentro del JSON o escape las comillas con un carácter de barra diagonal inversa. Incluya solo el YAML en la propiedad jsonSpec. No incluya información como metadatos o el tipo. La especificación de la duración dentro de jsonSpec no es necesaria, pero se usará si está disponible.

Ejemplo 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"
    }
  ]
}

Apagado de Cloud Services (clásico)

Propiedad Valor
Nombre de la prestación Shutdown-1.0
Tipo de destino Microsoft-DomainName
Descripción Detiene una implementación durante el error. Reinicia la implementación al final de la duración del error o si se cancela el experimento.
Requisitos previos Ninguno.
Urn urn:csci:microsoft:domainName:shutdown/1.0
Tipo de error Continuo:
Parámetros Ninguno.

Ejemplo de JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "continuous",
      "name": "urn:csci:microsoft:domainName:shutdown/1.0",
      "parameters": [],
      "duration": "PT10M",
      "selectorid": "myResources"
    }
  ]
}

Azure Cache for Redis (reinicio)

Propiedad Valor
Nombre de la prestación Reboot-1.0
Tipo de destino Microsoft-AzureClusteredCacheForRedis
Descripción Hace que se produzca una operación de reinicio forzado en el destino para simular una breve interrupción.
Requisitos previos N/D
Urn urn:csci:microsoft:azureClusteredCacheForRedis:reboot/1.0
Tipo de error Discreto.
Parámetros (clave, valor)
rebootType Los tipos de nodo donde se va a realizar la acción de reinicio, que se pueden especificar como PrimaryNode, SecondaryNode o AllNodes.
shardId Identificador de la partición que se va a reiniciar. Solo es relevante para las memorias caché de nivel Premium.

Ejemplo 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"
    }
  ]
}

Limitaciones

  • El error de reinicio hace que un reinicio forzado simule mejor un evento de interrupción, lo cual significa que existe la posibilidad de que se produzca una pérdida de datos.
  • El error de reinicio es un tipo de error discreto. A diferencia de los errores continuos, es una acción única y no tiene ninguna duración.

Conmutación por error de Cosmos DB

Propiedad Valor
Nombre de la prestación Failover-1.0
Tipo de destino Microsoft-CosmosDB
Descripción Hace que una cuenta de Azure Cosmos DB con una sola región de escritura conmute por error a una región de lectura especificada para simular una interrupción de la región de escritura.
Requisitos previos Ninguno.
Urn urn:csci:microsoft:cosmosDB:failover/1.0
Parámetros (clave, valor)
readRegion La región de lectura que se debe promover a la región de escritura durante la conmutación por error; por ejemplo, East US 2.

Ejemplo 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"
    }
  ]
}

Cambiar el estado del centro de eventos

Propiedad Valor
Nombre de la prestación ChangeEventHubState-1.0
Tipo de destino Microsoft-EventHub
Descripción Establece centros de eventos individuales en el estado deseado dentro de un espacio de nombres de Azure Event Hubs. Es posible afectar a nombres específicos del centro de eventos o usar “*” para afectar a todo el espacio de nombres. Esto puede ayudar a probar la infraestructura de mensajería para escenarios de mantenimiento o error. Se trata de un error discreto, por lo que la entidad no se devolverá automáticamente al estado inicial.
Requisitos previos Un espacio de nombres de Azure Event Hubs con al menos una entidad del centro de eventos.
Urn urn:csci:microsoft:eventHub:changeEventHubState/1.0
Tipo de error Discreto.
Parámetros (clave, valor)
desiredState Estado deseado del centro de eventos de destino. Los estados posibles son Active, Disabled y SendDisabled.
eventHubs Lista separada por comas de los nombres del centro de eventos dentro del espacio de nombres de destino. Use "*" para que afecte a todas las entidades del espacio de nombres.

Ejemplo 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"
        }
    ]
}

Key Vault: Denegar acceso

Propiedad Valor
Nombre de la prestación DenyAccess-1.0
Tipo de destino Microsoft-KeyVault
Descripción Bloquea todo el acceso de red a un almacén de claves modificando temporalmente las reglas de red del almacén de claves. Esta acción impide que una aplicación dependiente del almacén de claves acceda a secretos, claves o certificados. Si el almacén de claves permite el acceso a todas las redes, esta configuración solo se cambia para permitir el acceso desde redes seleccionadas. No hay ninguna red virtual en la lista de permitidos al principio del error. Se permite el acceso a todas las redes al final de la duración del error. Si el almacén de claves está establecido para permitir solo el acceso desde redes seleccionadas, las redes virtuales de la lista de permitidos se quitan al principio del error. Se restauran al final de la duración del error.
Requisitos previos El almacén de claves de destino no puede tener ninguna regla de firewall y no debe establecerse para permitir que los servicios de Azure omitan el firewall. Si el almacén de claves de destino está establecida para permitir solo el acceso desde redes seleccionadas, debe haber al menos una regla de red virtual. El almacén de claves no puede estar en modo de recuperación.
Urn urn:csci:microsoft:keyVault:denyAccess/1.0
Tipo de error Continuo:
Parámetros (clave, valor) Ninguno.

Ejemplo de JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "continuous",
      "name": "urn:csci:microsoft:keyvault:denyAccess/1.0",
      "parameters": [],
      "duration": "PT10M",
      "selectorid": "myResources"
    }
  ]
}

Key Vault: Deshabilitar certificado

Propiedad Valor
Nombre de la prestación DisableCertificate-1.0
Tipo de destino Microsoft-KeyVault
Descripción Mediante el uso de propiedades de certificado, el error deshabilita el certificado durante una duración específica (proporcionada por el usuario). Habilita el certificado después de esta duración del error.
Requisitos previos Ninguno.
Urn urn:csci:microsoft:keyvault:disableCertificate/1.0
Tipo de error Continuo:
Parámetros (clave, valor)
certificateName Nombre del certificado de Azure Key Vault en el que se ejecuta el error.
version Versión del certificado que se debe deshabilitar. Si no se especifica, la versión más reciente se deshabilita.

Ejemplo 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"
    }
  ]
}

Key Vault: Incrementar la versión del certificado

Propiedad Valor
Nombre de la prestación IncrementCertificateVersion-1.0
Tipo de destino Microsoft-KeyVault
Descripción Genera una nueva versión de certificado y una huella digital mediante la biblioteca cliente de certificados de Key Vault. El certificado de trabajo actual se actualiza a esta versión. La versión del certificado no se revierte después de la duración del error.
Requisitos previos Ninguno.
Urn urn:csci:microsoft:keyvault:incrementCertificateVersion/1.0
Tipo de error Discreto.
Parámetros (clave, valor)
certificateName Nombre del certificado de Azure Key Vault en el que se ejecuta el error.

Ejemplo 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"
    }
  ]
}

Key Vault: Actualizar directiva de certificado

Propiedad Valor
Nombre de la prestación UpdateCertificatePolicy-1.0
Tipo de destino Microsoft-KeyVault
Descripción Las directivas de certificado (por ejemplo, el período de validez del certificado, el tipo de certificado, el tamaño de clave o el tipo de clave) se actualizan en función de la entrada del usuario y se revierten después de la duración del error.
Requisitos previos Ninguno.
Urn urn:csci:microsoft:keyvault:updateCertificatePolicy/1.0
Tipo de error Continuo:
Parámetros (clave, valor)
certificateName Nombre del certificado de Azure Key Vault en el que se ejecuta el error.
version Versión del certificado que se debe actualizar. Si no se especifica, se actualizará la versión más reciente.
enabled booleano. Valor que indica si la nueva versión del certificado está habilitada.
validityInMonths Período de validez del certificado en meses.
certificateTransparency Indica si el certificado se debe publicar en la lista de transparencia del certificado al crearse.
certificateType Tipo de certificado.
contentType Tipo de contenido del certificado. Por ejemplo, es Pkcs12 cuando el certificado contiene bytes PFX sin procesar o Pem cuando contiene bytes codificados en PEM ASCII. Pkcs12 es el valor predeterminado asumido.
keySize Tamaño de la clave RSA: 2048, 3072 o 4096.
exportable booleano. Valor que indica si la clave de certificado se puede exportar desde el almacén o el almacén de certificados seguro.
reuseKey booleano. Valor que indica si se debe reutilizar la clave de certificado cuando se gira el certificado.
keyType Tipo de clave de respaldo generada cuando se emiten nuevos certificados, como RSA o EC.

Ejemplo 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"
    }
  ]
}

Regla de seguridad de NSG

Propiedad Valor
Nombre de la prestación SecurityRule-1.0
Tipo de destino Microsoft-NetworkSecurityGroup
Descripción Habilita la manipulación o creación de reglas en un grupo de seguridad de red (NSG) de Azure existente o en un conjunto de grupos de seguridad de red de Azure, suponiendo que la definición de regla sea aplicable en todos los grupos de seguridad. Útil para:
  • Simular una interrupción de una dependencia/no dependencia descendente o entre regiones.
  • Simular un evento que se espera que desencadene una lógica para forzar una conmutación por error de servicio.
  • Simular un evento que se espera que desencadene una acción desde un servicio de supervisión o administración de estado.
  • Usarla como alternativa para bloquear o permitir el tráfico de red en el que no se puede implementar el agente de Chaos.
Requisitos previos Ninguno.
Urn urn:csci:microsoft:networkSecurityGroup:securityRule/1.0
Parámetros (clave, valor)
name Un nombre único para la regla de seguridad que se crea. Se producirá un error si ya existe otra regla en NSG con el mismo nombre. Debe comenzar con una letra o número. Debe finalizar en una letra, un número o un carácter de subrayado. Solo puede contener letras, números, caracteres de subrayado, puntos o guiones.
protocolo Protocolo para la regla de seguridad. Debe ser Cualquiera, TCP, UDP o ICMP.
sourceAddresses Cadena que representa una matriz delimitada por JSON de direcciones IP con formato CIDR. También puede ser un nombre de etiqueta de servicio para una regla de entrada; por ejemplo, AppService. También se puede usar un asterisco * para establecer correspondencia entre todas las IP de origen.
destinationAddresses Cadena que representa una matriz delimitada por JSON de direcciones IP con formato CIDR. También puede ser un nombre de etiqueta de servicio para una regla de salida; por ejemplo, AppService. También se puede usar un asterisco * para establecer correspondencia entre todas las IP de destino.
action Tipo de acceso del grupo de seguridad. Debe ser Permitir o Denegar.
destinationPortRanges Cadena que representa una matriz delimitada por JSON de puertos únicos o intervalos de puertos, como 80 o 1024-65535.
sourcePortRanges Cadena que representa una matriz delimitada por JSON de puertos únicos o intervalos de puertos, como 80 o 1024-65535.
priority Escriba un valor de 100 a 4096 que sea único para todas las reglas de seguridad del NSG. Se producirá un error si ya existe otra regla en NSG con la misma prioridad.
direction Dirección del tráfico afectado por la regla de seguridad. Debe ser Entrante o Saliente.

Ejemplo 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" 
    } 
  ] 
} 

Limitaciones

  • El error solo se puede aplicar a un grupo de seguridad de red existente.
  • Cuando se aplica una regla de NSG destinada a denegar el tráfico, las conexiones existentes no se dividirán hasta que hayan estado inactivas durante 4 minutos. Una solución alternativa consiste en agregar otra rama en el mismo paso que usa un error que hará que las conexiones existentes se interrumpan cuando se aplica el error de NSG. Por ejemplo, eliminar el proceso, detener temporalmente el servicio o reiniciar la máquina virtual provocará el restablecimiento de las conexiones.
  • Las reglas se aplican al principio de la acción. Los cambios externos en la regla durante la duración de la acción provocan un error en el experimento.
  • No se admite la creación o modificación de reglas del grupo de seguridad de aplicaciones.
  • Los valores de prioridad deben ser únicos en cada NSG de destino. Si se intenta crear una nueva regla que tenga el mismo valor de prioridad que otra, se producirá un error en el experimento.
  • La regla de seguridad de NSG versión 1.1 error admite un parámetro flushConnection adicional. Esta funcionalidad tiene un problema conocido activo: si flushConnection está habilitado, el error puede provocar un error "FlushingNetworkSecurityGroupConnectionIsNotEnabled". Para evitar este error temporalmente, deshabilite el parámetro flushConnection o use la versión de la regla de seguridad de NSG 1.0 error.

Service Bus: Cambiar el estado de la cola

Propiedad Valor
Nombre de la prestación ChangeQueueState-1.0
Tipo de destino Microsoft-ServiceBus
Descripción Establece las entidades Queue dentro de un espacio de nombres de Service Bus en el estado deseado. Puede afectar a nombres de entidad específicos o puede usar "*" para afectarlos a todos. Esto puede ayudar a probar la infraestructura de mensajería para escenarios de mantenimiento o error. Se trata de un error discreto, por lo que la entidad no se devolverá automáticamente al estado inicial.
Requisitos previos Un espacio de nombres de Service Bus con al menos una entidad Queue.
Urn urn:csci:microsoft:serviceBus:changeQueueState/1.0
Tipo de error Discreto.
Parámetros (clave, valor)
desiredState Estado deseado para las colas de destino. Los estados posibles son Active, Disabled, SendDisabled y ReceiveDisabled.
queues Lista separada por comas de los nombres de cola dentro del espacio de nombres de destino. Use "*" para afectar a todas las colas del espacio de nombres.

Ejemplo 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"
    }
  ]
}

Limitaciones

  • Se puede pasar un máximo de 1000 entidades de cola a este error.

Service Bus: Cambiar el estado de la suscripción

Propiedad Valor
Nombre de la prestación ChangeSubscriptionState-1.0
Tipo de destino Microsoft-ServiceBus
Descripción Establece las entidades Subscription dentro de un espacio de nombres de Service Bus y Topic en el estado deseado. Puede afectar a nombres de entidad específicos o puede usar "*" para afectarlos a todos. Esto puede ayudar a probar la infraestructura de mensajería para escenarios de mantenimiento o error. Se trata de un error discreto, por lo que la entidad no se devolverá automáticamente al estado inicial.
Requisitos previos Un espacio de nombres de Service Bus con al menos una entidad Subscription.
Urn urn:csci:microsoft:serviceBus:changeSubscriptionState/1.0
Tipo de error Discreto.
Parámetros (clave, valor)
desiredState Estado deseado para las suscripciones de destino. Los estados posibles son Activo y Deshabilitado.
topic El tema primario que contiene una o varias suscripciones que se van a afectar.
subscriptions Lista separada por comas de los nombres de suscripción dentro del espacio de nombres de destino. Use "*" para afectar a todas las suscripciones del espacio de nombres.

Ejemplo 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"
    }
  ]
}

Limitaciones

  • Se puede pasar un máximo de 1000 entidades Subscription a este error.

Service Bus: Cambiar el estado del tema

Propiedad Valor
Nombre de la prestación ChangeTopicState-1.0
Tipo de destino Microsoft-ServiceBus
Descripción Establece las entidades Topic especificadas dentro de un espacio de nombres de Service Bus en el estado deseado. Puede afectar a nombres de entidad específicos o puede usar "*" para afectarlos a todos. Esto puede ayudar a probar la infraestructura de mensajería para escenarios de mantenimiento o error. Se trata de un error discreto, por lo que la entidad no se devolverá automáticamente al estado inicial.
Requisitos previos Un espacio de nombres de Service Bus con al menos una entidad Topic.
Urn urn:csci:microsoft:serviceBus:changeTopicState/1.0
Tipo de error Discreto.
Parámetros (clave, valor)
desiredState Estado deseado para los temas de destino. Los estados posibles son Activo y Deshabilitado.
topics Lista separada por comas de los nombres de tema dentro del espacio de nombres de destino. Use "*" para afectar a todos los temas del espacio de nombres.

Ejemplo 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"
    }
  ]
}

Limitaciones

  • Se puede pasar un máximo de 1000 entidades Topic a este error.

Reimplementación de máquinas virtuales

Propiedad Valor
Nombre de la prestación Redeploy-1.0
Tipo de destino Microsoft-VirtualMachine
Descripción Vuelve a implementar una máquina virtual al apagarla, moverla a un nuevo nodo de la infraestructura de Azure y volver a encenderla. Esto ayuda a validar la resistencia de la carga de trabajo a los eventos de mantenimiento.
Requisitos previos Ninguno.
Urn urn:csci:microsoft:virtualMachine:redeploy/1.0
Tipo de error Discreto.
Parámetros (clave, valor) Ninguno.

Ejemplo de JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "discrete",
      "name": "urn:csci:microsoft:virtualMachine:redeploy/1.0",
      "parameters":[],
      "selectorid": "myResources"
    }
  ]
}

Limitaciones

  • La operación de reimplementación de la máquina virtual se limita en un intervalo de 10 horas. Si se produce un error en el experimento con un error "Demasiadas solicitudes de reimplementación", espere 10 horas para reintentar el experimento.

Apagado de máquina virtual

Propiedad Valor
Nombre de la prestación Shutdown-1.0
Tipo de destino Microsoft-VirtualMachine
Tipos de sistema operativo admitidos Windows y Linux.
Descripción Apaga una máquina virtual mientras dure el error. La reinicia al final del experimento o si este se cancela. solo se admiten VM de Azure Resource Manager.
Requisitos previos Ninguno.
Urn urn:csci:microsoft:virtualMachine:shutdown/1.0
Parámetros (clave, valor)
abruptShutdown (Opcional) Valor booleano que indica si la máquina virtual debe apagarse correcta o repentinamente (de forma destructiva).

Ejemplo de JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "continuous",
      "name": "urn:csci:microsoft:virtualMachine:shutdown/1.0",
      "parameters": [
        {
          "key": "abruptShutdown",
          "value": "false"
        }
      ],
      "duration": "PT10M",
      "selectorid": "myResources"
    }
  ]
}

Apagado de VMSS

Este error tiene dos versiones disponibles que puede usar: versión 1.0 y versión 2.0. La principal diferencia es que la versión 2.0 permite filtrar por zonas de disponibilidad, solo cerrando instancias dentro de una zona o zonas especificadas.

Apagado de VMSS versión 1.0

Propiedad Valor
Nombre de la prestación Versión 1.0
Tipo de destino Microsoft-VirtualMachineScaleSet
Tipos de sistema operativo admitidos Windows y Linux.
Descripción Apaga o elimina una instancia del conjunto de escalado de máquinas virtuales durante el error y reinicia la máquina virtual al final de la duración del error o si se cancela el experimento.
Requisitos previos Ninguno.
Urn urn:csci:microsoft:virtualMachineScaleSet:shutdown/1.0
Parámetros (clave, valor)
abruptShutdown (Opcional) Booleano que indica si la instancia del conjunto de escalado de máquinas virtuales debe apagarse correcta o repentinamente (de forma destructiva).
instances Cadena que es una matriz delimitada de identificadores de instancia del conjunto de escalado de máquinas virtuales a los que se aplica el error.
JSON de ejemplo de la versión 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"
    }
  ]
}

Apagado de VMSS versión 2.0

Propiedad Valor
Nombre de la prestación Shutdown-2.0
Tipo de destino Microsoft-VirtualMachineScaleSet
Tipos de sistema operativo admitidos Windows y Linux.
Descripción Apaga o elimina una instancia del conjunto de escalado de máquinas virtuales durante el error. Reinicia la máquina virtual al final de la duración del error o si se cancela el experimento. Admite los destinos dinámicos.
Requisitos previos Ninguno.
Urn urn:csci:microsoft:virtualMachineScaleSet:shutdown/2.0
filter (Opcional) Disponible a partir de la versión 2.0. Se usa para filtrar la lista de destinos de un selector. Actualmente admite el filtrado en una lista de zonas. El filtro solo se aplica a los recursos del conjunto de escalado de máquinas virtuales dentro de una zona:
  • Si no se especifica ningún filtro, este error cierra todas las instancias del conjunto de escalado de máquinas virtuales.
  • El experimento tiene como destino todas las instancias del conjunto de escalado de máquinas virtuales en las zonas especificadas.
  • Si un filtro no da como resultado ningún destino, se produce un error en el experimento.
Parámetros (clave, valor)
abruptShutdown (Opcional) Booleano que indica si la instancia del conjunto de escalado de máquinas virtuales debe apagarse correcta o repentinamente (de forma destructiva).
Fragmentos de código JSON de ejemplo de la versión 2.0

Los fragmentos de código siguientes muestran cómo configurar tanto el filtrado dinámico como el error de apagado 2.0.

Configuración de un filtro de destinos dinámicos:

{
  "type": "List",
  "id": "myResources",
  "targets": [
    {
      "id": "<targetResourceId>",
      "type": "ChaosTarget"
    }
  ],
  "filter": {
    "type": "Simple",
    "parameters": {
      "zones": [
        "1"
      ]
    }
  }
}

Configuración del error de apagado:

{
  "name": "branchOne",
  "actions": [
    {
      "name": "urn:csci:microsoft:virtualMachineScaleSet:shutdown/2.0",
      "type": "continuous",
      "selectorId": "myResources",
      "duration": "PT10M",
      "parameters": [
        {
          "key": "abruptShutdown",
          "value": "false"
        }
      ]
    }
  ]
}

Limitaciones

Actualmente, solo se admiten conjuntos de escalado de máquinas virtuales configurados con el modo de orquestación Uniforme. Si el conjunto de escalado de máquinas virtuales usa la orquestación flexible, puede usar el error de apagado de la máquina virtual de Azure Resource Manager para apagar las instancias seleccionadas.

Detalles: acciones de orquestación

Delay

Propiedad Valor
Proveedor de errores N/D
Tipos de sistema operativo admitidos N/D
Descripción Agrega un retraso de tiempo antes, entre o después de otras acciones de un experimento. Esto no es un error y se usa para sincronizar acciones dentro de un experimento. Use esta acción para esperar a que aparezca el impacto de un error en un servicio o espere a que se complete una actividad fuera del experimento. Por ejemplo, el experimento podría esperar a que se produzca el ensayo automático antes de insertar otro error.
Requisitos previos N/D
Urn urn:csci:microsoft:chaosStudio:timedDelay/1.0
Duration Duración del retraso en formato ISO 8601 (por ejemplo, PT10M).

Ejemplo de JSON

{
  "name": "branchOne",
  "actions": [ 
    {
      "type": "delay",
      "name": "urn:csci:microsoft:chaosStudio:timedDelay/1.0",
      "duration": "PT10M"
    }
  ] 
}

Inicio de prueba de carga (Azure Load Testing)

Propiedad Valor
Nombre de la prestación Start-1.0
Tipo de destino Microsoft-AzureLoadTest
Descripción Inicia una prueba de carga (desde Azure Load Testing) en función del id. de prueba de carga proporcionado.
Requisitos previos Se debe crear una prueba de carga con un id. de prueba de carga válido en el servicio Azure Load Testing.
Urn urn:csci:microsoft:azureLoadTest:start/1.0
Tipo de error Discreto.
Parámetros (clave, valor)
testID Id. de una prueba de carga específica creada en el servicio Azure Load Testing.

Ejemplo de JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "discrete",
      "name": "urn:csci:microsoft:azureLoadTest:start/1.0",
      "parameters": [
        {
            "key": "testID",
            "value": "0"
        }
    ],
      "selectorid": "myResources"
    }
  ]
}

Detención de la prueba de carga (Azure Load Testing)

Propiedad Valor
Nombre de la prestación Stop-1.0
Tipo de destino Microsoft-AzureLoadTest
Descripción Detiene una prueba de carga (desde Azure Load Testing) en función del id. de prueba de carga proporcionado.
Requisitos previos Se debe crear una prueba de carga con un id. de prueba de carga válido en el servicio Azure Load Testing.
Urn urn:csci:microsoft:azureLoadTest:stop/1.0
Tipo de error Discreto.
Parámetros (clave, valor)
testID Id. de una prueba de carga específica creada en el servicio Azure Load Testing.

Ejemplo de JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "discrete",
      "name": "urn:csci:microsoft:azureLoadTest:stop/1.0",
      "parameters": [
        {
            "key": "testID",
            "value": "0"
        }
    ],
      "selectorid": "myResources"
    }
  ]
}