你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn 。
Azure Chaos Studio 故障和操作库
本文内容
基于代理的故障
应用服务
自动缩放设置
Azure Kubernetes 服务
云服务(经典)
群集 Cache for Redis
Cosmos DB
事件中心
密钥保管库
网络安全组
服务总线
虚拟机(服务导向)
虚拟机规模集
业务流程操作
详细信息:基于代理的故障
详细信息:服务导向故障
详细信息:业务流程操作
显示另外 13 个
本文列出了可在 Chaos Studio 中使用的故障(按适用的资源类型进行组织)。 若要了解为每种资源类型建议的角色分配,请参阅 Azure Chaos Studio 支持的资源类型和角色分配 。
通过安装 Chaos Studio 代理,基于代理的故障将注入到 Azure 虚拟机或虚拟机规模集实例中 。 在以下虚拟机 和虚拟机规模集 表中可以找到这些资源的服务导向故障选项。
展开表
1 仅限 TCP/UDP 数据包。 2 仅限出站网络流量。
本部分适用于 Microsoft.Web/sites
资源类型。 详细了解应用服务 。
展开表
本部分适用于 Microsoft.Insights/autoscaleSettings
资源类型。 详细了解自动缩放设置 。
展开表
故障名称
适用的场景
禁用自动缩放
计算容量损失(与虚拟机规模集关闭功能一起使用时)
本部分适用于 Microsoft.ContainerService/managedClusters
资源类型。 详细了解 Azure Kubernetes 服务 。
展开表
本部分适用于 Microsoft.ClassicCompute/domainNames
资源类型。 详细了解云服务(经典) 。
展开表
本部分适用于 Microsoft.Cache/redis
资源类型。 详细了解群集 Cache for Redis 。
展开表
本部分适用于 Microsoft.DocumentDB/databaseAccounts
资源类型。 详细了解 Cosmos DB 。
展开表
本部分适用于 Microsoft.EventHub/namespaces
资源类型。 详细了解事件中心 。
展开表
本部分适用于 Microsoft.KeyVault/vaults
资源类型。 详细了解 Key Vault 。
展开表
本部分适用于 Microsoft.Network/networkSecurityGroups
资源类型。 详细了解网络安全组 。
展开表
故障名称
适用的场景
NSG 安全规则
网络中断(适用于许多 Azure 服务)
本部分适用于 Microsoft.ServiceBus/namespaces
资源类型。 详细了解服务总线 。
展开表
本部分适用于 Microsoft.Compute/virtualMachines
资源类型。 详细了解虚拟机 。
展开表
本部分适用于 Microsoft.Compute/virtualMachineScaleSets
资源类型。 详细了解虚拟机规模集 。
展开表
这些操作是用于构建有效试验的构建基块。 请将它们与其他故障结合使用,例如在并行关闭区域中计算实例的同时运行负载测试。
展开表
展开表
属性
Value
功能名称
NetworkDisconnect-1.1
目标类型
Microsoft-Agent
支持的 OS 类型
Windows、Linux(仅限出站流量)
说明
阻止指定端口范围和网络块的网络流量。 必须至少提供一个 destinationFilter 或 inboundDestinationFilter 数组。
先决条件
Windows: 代理必须以管理员身份来运行,如果代理作为 VM 扩展进行安装,则默认情况就是如此。
Linux:tc
(流量控制)包用于网络故障。 如果尚未安装该包,代理会自动尝试从默认包管理器安装它。
Urn
urn:csci:microsoft:agent:networkDisconnect/1.1
故障类型
连续:
参数(键、值)
destinationFilters
数据包筛选器的分隔 JSON 数组,用于定义作为目标的出站数据包。 最多 16 个。
inboundDestinationFilters
数据包筛选器的分隔 JSON 数组,用于定义作为目标的入站数据包。 最多 16 个。
virtualMachineScaleSetInstances
将此故障应用于虚拟机规模集时的实例 ID 数组。 处于统一业务流程模式的虚拟机规模集需要这些 ID。 详细了解实例 ID 。
参数 destinationFilters 和 inboundDestinationFilters 使用以下数据包筛选器数组。
展开表
属性
Value
address
表示 IP 范围开头的 IP 地址。
subnetMask
IP 地址范围的子网掩码。
portLow
(可选)端口范围的起始端口号。
portHigh
(可选)端口范围的结束端口号。
{
"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"
}
]
}
基于代理的网络故障目前仅支持 IPv4 地址。
网络连接断开故障仅影响新连接。 现有的活动连接将继续保持。 可以重启服务或进程以强制连接中断。
在 Windows 上运行时,网络断开连接故障当前仅适用于 TCP 或 UDP 数据包。
在 Linux 上运行时,此故障只会影响出站 流量,而不会影响入站流量。 该故障可能会影响 Windows 环境中的入站和出站 流量(通过 inboundDestinationFilters
和 destinationFilters
参数)。
展开表
属性
Value
功能名称
NetworkDisconnectViaFirewall-1.0
目标类型
Microsoft-Agent
支持的 OS 类型
Windows
说明
应用 Windows 防火墙规则以阻止指定端口范围和网络块的出站流量。
先决条件
代理必须以管理员身份运行。 如果代理作为 VM 扩展安装,则默认将以管理员身份运行。
Urn
urn:csci:microsoft:agent:networkDisconnectViaFirewall/1.0
故障类型
连续:
参数(键、值)
destinationFilters
数据包筛选器的分隔 JSON 数组,用于定义作为故障注入目标的出站数据包。
address
表示 IP 范围开头的 IP 地址。
subnetMask
IP 地址范围的子网掩码。
portLow
(可选)端口范围的起始端口号。
portHigh
(可选)端口范围的结束端口号。
virtualMachineScaleSetInstances
将此故障应用于虚拟机规模集时的实例 ID 数组。 处于统一业务流程模式的虚拟机规模集需要这些 ID。 详细了解实例 ID 。
{
"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"
}
]
}
基于代理的网络故障目前仅支持 IPv4 地址。
此故障当前只影响新连接。 现有活动连接不受影响。 可以重启服务或进程以强制连接中断。
此时这个错误仅影响 出站流量。
展开表
属性
Value
功能名称
NetworkLatency-1.1
目标类型
Microsoft-Agent
支持的 OS 类型
Windows、Linux(仅限出站流量)
说明
增大指定端口范围和网络块的网络延迟。 必须至少提供一个 destinationFilter 或 inboundDestinationFilter 数组。
先决条件
Windows: 代理必须以管理员身份来运行,如果代理作为 VM 扩展进行安装,则默认情况就是如此。
Linux:tc
(流量控制)包用于网络故障。 如果尚未安装该包,代理会自动尝试从默认包管理器安装它。
Urn
urn:csci:microsoft:agent:networkLatency/1.1
故障类型
连续:
参数(键、值)
latencyInMilliseconds
要应用的延迟量(以毫秒为单位)。
destinationFilters
数据包筛选器的分隔 JSON 数组,用于定义作为目标的出站数据包。 最多 16 个。
inboundDestinationFilters
数据包筛选器的分隔 JSON 数组,用于定义作为目标的入站数据包。 最多 16 个。
virtualMachineScaleSetInstances
将此故障应用于虚拟机规模集时的实例 ID 数组。 处于统一业务流程模式的虚拟机规模集需要这些 ID。 详细了解实例 ID 。
参数 destinationFilters 和 inboundDestinationFilters 使用以下数据包筛选器数组。
展开表
属性
Value
address
表示 IP 范围开头的 IP 地址。
subnetMask
IP 地址范围的子网掩码。
portLow
(可选)端口范围的起始端口号。
portHigh
(可选)端口范围的结束端口号。
{
"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"
}
]
}
基于代理的网络故障目前仅支持 IPv4 地址。
在 Linux 上运行时,网络延迟故障只会影响出站 流量,而不会影响入站流量。 该故障可能会影响 Windows 环境中的入站和出站 流量(通过 inboundDestinationFilters
和 destinationFilters
参数)。
在 Windows 上运行时,网络延迟故障当前仅适用于 TCP 或 UDP 数据包。
此故障当前只影响新连接。 现有活动连接不受影响。 可以重启服务或进程以强制连接中断。
展开表
属性
Value
功能名称
NetworkPacketLoss-1.0
目标类型
Microsoft-Agent
支持的 OS 类型
Windows、Linux(仅限出站流量)
说明
以指定速率引入出站流量的数据包丢失,该速率介于 0.0(无数据包丢失)到 1.0(所有数据包丢失)之间。 此操作有助于模拟网络拥塞或网络硬件问题之类的场景。
先决条件
Windows: 代理必须以管理员身份来运行,如果代理作为 VM 扩展进行安装,则默认情况就是如此。
Linux:tc
(流量控制)包用于网络故障。 如果尚未安装该包,代理会自动尝试从默认包管理器安装它。
Urn
urn:csci:microsoft:agent:networkPacketLoss/1.0
故障类型
连续:
参数(键、值)
packetLossRate
与目标筛选器匹配的数据包的丢失率,范围为 0.0 到 1.0。
virtualMachineScaleSetInstances
将此故障应用于虚拟机规模集时的实例 ID 数组。 处于统一业务流程模式的虚拟机规模集需要这些 ID。 详细了解实例 ID 。
destinationFilters
数据包筛选器(参数见下)的分隔 JSON 数组,用于定义作为故障注入目标的出站数据包。 最多三个。
address
表示 IP 范围开头的 IP 地址。
subnetMask
IP 地址范围的子网掩码。
portLow
(可选)端口范围的起始端口号。
portHigh
(可选)端口范围的结束端口号。
{
"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"
}
]
}
基于代理的网络故障目前仅支持 IPv4 地址。
在 Windows 上运行时,网络数据包丢失故障当前仅适用于 TCP 或 UDP 数据包。
在 Linux 上运行时,此故障只会影响出站 流量,而不会影响入站流量。 该故障可能会影响 Windows 环境中的入站和出站 流量(通过 inboundDestinationFilters
和 destinationFilters
参数)。
此故障当前只影响新连接。 现有活动连接不受影响。 可以重启服务或进程以强制连接中断。
展开表
属性
Value
功能名称
NetworkIsolation-1.0
目标类型
Microsoft-Agent
支持的 OS 类型
Windows、Linux(仅出站)
说明
通过在指定的持续时间内删除所有基于 IP 的入站(在 Windows 上)和出站(在 Windows 和 Linux 上)数据包,将虚拟机与网络连接完全隔离。 持续时间结束时,将重新启用网络连接。 由于代理依赖于网络流量,因此此操作无法取消,并且将运行到指定的持续时间。
先决条件
Windows: 代理必须以管理员身份来运行,如果代理作为 VM 扩展进行安装,则默认情况就是如此。
Linux:tc
(流量控制)包用于网络故障。 如果尚未安装该包,代理会自动尝试从默认包管理器安装它。
Urn
urn:csci:microsoft:agent:networkIsolation/1.0
故障类型
连续:
参数(键、值)
virtualMachineScaleSetInstances
将此故障应用于虚拟机规模集时的实例 ID 数组。 在统一业务流程模式下,对于虚拟机规模集是必需的,在其他情况下,是可选的。 详细了解实例 ID 。
{
"name" : "branchOne" ,
"actions" : [
{
"type" : "continuous" ,
"name" : "urn:csci:microsoft:agent:networkIsolation/1.0" ,
"parameters" : [],
"duration" : "PT10M" ,
"selectorid" : "myResources"
}
]
}
由于代理依赖于网络流量,因此此操作无法取消,并且将运行到指定的持续时间。 请慎用。
此故障当前只影响新连接。 现有活动连接不受影响。 可以重启服务或进程以强制连接中断。
在 Linux 上运行时,此故障只会影响出站 流量,而不会影响入站流量。 该故障可能会影响 Windows 环境中的入站和出站 流量。
展开表
属性
Value
功能名称
DnsFailure-1.0
目标类型
Microsoft-Agent
支持的 OS 类型
Windows
说明
用指定的错误代码替换 DNS 查找请求响应。 替换的 DNS 查找请求必须:并非由 Windows DNS 客户端进行的 DNS 查找不会受到此故障的影响。
先决条件
无。
Urn
urn:csci:microsoft:agent:dnsFailure/1.0
故障类型
连续:
参数(键、值)
hosts
要使其 DNS 查找请求失败的主机名的分隔 JSON 数组。 此属性接受通配符 (*
),但仅适用于地址中的第一个子域,并且仅适用于为其指定的子域。 例如:支持 *.microsoft.com。 不支持 subdomain.*.microsoft。 *.microsoft.com 不适用于地址中的多个子域,例如 subdomain1.subdomain2.microsoft.com。
dnsFailureReturnCode
要返回给客户端的表示查找失败的 DNS 错误代码(FormErr、ServFail、NXDomain、NotImp、Refused、XDomain、YXRRSet、NXRRSet、NotAuth、NotZone)。 有关 DNS 返回代码的详细信息,请查看 IANA 网站 。
virtualMachineScaleSetInstances
将此故障应用于虚拟机规模集时的实例 ID 数组。 处于统一业务流程模式的虚拟机规模集需要这些 ID。 详细了解实例 ID 。
{
"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"
}
]
}
DNS 故障需要 Windows 2019 RS5 或更高版本。
在故障持续期间内,对于故障中定义的主机名,将忽略 DNS 缓存。
展开表
属性
Value
功能名称
CPUPressure-1.0
目标类型
Microsoft-Agent
支持的 OS 类型
Windows、Linux
说明
在故障操作期间注入了此故障的 VM 上,将 CPU 压力最大提高到指定值。 在持续时间结束或取消试验时,人为 CPU 压力将会消除。 在 Windows 上,故障开始时使用“% 处理器实用工具”性能计数器来确定当前的 CPU 百分比,这从故障中定义的 pressureLevel
中减去,以便 % 处理器实用工具将大约达到故障参数中定义的 pressureLevel
。
先决条件
Linux :需要安装 stress-ng 实用工具。 在多个操作系统(包括 Ubuntu 等基于 Debian 的操作系统)、Red Hat Enterprise Linux 和 OpenSUSE 上使用默认包管理器时,会在代理安装过程中自动安装该实用工具。 对于其他发行版(包括 Azure Linux),必须手动安装 stress-ng 。 有关详细信息,请参阅上游项目存储库 。
Windows:无 。
Urn
urn:csci:microsoft:agent:cpuPressure/1.0
故障类型
连续:
参数(键、值)
pressureLevel
一个介于 1 和 95 之间的整数,指示对 VM 施加的 CPU 压力 (%),以“CPU 使用率百分比”表示
virtualMachineScaleSetInstances
将此故障应用于虚拟机规模集时的实例 ID 数组。 处于统一业务流程模式的虚拟机规模集需要这些 ID。 详细了解实例 ID 。
{
"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"
}
]
}
Linux 上的已知问题:
如果 AzureChaosAgent
意外终止,压力效应可能不会正常终止。
展开表
属性
Value
功能名称
PhysicalMemoryPressure-1.0
目标类型
Microsoft-Agent
支持的 OS 类型
Windows、Linux
说明
在故障操作期间注入了此故障的 VM 上,将物理内存压力最大提高到指定值。 在持续时间结束或取消试验时,人为物理内存压力将会消除。
先决条件
Linux :需要安装 stress-ng 实用工具。 在多个操作系统(包括 Ubuntu 等基于 Debian 的操作系统)、Red Hat Enterprise Linux 和 OpenSUSE 上使用默认包管理器时,会在代理安装过程中自动安装该实用工具。 对于其他发行版(包括 Azure Linux),必须手动安装 stress-ng 。 有关详细信息,请参阅上游项目存储库 。
Windows:无 。
Urn
urn:csci:microsoft:agent:physicalMemoryPressure/1.0
故障类型
连续:
参数(键、值)
pressureLevel
一个介于 1 和 95 之间的整数,指示对 VM 施加的物理内存压力 (%)。
virtualMachineScaleSetInstances
将此故障应用于虚拟机规模集时的实例 ID 数组。 处于统一业务流程模式的虚拟机规模集需要这些 ID。 详细了解实例 ID 。
{
"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"
}
]
}
目前,当其他应用程序增加内存使用量时,Windows 代理不会减少内存压力。 如果总体内存使用率超过 100%,Windows 代理可能会崩溃。
展开表
属性
Value
功能名称
VirtualMemoryPressure-1.0
目标类型
Microsoft-Agent
支持的 OS 类型
Windows
说明
在故障操作期间注入了此故障的 VM 上,将虚拟内存压力最大提高到指定值。 在持续时间结束或取消试验时,人为虚拟内存压力将会消除。
先决条件
无。
Urn
urn:csci:microsoft:agent:virtualMemoryPressure/1.0
故障类型
连续:
参数(键、值)
pressureLevel
一个介于 1 和 95 之间的整数,指示对 VM 施加的物理内存压力 (%)。
virtualMachineScaleSetInstances
将此故障应用于虚拟机规模集时的实例 ID 数组。 处于统一业务流程模式的虚拟机规模集需要这些 ID。 详细了解实例 ID 。
{
"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"
}
]
}
展开表
属性
Value
功能名称
DiskIOPressure-1.1
目标类型
Microsoft-Agent
支持的 OS 类型
Windows
说明
使用 diskspd 实用工具 将磁盘压力加到虚拟机。 默认情况下,压力会加到主磁盘或使用 targetTempDirectory 参数指定的磁盘。 此故障有五种不同的执行模式。 在持续时间结束或取消试验时,人为磁盘压力将会消除。
先决条件
无。
Urn
urn:csci:microsoft:agent:diskIOPressure/1.1
故障类型
连续:
参数(键、值)
pressureMode
要添加到 VM 主存储的磁盘压力的预设模式。 必须是下表中的 PressureModes
之一。
targetTempDirectory
(可选)用于施加磁盘压力的目录。 例如 D:/Temp
。 如果不包含该参数,则向主磁盘加压力。
virtualMachineScaleSetInstances
将此故障应用于虚拟机规模集时的实例 ID 数组。 处于统一业务流程模式的虚拟机规模集需要这些 ID。 详细了解实例 ID 。
展开表
PressureMode
说明
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
默认
numberOfThreads = 2 randomBlockSizeInKB = 64 randomSeed = 10 numberOfIOperThread = 2 sizeOfBlocksInKB = 64 sizeOfWriteBufferInKB = 64 fileSizeInGB = 1 percentOfWriteActions = 50
{
"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"
}
]
}
展开表
属性
Value
功能名称
LinuxDiskIOPressure-1.1
目标类型
Microsoft-Agent
支持的 OS 类型
Linux
说明
使用 stress-ng 对磁盘施加压力。 将生成一个或多个工作进程,用于通过临时文件执行 I/O 进程。 默认情况下,压力会加到主磁盘或使用 targetTempDirectory 参数指定的磁盘。 若要了解如何施加压力,请参阅 stress-ng 一文。
先决条件
Linux :需要安装 stress-ng 实用工具。 在多个操作系统(包括 Ubuntu 等基于 Debian 的操作系统)、Red Hat Enterprise Linux 和 OpenSUSE 上使用默认包管理器时,会在代理安装过程中自动安装该实用工具。 对于其他发行版(包括 Azure Linux),必须手动安装 stress-ng 。 有关详细信息,请参阅上游项目存储库 。
Urn
urn:csci:microsoft:agent:linuxDiskIOPressure/1.1
故障类型
连续:
参数(键、值)
workerCount
要运行的工作进程数。 将 workerCount
设置为 0 会生成与处理器数量一样多的工作进程。
fileSizePerWorker
工作进程会对其执行 I/O 操作的临时文件的大小。 整数加上一个字节 (b)、千字节 (k)、兆字节 (m) 或千兆字节 (g) 单位(例如,4m
表示 4 兆字节,256g
表示 256 千兆字节)。
blockSize
用于磁盘 I/O 操作的块大小,大于 1 字节且小于 4 兆字节(最大值为 4095k
)。 整数加上一个字节、千字节或兆字节单位(例如,512k
表示 512 千字节)。
targetTempDirectory
(可选)用于施加磁盘压力的目录。 例如 /tmp/
。 如果不包含该参数,则向主磁盘加压力。
virtualMachineScaleSetInstances
将此故障应用于虚拟机规模集时的实例 ID 数组。 处于统一业务流程模式的虚拟机规模集需要这些 ID。 详细了解实例 ID 。
在具有高级 SSD LRS 的 Standard_D2s_v3
虚拟机上进行测试时,这些示例值产生了大约 100% 的磁盘压力。 较大的 fileSizePerWorker 和较小的 blockSize 有助于充分施加磁盘压力。
{
"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"
}
]
}
展开表
属性
Value
功能名称
StopService-1.0
目标类型
Microsoft-Agent
支持的 OS 类型
Windows、Linux
说明
故障期间停止 Windows 服务或 Linux systemd 服务。 在持续时间结束或取消试验时重启它。
先决条件
无。
Urn
urn:csci:microsoft:agent:stopService/1.0
故障类型
连续:
参数(键、值)
serviceName
要停止的 Windows 服务或 Linux systemd 服务的名称。
virtualMachineScaleSetInstances
将此故障应用于虚拟机规模集时的实例 ID 数组。 处于统一业务流程模式的虚拟机规模集需要这些 ID。 详细了解实例 ID 。
{
"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"
}
]
}
Windows :不支持服务的显示名称。 在命令提示符中使用 sc.exe query
来浏览服务名称。
Linux :不支持除 systemd 之外的其他服务类型(例如 sysvinit)。
展开表
属性
Value
功能名称
KillProcess-1.0
目标类型
Microsoft-Agent
支持的 OS 类型
Windows、Linux
说明
终止与故障参数中发送的进程名称匹配的进程的所有运行中实例。 在为故障操作设置的持续时间内,将会根据指定的终止间隔值重复终止进程。 此故障是一个破坏性故障,如果配置了自我修复,系统管理员需要手动恢复进程。 请注意,当对空名称进程使用、以未指定的间隔使用或找不到要终止的目标进程名称时,此错误将出错。
先决条件
无。
Urn
urn:csci:microsoft:agent:killProcess/1.0
故障类型
连续:
参数(键、值)
processName
要连续终止的进程的名称(不带 .exe)。 当故障开始执行时,该进程不需要运行。
killIntervalInMilliseconds
故障在每两次连续终止尝试之间等待的时间(以毫秒为单位)。
virtualMachineScaleSetInstances
将此故障应用于虚拟机规模集时的实例 ID 数组。 处于统一业务流程模式的虚拟机规模集需要这些 ID。 详细了解实例 ID 。
{
"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"
}
]
}
展开表
属性
Value
功能名称
PauseProcess-1.0
目标类型
Microsoft-Agent
支持的 OS 类型
Windows
说明
在指定的持续时间内暂停(挂起)指定进程。 如果有多个具有相同名称的进程,则此错误会挂起所有这些进程。 在故障的持续时间内,进程会按指定的时间间隔重复暂停。 在持续时间结束或取消试验时,进程会继续。
先决条件
无。
Urn
urn:csci:microsoft:agent:pauseProcess/1.0
故障类型
连续:
参数(键、值)
processNames
带分隔符的进程名称 JSON 数组,定义要暂停的进程名称。 最多 4 个。 进程名称可以选择包括“.exe”扩展名。
pauseIntervalInMilliseconds
故障在每两次连续暂停尝试之间等待的时间(以毫秒为单位)。
virtualMachineScaleSetInstances
将此故障应用于虚拟机规模集时的实例 ID 数组。 处于统一业务流程模式的虚拟机规模集需要这些 ID。 详细了解实例 ID 。
{
"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"
}
]
}
目前,processNames 参数中最多可以列出 4 个进程名称。
展开表
属性
Value
功能名称
TimeChange-1.0
目标类型
Microsoft-Agent
支持的 OS 类型
Windows
说明
更改虚拟机的系统时间,并在试验结束或试验取消时重置时间。
先决条件
无。
Urn
urn:csci:microsoft:agent:timeChange/1.0
故障类型
连续:
参数(键、值)
dateTime
ISO8601 格式 的日期时间字符串。 如果缺少 YYYY-MM-DD
值,则默认值为试验运行的当天。 如果缺少 Thh:mm:ss 值,则默认值为 12:00:00 AM。 如果提供了 2 位数年份 (YY
),则会根据当前世纪将其转换为 4 位数年份 (YYYY
)。 如果缺少时区 <Z>
,则默认偏移量为本地时区。 <Z>
必须始终包含符号(负号或正号)。
virtualMachineScaleSetInstances
将此故障应用于虚拟机规模集时的实例 ID 数组。 处于统一业务流程模式的虚拟机规模集需要这些 ID。 详细了解实例 ID 。
{
"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"
}
]
}
展开表
属性
Value
功能名称
StressNg-1.0
目标类型
Microsoft-Agent
支持的 OS 类型
Linux
说明
通过将参数直接传递给 stress-ng 来运行任何 stress-ng 命令。 当 stress-ng 的预定义故障之一不满足需求时很有用。
先决条件
Linux :需要安装 stress-ng 实用工具。 在多个操作系统(包括 Ubuntu 等基于 Debian 的操作系统)、Red Hat Enterprise Linux 和 OpenSUSE 上使用默认包管理器时,会在代理安装过程中自动安装该实用工具。 对于其他发行版(包括 Azure Linux),必须手动安装 stress-ng 。 有关详细信息,请参阅上游项目存储库 。
Urn
urn:csci:microsoft:agent:stressNg/1.0
故障类型
连续:
参数(键、值)
stressNgArguments
传递给 stress-ng 进程的一个或多个参数。 有关可能的 stress-ng 参数的信息,请参阅 stress-ng 一文。 注意:请勿包含“-t”参数,因为它将导致错误。 试验长度直接在 Azure 混沌试验 UI 中定义,而不是在 stressNgArguments 中定义。
{
"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"
}
]
}
展开表
属性
Value
功能名称
Stop-1.0
目标类型
Microsoft-AppService
说明
停止目标应用服务应用程序,然后在故障持续时间结束时重启它们。 此操作适用于“Microsoft.Web/sites”类型的资源,包括应用服务、API 应用、移动应用和 Azure Functions。
先决条件
无。
Urn
urn:csci:microsoft:appService:stop/1.0
故障类型
连续:
参数(键、值)
无。
{
"name" : "branchOne" ,
"actions" : [
{
"type" : "continuous" ,
"name" : "urn:csci:microsoft:appService:stop/1.0" ,
"duration" : "PT10M" ,
"parameters" :[],
"selectorid" : "myResources"
}
]
}
展开表
属性
Value
功能名称
DisableAutoscale
目标类型
Microsoft-AutoscaleSettings
说明
禁用自动缩放服务 。 禁用自动缩放后,不会根据应用程序的负载自动添加或删除虚拟机规模集、Web 应用、服务总线以及其他 资源。
先决条件
在此资源上启用的 autoScalesetting 资源必须加入到 Chaos Studio。
Urn
urn:csci:microsoft:autoscalesettings:disableAutoscale/1.0
故障类型
连续:
参数(键、值)
enableOnComplete
布尔值。 配置在操作完成后是否重新启用自动缩放。 默认值为 true
。
{
"name" : "BranchOne" ,
"actions" : [
{
"type" : "continuous" ,
"name" : "urn:csci:microsoft:autoscaleSetting:disableAutoscale/1.0" ,
"parameters" : [
{
"key" : "enableOnComplete" ,
"value" : "true"
}
],
"duration" : "PT2M" ,
"selectorId" : "Selector1" ,
}
]
}
展开表
属性
Value
功能名称
NetworkChaos-2.2
目标类型
Microsoft-AzureKubernetesServiceChaosMesh
支持的节点池操作系统类型
Linux
说明
导致针对 Azure Kubernetes 服务 (AKS) 群集运行可通过 Chaos Mesh 使用的网络故障。 可用于重新创建因网络中断、延迟、重复、丢失和损坏而导致的 AKS 事件。
先决条件
AKS 群集必须部署了 Chaos Mesh 。
Urn
urn:csci:microsoft:azureKubernetesServiceChaosMesh:networkChaos/2.2
参数(键、值)
jsonSpec
使用 NetworkChaos 类型 且采用 JSON 格式的 Chaos Mesh 规范。 可以使用 YAML 到 JSON 转换器(例如将 YAML 转换为 JSON )将 Chaos Mesh YAML 转换为 JSON 并将其最小化。 在 JSON 中使用单引号,或使用反斜杠字符来转义引号。 仅在 jsonSpec
属性下包含 YAML。 请勿包含元数据和类型等信息。 不必在 jsonSpec
范围内指定持续时间,但可以在适用的情况下这样做。
{
"name" : "branchOne" ,
"actions" : [
{
"type" : "continuous" ,
"name" : "urn:csci:microsoft:azureKubernetesServiceChaosMesh:networkChaos/2.2" ,
"parameters" : [
{
"key" : "jsonSpec" ,
"value" : "{\"action\":\"delay\",\"mode\":\"one\",\"selector\":{\"namespaces\":[\"default\"]},\"delay\":{\"latency\":\"200ms\",\"correlation\":\"100\",\"jitter\":\"0ms\"}}}"
}
],
"selectorid" : "myResources"
}
]
}
展开表
属性
Value
功能名称
PodChaos-2.2
目标类型
Microsoft-AzureKubernetesServiceChaosMesh
支持的节点池操作系统类型
Linux
说明
导致针对 AKS 群集运行可通过 Chaos Mesh 使用的 pod 故障。 可用于重新创建因 Pod 故障或容器问题而导致的 AKS 事件。
先决条件
AKS 群集必须部署了 Chaos Mesh 。
Urn
urn:csci:microsoft:azureKubernetesServiceChaosMesh:podChaos/2.2
参数(键、值)
jsonSpec
使用 PodChaos 类型 且采用 JSON 格式的 Chaos Mesh 规范。 可以使用 YAML 到 JSON 转换器(例如将 YAML 转换为 JSON )将 Chaos Mesh YAML 转换为 JSON 并将其最小化。 在 JSON 中使用单引号,或使用反斜杠字符来转义引号。 仅在 jsonSpec
属性下包含 YAML。 请勿包含元数据和类型等信息。 不必在 jsonSpec
范围内指定持续时间,但可以在适用的情况下这样做。
{
"name" : "branchOne" ,
"actions" : [
{
"type" : "continuous" ,
"name" : "urn:csci:microsoft:azureKubernetesServiceChaosMesh:podChaos/2.2" ,
"parameters" : [
{
"key" : "jsonSpec" ,
"value" : "{\"action\":\"pod-failure\",\"mode\":\"all\",\"selector\":{\"namespaces\":[\"default\"]}}"
}
],
"selectorid" : "myResources"
}
]
}
展开表
属性
Value
功能名称
StressChaos-2.2
目标类型
Microsoft-AzureKubernetesServiceChaosMesh
支持的节点池操作系统类型
Linux
说明
导致针对 AKS 群集运行可通过 Chaos Mesh 使用的压力故障。 可用于重新创建因一系列 pod 压力过高(例如,CPU 或内存消耗过高)而导致的 AKS 事件。
先决条件
AKS 群集必须部署了 Chaos Mesh 。
Urn
urn:csci:microsoft:azureKubernetesServiceChaosMesh:stressChaos/2.2
参数(键、值)
jsonSpec
使用 StressChaos 类型 且采用 JSON 格式的 Chaos Mesh 规范。 可以使用 YAML 到 JSON 转换器(例如将 YAML 转换为 JSON )将 Chaos Mesh YAML 转换为 JSON 并将其最小化。 在 JSON 中使用单引号,或使用反斜杠字符来转义引号。 仅在 jsonSpec
属性下包含 YAML。 请勿包含元数据和类型等信息。 不必在 jsonSpec
范围内指定持续时间,但可以在适用的情况下这样做。
{
"name" : "branchOne" ,
"actions" : [
{
"type" : "continuous" ,
"name" : "urn:csci:microsoft:azureKubernetesServiceChaosMesh:stressChaos/2.2" ,
"parameters" : [
{
"key" : "jsonSpec" ,
"value" : "{\"mode\":\"one\",\"selector\":{\"namespaces\":[\"default\"]},\"stressors\":{\"cpu\":{\"workers\":1,\"load\":50},\"memory\":{\"workers\":4,\"size\":\"256MB\"}}"
}
],
"selectorid" : "myResources"
}
]
}
展开表
属性
Value
功能名称
IOChaos-2.2
目标类型
Microsoft-AzureKubernetesServiceChaosMesh
支持的节点池操作系统类型
Linux
说明
导致针对 AKS 群集运行可通过 Chaos Mesh 使用的 IO 故障。 在使用 open
、read
和 write
等 IO 系统调用时,可用于重新创建因 IO 延迟和读/写故障而导致的 AKS 事件。
先决条件
AKS 群集必须部署了 Chaos Mesh 。
Urn
urn:csci:microsoft:azureKubernetesServiceChaosMesh:IOChaos/2.2
参数(键、值)
jsonSpec
使用 IOChaos 类型 且采用 JSON 格式的 Chaos Mesh 规范。 可以使用 YAML 到 JSON 转换器(例如将 YAML 转换为 JSON )将 Chaos Mesh YAML 转换为 JSON 并将其最小化。 在 JSON 中使用单引号,或使用反斜杠字符来转义引号。 仅在 jsonSpec
属性下包含 YAML。 请勿包含元数据和类型等信息。 不必在 jsonSpec
范围内指定持续时间,但可以在适用的情况下这样做。
{
"name" : "branchOne" ,
"actions" : [
{
"type" : "continuous" ,
"name" : "urn:csci:microsoft:azureKubernetesServiceChaosMesh:IOChaos/2.2" ,
"parameters" : [
{
"key" : "jsonSpec" ,
"value" : "{\"action\":\"latency\",\"mode\":\"one\",\"selector\":{\"app\":\"etcd\"},\"volumePath\":\"\/var\/run\/etcd\",\"path\":\"\/var\/run\/etcd\/**\/*\",\"delay\":\"100ms\",\"percent\":50}"
}
],
"selectorid" : "myResources"
}
]
}
展开表
属性
Value
功能名称
TimeChaos-2.2
目标类型
Microsoft-AzureKubernetesServiceChaosMesh
支持的节点池操作系统类型
Linux
说明
使用 Chaos Mesh 导致 AKS 群集上的系统时钟发生更改。 可用于重新创建因分布式系统不同步、闰年/闰秒逻辑缺失或不正确等问题而导致的 AKS 事件。
先决条件
AKS 群集必须部署了 Chaos Mesh 。
Urn
urn:csci:microsoft:azureKubernetesServiceChaosMesh:timeChaos/2.2
参数(键、值)
jsonSpec
使用 TimeChaos 类型 且采用 JSON 格式的 Chaos Mesh 规范。 可以使用 YAML 到 JSON 转换器(例如将 YAML 转换为 JSON )将 Chaos Mesh YAML 转换为 JSON 并将其最小化。 在 JSON 中使用单引号,或使用反斜杠字符来转义引号。 仅在 jsonSpec
属性下包含 YAML。 请勿包含元数据和类型等信息。 不必在 jsonSpec
范围内指定持续时间,但可以在适用的情况下这样做。
{
"name" : "branchOne" ,
"actions" : [
{
"type" : "continuous" ,
"name" : "urn:csci:microsoft:azureKubernetesServiceChaosMesh:timeChaos/2.2" ,
"parameters" : [
{
"key" : "jsonSpec" ,
"value" : "{\"mode\":\"one\",\"selector\":{\"namespaces\":[\"default\"]},\"timeOffset\":\"-10m100ns\"}"
}
],
"selectorid" : "myResources"
}
]
}
展开表
属性
Value
功能名称
KernelChaos-2.2
目标类型
Microsoft-AzureKubernetesServiceChaosMesh
支持的节点池操作系统类型
Linux
说明
导致针对 AKS 群集运行可通过 Chaos Mesh 使用的内核故障。 可用于重新创建因 Linux 内核级错误(例如装载失败或未分配内存)而导致的 AKS 事件。
先决条件
AKS 群集必须部署了 Chaos Mesh 。
Urn
urn:csci:microsoft:azureKubernetesServiceChaosMesh:kernelChaos/2.2
参数(键、值)
jsonSpec
使用 KernelChaos 类型 且采用 JSON 格式的 Chaos Mesh 规范。 可以使用 YAML 到 JSON 转换器(例如将 YAML 转换为 JSON )将 Chaos Mesh YAML 转换为 JSON 并将其最小化。 在 JSON 中使用单引号,或使用反斜杠字符来转义引号。 仅在 jsonSpec
属性下包含 YAML。 请勿包含元数据和类型等信息。 不必在 jsonSpec
范围内指定持续时间,但可以在适用的情况下这样做。
{
"name" : "branchOne" ,
"actions" : [
{
"type" : "continuous" ,
"name" : "urn:csci:microsoft:azureKubernetesServiceChaosMesh:kernelChaos/2.2" ,
"parameters" : [
{
"key" : "jsonSpec" ,
"value" : "{\"mode\":\"one\",\"selector\":{\"namespaces\":[\"default\"]},\"failKernRequest\":{\"callchain\":[{\"funcname\":\"__x64_sys_mount\"}],\"failtype\":0}}"
}
],
"selectorid" : "myResources"
}
]
}
展开表
属性
Value
功能名称
HTTPChaos-2.2
目标类型
Microsoft-AzureKubernetesServiceChaosMesh
支持的节点池操作系统类型
Linux
说明
导致针对 AKS 群集运行可通过 Chaos Mesh 使用的 HTTP 故障。 用于重新创建由于 HTTP 请求和响应处理失败(例如延迟或不正确响应)引起的事件。
先决条件
AKS 群集必须部署了 Chaos Mesh 。
Urn
urn:csci:microsoft:azureKubernetesServiceChaosMesh:httpChaos/2.2
参数(键、值)
jsonSpec
使用 HTTPChaos 类型 且采用 JSON 格式的 Chaos Mesh 规范。 可以使用 YAML 到 JSON 转换器(例如将 YAML 转换为 JSON )将 Chaos Mesh YAML 转换为 JSON 并将其最小化。 在 JSON 中使用单引号,或使用反斜杠字符来转义引号。 仅在 jsonSpec
属性下包含 YAML。 请勿包含元数据和类型等信息。 不必在 jsonSpec
范围内指定持续时间,但可以在适用的情况下这样做。
{
"name" : "branchOne" ,
"actions" : [
{
"type" : "continuous" ,
"name" : "urn:csci:microsoft:azureKubernetesServiceChaosMesh:httpChaos/2.2" ,
"parameters" : [
{
"key" : "jsonSpec" ,
"value" : "{\"mode\":\"all\",\"selector\":{\"namespaces\":[\"default\"]},\"target\":\"Request\",\"port\":80,\"method\":\"GET\",\"path\":\"/api\",\"abort\":true}"
}
],
"selectorid" : "myResources"
}
]
}
展开表
属性
Value
功能名称
DNSChaos-2.2
目标类型
Microsoft-AzureKubernetesServiceChaosMesh
支持的节点池操作系统类型
Linux
说明
导致针对 AKS 群集运行可通过 Chaos Mesh 使用的 DNS 故障。 用于重新创建由于 DNS 故障引起的事件。
先决条件
AKS 群集必须部署了 Chaos Mesh ,并且必须安装 DNS 服务 。
Urn
urn:csci:microsoft:azureKubernetesServiceChaosMesh:dnsChaos/2.2
参数(键、值)
jsonSpec
使用 DNSChaos 类型 且采用 JSON 格式的 Chaos Mesh 规范。 可以使用 YAML 到 JSON 转换器(例如将 YAML 转换为 JSON )将 Chaos Mesh YAML 转换为 JSON 并将其最小化。 在 JSON 中使用单引号,或使用反斜杠字符来转义引号。 仅在 jsonSpec
属性下包含 YAML。 请勿包含元数据和类型等信息。 不必在 jsonSpec
范围内指定持续时间,但可以在适用的情况下这样做。
{
"name" : "branchOne" ,
"actions" : [
{
"type" : "continuous" ,
"name" : "urn:csci:microsoft:azureKubernetesServiceChaosMesh:dnsChaos/2.2" ,
"parameters" : [
{
"key" : "jsonSpec" ,
"value" : "{\"action\":\"random\",\"mode\":\"all\",\"patterns\":[\"google.com\",\"chaos-mesh.*\",\"github.?om\"],\"selector\":{\"namespaces\":[\"default\"]}}"
}
],
"selectorid" : "myResources"
}
]
}
展开表
属性
Value
功能名称
Shutdown-1.0
目标类型
Microsoft-DomainName
说明
故障期间停止部署。 在故障持续时间结束或取消试验时重启部署。
先决条件
无。
Urn
urn:csci:microsoft:domainName:shutdown/1.0
故障类型
连续:
参数
无。
{
"name" : "branchOne" ,
"actions" : [
{
"type" : "continuous" ,
"name" : "urn:csci:microsoft:domainName:shutdown/1.0" ,
"parameters" : [],
"duration" : "PT10M" ,
"selectorid" : "myResources"
}
]
}
Azure Cache for Redis(重新启动)
展开表
属性
Value
功能名称
Reboot-1.0
目标类型
Microsoft-AzureClusteredCacheForRedis
说明
导致在目标上执行强制重新启动操作以模拟短暂中断。
先决条件
空值
Urn
urn:csci:microsoft:azureClusteredCacheForRedis:reboot/1.0
故障类型
离散。
参数(键、值)
rebootType
要在其中执行重新启动操作的节点类型,可以指定为 PrimaryNode、SecondaryNode 或 AllNodes。
shardId
要重新启动的分片的 ID。 仅与高级层缓存相关。
{
"name" : "branchOne" ,
"actions" : [
{
"type" : "discrete" ,
"name" : "urn:csci:microsoft:azureClusteredCacheForRedis:reboot/1.0" ,
"parameters" : [
{
"key" : "RebootType" ,
"value" : "AllNodes"
},
{
"key" : "ShardId" ,
"value" : "0"
}
],
"selectorid" : "myResources"
}
]
}
重新启动故障会导致强制重新启动以更好地模拟中断事件,这意味着可能会发生数据丢失。
重新启动故障是一种离散的故障类型 。 与连续故障不同,它是一次性的操作,没有持续时间。
展开表
属性
Value
功能名称
Failover-1.0
目标类型
Microsoft-CosmosDB
说明
导致具有单个写入区域的 Azure Cosmos DB 帐户故障转移到指定的读取区域,以模拟写入区域中断 。
先决条件
无。
Urn
urn:csci:microsoft:cosmosDB:failover/1.0
故障类型
连续:
参数(键、值)
readRegion
在故障转移期间应提升为写入区域的读取区域,例如“East US 2
”。
{
"name" : "branchOne" ,
"actions" : [
{
"type" : "continuous" ,
"name" : "urn:csci:microsoft:cosmosDB:failover/1.0" ,
"parameters" : [
{
"key" : "readRegion" ,
"value" : "West US 2"
}
],
"duration" : "PT10M" ,
"selectorid" : "myResources"
}
]
}
展开表
属性
Value
功能名称
ChangeEventHubState-1.0
目标类型
Microsoft-EventHub
说明
将单个事件中心设置为 Azure 事件中心命名空间中的所需状态。 可以影响特定的事件中心名称,或使用“*”影响命名空间中的所有名称。 此操作有助于测试消息传递基础结构的维护或故障情况。 这是一个离散故障,因此实体不会自动返回到起始状态。
先决条件
一个包含事件中心实体 的 Azure 事件中心命名空间。
Urn
urn:csci:microsoft:eventHub:changeEventHubState/1.0
故障类型
离散。
参数(键、值)
desiredState
目标事件中心的所需状态。 可能的状态为 Active、Disabled 和 SendDisabled。
eventHubs
目标命名空间内以逗号分隔的事件中心名称列表。 使用“*”可影响命名空间内的所有实体。
{
"name" : "Branch1" ,
"actions" : [
{
"selectorId" : "Selector1" ,
"type" : "discrete" ,
"parameters" : [
{
"key" : "eventhubs" ,
"value" : "[\"*\"]"
},
{
"key" : "desiredState" ,
"value" : "Disabled"
}
],
"name" : "urn:csci:microsoft:eventHub:changeEventHubState/1.0"
}
]
}
展开表
属性
Value
功能名称
DenyAccess-1.0
目标类型
Microsoft-KeyVault
说明
通过暂时修改密钥保管库网络规则来阻止对密钥保管库的所有网络访问。 此操作会阻止依赖于该密钥保管库的应用程序访问机密、密钥和/或证书。 如果密钥保管库允许访问所有网络,则此设置将更改为仅允许来自选定网络的访问。 故障开始时允许的列表中没有虚拟网络。 在故障结束时,所有网络都被允许访问。 如果密钥保管库设置为仅允许从所选网络进行访问,则在故障开始时会删除允许列表中的任何虚拟网络。 它们在故障结束时还原。
先决条件
目标密钥保管库不能有任何防火墙规则,并且不得设置为允许 Azure 服务绕过防火墙。 如果目标密钥保管库设置为仅允许从所选网络进行访问,则至少得有一个虚拟网络规则。 密钥保管库不能处于恢复模式。
Urn
urn:csci:microsoft:keyVault:denyAccess/1.0
故障类型
连续:
参数(键、值)
无。
{
"name" : "branchOne" ,
"actions" : [
{
"type" : "continuous" ,
"name" : "urn:csci:microsoft:keyvault:denyAccess/1.0" ,
"parameters" : [],
"duration" : "PT10M" ,
"selectorid" : "myResources"
}
]
}
展开表
属性
Value
功能名称
DisableCertificate-1.0
目标类型
Microsoft-KeyVault
说明
通过使用证书属性,故障会在特定持续时间(由用户提供)内禁用证书。 它会在此故障持续时间后启用证书。
先决条件
无。
Urn
urn:csci:microsoft:keyvault:disableCertificate/1.0
故障类型
连续:
参数(键、值)
certificateName
执行故障的 Azure Key Vault 证书的名称。
版本
应禁用的证书版本。 如果未指定此项,则禁用最新版本。
{
"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"
}
]
}
展开表
属性
Value
功能名称
IncrementCertificateVersion-1.0
目标类型
Microsoft-KeyVault
说明
使用 Key Vault 证书客户端库生成新的证书版本和指纹。 当前工作证书已升级到此版本。 故障持续时间过后,证书版本不会恢复。
先决条件
无。
Urn
urn:csci:microsoft:keyvault:incrementCertificateVersion/1.0
故障类型
离散。
参数(键、值)
certificateName
执行故障的 Azure Key Vault 证书的名称。
{
"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"
}
]
}
展开表
属性
Value
功能名称
UpdateCertificatePolicy-1.0
目标类型
Microsoft-KeyVault
说明
证书策略(例如证书有效期、证书类型、密钥大小或密钥类型)根据用户输入进行更新,并在故障持续时间过后恢复。
先决条件
无。
Urn
urn:csci:microsoft:keyvault:updateCertificatePolicy/1.0
故障类型
连续:
参数(键、值)
certificateName
执行故障的 Azure Key Vault 证书的名称。
版本
应更新的证书版本。 如果未指定此项,则更新最新版本。
enabled
布尔值。 值,指示是否启用新证书版本。
validityInMonths
证书的有效期(月)。
certificateTransparency
指示证书在创建时是否应发布到证书透明度列表。
certificateType
证书类型。
contentType
证书的内容类型。 例如,当证书包含原始 PFX 字节时,它是 Pkcs12;当证书包含 ASCII PEM 编码字节时,它是 Pem。 Pkcs12 是假定的默认值。
keySize
RSA 密钥的大小:2048、3072 或 4096。
exportable
布尔值。 值,指示证书密钥是否可从保管库或安全证书存储导出。
reuseKey
布尔值。 值,指示证书轮换时是否应重用证书密钥。
keyType
颁发新证书时生成的支持密钥类型,例如 RSA 或 EC。
{
"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"
}
]
}
展开表
属性
Value
功能名称
SecurityRule-1.0、SecurityRule-1.1
目标类型
Microsoft-NetworkSecurityGroup
说明
启用在现有 Azure 网络安全组 (NSG) 或一组 Azure NSG 中进行操作或创建规则(假设规则定义适用于各个安全组)的功能。 适用于:模拟下游中断或跨区域依赖项/非依赖项中断。 模拟预期触发逻辑以强制服务故障转移的事件。 模拟一个预期触发来自监视或状态管理服务的操作的事件。 在无法部署 Chaos Agent 的情况下用作阻止或允许网络流量的替代方法。
先决条件
无。
Urn
urn:csci:microsoft:networkSecurityGroup:securityRule/1.0、urn:csci:microsoft:networkSecurityGroup:securityRule/1.1
故障类型
连续:
参数(键、值)
name
已创建的安全规则的唯一名称。 如果 NSG 上已存在另一个同名规则,则故障会失败。 必须以字母或数字开头。 必须以字母、数字或下划线结尾。 只能包含字母、数字、下划线、句点和连字符。
protocol
安全规则的协议。 必须是 Any、TCP、UDP 或 ICMP。
sourceAddresses
一个字符串,表示 JSON 分隔的 CIDR 格式 IP 地址数组。 也可以是入站规则的服务标记名称 ,例如 AppService
。 也可以使用星号 (*
) 来匹配所有源 IP。
destinationAddresses
一个字符串,表示 JSON 分隔的 CIDR 格式 IP 地址数组。 也可以是出站规则的服务标记名称 ,例如 AppService
。 也可以使用星号 (*
) 来匹配所有目标 IP。
action
安全组访问类型。 必须是 Allow 或 Deny。
destinationPortRanges
一个字符串,表示 JSON 分隔的单个端口和/或端口范围的数组,例如 80 或 1024-65535。
sourcePortRanges
一个字符串,表示 JSON 分隔的单个端口和/或端口范围的数组,例如 80 或 1024-65535。
priority
一个介于 100 和 4096 之间的值,该值对于 NSG 内的所有安全规则都是唯一的。 如果 NSG 上已存在另一个同优先级规则,则故障会失败。
direction
受安全规则影响的流量的方向。 必须是 Inbound 或 Outbound。
{
"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"
}
]
}
该故障只能应用于现有的 NSG。
当应用旨在拒绝流量的 NSG 规则时,现有连接在空闲 4 分钟之前不会中断 。 一种解决方法是在同一步骤中添加另一个分支,该分支使用在应用 NSG 故障时会导致现有连接中断的故障。 例如,终止进程、暂时停止服务或重启 VM 会导致连接重置。
规则在操作开始时应用。 在操作期间对规则的任何外部更改都会导致试验失败。
不支持创建或修改应用程序安全组规则。
每个目标 NSG 上的优先级值必须唯一。 尝试创建与另一个具有相同优先级值的新规则会导致试验失败。
NSG 安全规则版本 1.1 故障支持额外的 flushConnection
参数。 此功能有一个未解决的已知问题 :如果启用了 flushConnection
,则故障可能会导致“FlushingNetworkSecurityGroupConnectionIsNotEnabled”错误。 若要暂时避免此错误,请禁用 flushConnection
参数或使用 NSG 安全规则版本 1.0 故障。
展开表
属性
Value
功能名称
ChangeQueueState-1.0
目标类型
Microsoft-ServiceBus
说明
将服务总线命名空间内的队列实体设置为所需状态。 可以影响特定实体名称或使用“*”影响所有实体名称。 此操作有助于测试消息传递基础结构的维护或故障情况。 这是一个离散故障,因此实体不会自动返回到起始状态。
先决条件
一个服务总线命名空间,其中至少有一个队列实体 。
Urn
urn:csci:microsoft:serviceBus:changeQueueState/1.0
故障类型
离散。
参数(键、值)
desiredState
目标队列的所需状态。 可能的状态为 Active、Disabled、SendDisabled 和 ReceiveDisabled。
queues
目标命名空间内以逗号分隔的队列名称列表。 使用“*”影响命名空间内的所有队列。
{
"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"
}
]
}
展开表
属性
Value
功能名称
ChangeSubscriptionState-1.0
目标类型
Microsoft-ServiceBus
说明
将服务总线命名空间和主题内的订阅实体设置为所需状态。 可以影响特定实体名称或使用“*”影响所有实体名称。 此操作有助于测试消息传递基础结构的维护或故障情况。 这是一个离散故障,因此实体不会自动返回到起始状态。
先决条件
一个服务总线命名空间,其中至少有一个订阅实体 。
Urn
urn:csci:microsoft:serviceBus:changeSubscriptionState/1.0
故障类型
离散。
参数(键、值)
desiredState
目标订阅的所需状态。 可能的状态为 Active 和 Disabled。
主题
父主题,其中包含要影响的一个或多个订阅。
subscriptions
目标命名空间内以逗号分隔的订阅名称列表。 使用“*”影响命名空间内的所有订阅。
{
"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"
}
]
}
展开表
属性
Value
功能名称
ChangeTopicState-1.0
目标类型
Microsoft-ServiceBus
说明
将服务总线命名空间内的指定主题实体设置为所需状态。 可以影响特定实体名称或使用“*”影响所有实体名称。 此操作有助于测试消息传递基础结构的维护或故障情况。 这是一个离散故障,因此实体不会自动返回到起始状态。
先决条件
一个服务总线命名空间,其中至少有一个主题实体 。
Urn
urn:csci:microsoft:serviceBus:changeTopicState/1.0
故障类型
离散。
参数(键、值)
desiredState
目标主题的所需状态。 可能的状态为 Active 和 Disabled。
topics
目标命名空间内以逗号分隔的主题名称列表。 使用“*”影响命名空间内的所有主题。
{
"name" : "branchOne" ,
"actions" : [
{
"type" : "discrete" ,
"name" : "urn:csci:microsoft:serviceBus:changeTopicState/1.0" ,
"parameters" :[
{
"key" : "desiredState" ,
"value" : "Disabled"
},
{
"key" : "topics" ,
"value" : "*"
}
],
"selectorid" : "myServiceBusSelector"
}
]
}
展开表
属性
Value
功能名称
Redeploy-1.0
目标类型
Microsoft-VirtualMachine
说明
通过关闭 VM、将 VM 移动到 Azure 基础结构中的新节点并重启来重新部署 VM。 这有助于验证工作负荷在出现维护事件时的复原能力。
先决条件
无。
Urn
urn:csci:microsoft:virtualMachine:redeploy/1.0
故障类型
离散。
参数(键、值)
无。
{
"name" : "branchOne" ,
"actions" : [
{
"type" : "discrete" ,
"name" : "urn:csci:microsoft:virtualMachine:redeploy/1.0" ,
"parameters" :[],
"selectorid" : "myResources"
}
]
}
虚拟机重新部署操作受到 10 小时间隔的限制。 如果试验因“重新部署请求过多”错误而失败,请等待 10 小时后再重试试验。
展开表
属性
Value
功能名称
Shutdown-1.0
目标类型
Microsoft-VirtualMachine
支持的 OS 类型
Windows、Linux。
说明
在故障期间关闭 VM。 在结束试验或取消试验时重启它。 仅支持 Azure 资源管理器 VM。
先决条件
无。
Urn
urn:csci:microsoft:virtualMachine:shutdown/1.0
故障类型
连续:
参数(键、值)
abruptShutdown
(可选)布尔值,指示是要正常关闭 VM 还是要突然(具有破坏性)关闭 VM。
{
"name" : "branchOne" ,
"actions" : [
{
"type" : "continuous" ,
"name" : "urn:csci:microsoft:virtualMachine:shutdown/1.0" ,
"parameters" : [
{
"key" : "abruptShutdown" ,
"value" : "false"
}
],
"duration" : "PT10M" ,
"selectorid" : "myResources"
}
]
}
此故障有两个可以使用的版本:版本 1.0 和版本 2.0。 主要区别在于,2.0 版允许按可用区域进行筛选,仅关闭指定区域内的实例。
展开表
属性
Value
功能名称
版本 1.0
目标类型
Microsoft-VirtualMachineScaleSet
支持的 OS 类型
Windows、Linux。
说明
在故障持续时间内关闭或终止虚拟机规模集实例,并在故障持续时间结束时或试验取消时重启 VM。
先决条件
无。
Urn
urn:csci:microsoft:virtualMachineScaleSet:shutdown/1.0
故障类型
连续:
参数(键、值)
abruptShutdown
(可选)布尔值,指示是要正常关闭还是要突然(具有破坏性)关闭虚拟机规模集实例。
instances
一个字符串,表示应用故障的虚拟机规模集实例 ID 的分隔数组。
{
"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"
}
]
}
展开表
属性
Value
功能名称
Shutdown-2.0
目标类型
Microsoft-VirtualMachineScaleSet
支持的 OS 类型
Windows、Linux。
说明
在故障期间关闭或终止虚拟机规模集实例。 在故障持续时间结束或取消试验时重启 VM。 支持动态目标 。
先决条件
无。
Urn
urn:csci:microsoft:virtualMachineScaleSet:shutdown/2.0
故障类型
连续:
filter
(可选)从版本 2.0 开始可用。 用于筛选选择器中的目标列表。 目前支持对区域列表进行筛选。 该筛选器仅应用于区域内的虚拟机规模集资源:如果未指定筛选器,则此故障会关闭虚拟机规模集中的所有实例。 试验面向指定区域中的所有虚拟机规模集实例。 如果筛选器未生成任何目标,则试验会失败。
参数(键、值)
abruptShutdown
(可选)布尔值,指示是要正常关闭还是要突然(具有破坏性)关闭虚拟机规模集实例。
下面的代码片段显示了如何配置动态筛选 和关闭 2.0 故障。
为动态目标配置筛选器:
{
"type" : "List" ,
"id" : "myResources" ,
"targets" : [
{
"id" : "<targetResourceId>" ,
"type" : "ChaosTarget"
}
],
"filter" : {
"type" : "Simple" ,
"parameters" : {
"zones" : [
"1"
]
}
}
}
配置关闭故障:
{
"name" : "branchOne" ,
"actions" : [
{
"name" : "urn:csci:microsoft:virtualMachineScaleSet:shutdown/2.0" ,
"type" : "continuous" ,
"selectorId" : "myResources" ,
"duration" : "PT10M" ,
"parameters" : [
{
"key" : "abruptShutdown" ,
"value" : "false"
}
]
}
]
}
目前,仅支持配置有“统一” 编排模式的虚拟机规模集。 如果虚拟机规模集使用“灵活” 编排,则可以使用 Azure 资源管理器虚拟机关闭故障来关闭选定的实例。
展开表
属性
Value
故障提供程序
空值
支持的 OS 类型
空值
说明
在其他试验操作之前、之间或之后添加时间延迟。 此操作并非故障,是用于同步试验中的操作的。 使用此操作等待某个故障导致的影响出现在服务中,或等待试验之外的活动完成。 例如,试验可能在注入另一个故障之前等待自动修复发生。
先决条件
空值
Urn
urn:csci:microsoft:chaosStudio:timedDelay/1.0
持续时间
ISO 8601 格式的延迟持续时间(例如 PT10M)。
{
"name" : "branchOne" ,
"actions" : [
{
"type" : "delay" ,
"name" : "urn:csci:microsoft:chaosStudio:timedDelay/1.0" ,
"duration" : "PT10M"
}
]
}
展开表
属性
Value
功能名称
Start-1.0
目标类型
Microsoft-AzureLoadTest
说明
根据提供的负载测试 ID(从 Azure 负载测试)启动负载测试。
先决条件
必须在 Azure 负载测试服务 中创建一个具有有效负载测试 ID 的负载测试。
Urn
urn:csci:microsoft:azureLoadTest:start/1.0
故障类型
离散。
参数(键、值)
testID
在 Azure 负载测试服务中创建的特定负载测试的 ID。
{
"name" : "branchOne" ,
"actions" : [
{
"type" : "discrete" ,
"name" : "urn:csci:microsoft:azureLoadTest:start/1.0" ,
"parameters" : [
{
"key" : "testID" ,
"value" : "0"
}
],
"selectorid" : "myResources"
}
]
}
展开表
属性
Value
功能名称
Stop-1.0
目标类型
Microsoft-AzureLoadTest
说明
根据提供的负载测试 ID(从 Azure 负载测试)停止负载测试。
先决条件
必须在 Azure 负载测试服务 中创建一个具有有效负载测试 ID 的负载测试。
Urn
urn:csci:microsoft:azureLoadTest:stop/1.0
故障类型
离散。
参数(键、值)
testID
在 Azure 负载测试服务中创建的特定负载测试的 ID。
{
"name" : "branchOne" ,
"actions" : [
{
"type" : "discrete" ,
"name" : "urn:csci:microsoft:azureLoadTest:stop/1.0" ,
"parameters" : [
{
"key" : "testID" ,
"value" : "0"
}
],
"selectorid" : "myResources"
}
]
}