Azure Chaos Studio 錯誤和動作程式庫
本文列出您可在 Chaos Studio 中使用的錯誤,依適用的資源類型組織。 若要了解每個資源類型建議的角色指派,請參閱 Azure Chaos Studio 支援的資源類型和角色指派。
代理程式型錯誤
透過安裝 Chaos Studio 代理程式,將代理程式型錯誤注射至 Azure 虛擬機器或虛擬機器擴展集執行個體。 在虛擬機器和虛擬機器擴展集資料表中,尋找下方這些資源的服務導向錯誤選項。
適用的作業系統類型 | 錯誤名稱 | 適用的案例 |
---|---|---|
Windows、Linux | CPU 壓力 | 計算容量遺失、資源壓力 |
Windows、Linux | 終止程序 | 相依性中斷 |
Windows | 暫停程序 | 相依性中斷、服務中斷 |
Windows1、Linux2 | 網路中斷連線 | 網路中斷 |
Windows1、Linux2 | 網路延遲 | 網路效能降低 |
Windows1、Linux2 | 網路封包遺失 | 網路可靠性問題 |
Windows、Linux2 | 網路隔離 | 網路中斷 |
Windows | DNS 失敗 | DNS 解析問題 |
Windows | 網路中斷連線 (透過防火牆) | 網路中斷 |
Windows、Linux | 實體記憶體壓力 | 記憶體容量遺失、資源壓力 |
Windows、Linux | 停止服務 | 服務中斷/重新啟動 |
Windows | 時間變更 | 時間同步處理問題 |
Windows | 虛擬記憶體壓力 | 記憶體容量遺失、資源壓力 |
Linux | 任意的 Stress-ng 壓力 | 一般系統壓力測試 |
Linux | Linux DiskIO 壓力 | 磁碟 I/O 效能降低 |
Windows | DiskIO 壓力 | 磁碟 I/O 效能降低 |
1 僅限 TCP/UDP 封包。 2 僅限輸出網路流量。
應用程式服務
本節適用於 Microsoft.Web/sites
資源類型。 深入了解 App Service。
錯誤名稱 | 適用的案例 |
---|---|
停止 App Service | 服務中斷 |
自動調整設定
本節適用於 Microsoft.Insights/autoscaleSettings
資源類型。 深入了解自動調整設定。
錯誤名稱 | 適用的案例 |
---|---|
停用自動調整規模 | 計算容量遺失(與虛擬機擴展集關機搭配使用時) |
Azure Kubernetes Service
本節適用於 Microsoft.ContainerService/managedClusters
資源類型。 深入了解 Azure Kubernetes Service。
錯誤名稱 | 適用的案例 |
---|---|
AKS Chaos Mesh DNS Chaos | DNS 解析問題 |
AKS Chaos Mesh HTTP Chaos | 網路中斷 |
AKS Chaos Mesh IO Chaos | 磁碟降低/壓力 |
AKS Chaos Mesh Kernel Chaos | 核心中斷 |
AKS Chaos Mesh Network Chaos | 網路中斷 |
AKS Chaos Mesh Pod Chaos | 容器中斷 |
AKS Chaos Mesh Stress Chaos | 系統壓力測試 |
AKS Chaos Mesh Time Chaos | 時間同步處理問題 |
雲端服務 (傳統)
本節適用於 Microsoft.ClassicCompute/domainNames
資源類型。 深入了解雲端服務 (傳統)。
錯誤名稱 | 適用的案例 |
---|---|
雲端服務關閉 | 計算遺失 |
Redis 的叢集快取
本節適用於 Microsoft.Cache/redis
資源類型。 深入了解 Redis 的叢集快取。
錯誤名稱 | 適用的案例 |
---|---|
Azure Cache for Redis (重新開機) | 相依性中斷 (快取) |
Cosmos DB
本節適用於 Microsoft.DocumentDB/databaseAccounts
資源類型。 深入了解 Cosmos DB。
錯誤名稱 | 適用的案例 |
---|---|
Cosmos DB 容錯移轉 | 資料庫容錯移轉 |
事件中樞
本節適用於 Microsoft.EventHub/namespaces
資源類型。 深入了解事件中樞。
錯誤名稱 | 適用的案例 |
---|---|
變更事件中樞狀態 | 傳訊基礎結構設定錯誤/中斷 |
金鑰保存庫
本節適用於 Microsoft.KeyVault/vaults
資源類型。 深入了解 Key Vault。
錯誤名稱 | 適用的案例 |
---|---|
Key Vault:拒絕存取 | 憑證拒絕 |
Key Vault:停用憑證 | 憑證中斷 |
Key Vault:遞增憑證版本 | 憑證版本遞增 |
Key Vault:更新憑證原則 | 憑證原則變更/設定錯誤 |
網路安全性群組
本節適用於 Microsoft.Network/networkSecurityGroups
資源類型。 深入了解網路安全性群組。
錯誤名稱 | 適用的案例 |
---|---|
NSG 安全性規則 | 網路中斷 (在許多 Azure 服務中發生) |
服務匯流排
本節適用於 Microsoft.ServiceBus/namespaces
資源類型。 深入了解服務匯流排。
錯誤名稱 | 適用的案例 |
---|---|
變更佇列狀態 | 傳訊基礎結構設定錯誤/中斷 |
變更訂閱狀態 | 傳訊基礎結構設定錯誤/中斷 |
變更主題狀態 | 傳訊基礎結構設定錯誤/中斷 |
虛擬機器 (服務導向)
本節適用於 Microsoft.Compute/virtualMachines
資源類型。 深入了解虛擬機器。
錯誤名稱 | 適用的案例 |
---|---|
虛擬機器重新部署 | 計算中斷、維護事件 |
虛擬機器關閉 | 計算遺失/中斷 |
虛擬機器擴展集
本節適用於 Microsoft.Compute/virtualMachineScaleSets
資源類型。 深入了解虛擬機器擴展集。
錯誤名稱 | 適用的案例 |
---|---|
虛擬機擴展集關機 | 計算遺失/中斷 |
虛擬機擴展集關機 (2.0) | 計算遺失/中斷 (依可用性區域) |
協調流程動作
這些動作是建構有效實驗的基本要素。 將這些動作與其他錯誤搭配使用,例如在平行關閉區域中的計算執行個體時執行負載測試。
動作類別 | 錯誤名稱 |
---|---|
載入 | 啟動負載測試 (Azure 負載測試) |
載入 | 停止負載測試 (Azure 負載測試) |
時間延遲 | Delay |
詳細資料:代理程式型錯誤
網路中斷連線
屬性 | 值 |
---|---|
功能名稱 | 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 | 要將此錯誤套用到虛擬機器擴展集時,所需的執行個體識別碼。 針對處於統一協調流程模式中的虛擬機器擴展集,此屬性為必要。 深入了解執行個體識別碼。 |
參數 destinationFilters 和 inboundDestinationFilters 使用下列封包篩選陣列。
屬性 | 值 |
---|---|
address | 指出 IP 範圍起始的 IP 位址。 |
subnetMask | IP 位址範圍的子網路遮罩。 |
portLow | (選用) 連接埠範圍開頭的連接埠號碼。 |
portHigh | (選用) 連接埠範圍結尾的連接埠號碼。 |
範例 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"
}
]
}
限制
- 代理程式型網路錯誤目前僅支援 IPv4 位址。
- 網路中斷連線錯誤只會影響新的連線。 現有的使用中連線會繼續保持連線。 您可以重新啟動服務或程序,強制連線中斷。
- 在 Windows 上執行時,網路中斷連線錯誤目前僅適用於 TCP 或 UDP 封包。
- 在 Linux 上執行時,此錯誤只會影響輸出流量,而不會影響輸入流量。 錯誤可能同時影響 Windows 環境的輸入和輸出流量 (透過
inboundDestinationFilters
和destinationFilters
參數)。
網路中斷連線 (透過防火牆)
屬性 | 值 |
---|---|
功能名稱 | 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 | 要將此錯誤套用到虛擬機器擴展集時,所需的執行個體識別碼。 針對處於統一協調流程模式中的虛擬機器擴展集,此屬性為必要。 深入了解執行個體識別碼。 |
範例 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"
}
]
}
限制
- 代理程式型網路錯誤目前僅支援 IPv4 位址。
- 此錯誤目前只會影響新的連線。 現有的作用中連線不會受到影響。 您可以重新啟動服務或程序,強制連線中斷。
- 此錯誤目前只會影響 輸出 流量。
網路延遲
屬性 | 值 |
---|---|
功能名稱 | 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 | 要將此錯誤套用到虛擬機器擴展集時,所需的執行個體識別碼。 針對處於統一協調流程模式中的虛擬機器擴展集,此屬性為必要。 深入了解執行個體識別碼。 |
參數 destinationFilters 和 inboundDestinationFilters 使用下列封包篩選陣列。
屬性 | 值 |
---|---|
address | 指出 IP 範圍起始的 IP 位址。 |
subnetMask | IP 位址範圍的子網路遮罩。 |
portLow | (選用) 連接埠範圍開頭的連接埠號碼。 |
portHigh | (選用) 連接埠範圍結尾的連接埠號碼。 |
範例 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"
}
]
}
限制
- 代理程式型網路錯誤目前僅支援 IPv4 位址。
- 在 Linux 上執行時,網路延遲錯誤只會影響輸出流量,而不會影響輸入流量。 錯誤可能同時影響 Windows 環境的輸入和輸出流量 (透過
inboundDestinationFilters
和destinationFilters
參數)。 - 在 Windows 上執行時,網路延遲錯誤目前僅適用於 TCP 或 UDP 封包。
- 此錯誤目前只會影響新的連線。 現有的作用中連線不會受到影響。 您可以重新啟動服務或程序,強制連線中斷。
網路封包遺失
屬性 | 值 |
---|---|
功能名稱 | 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 | 要將此錯誤套用到虛擬機器擴展集時,所需的執行個體識別碼。 針對處於統一協調流程模式中的虛擬機器擴展集,此屬性為必要。 深入了解執行個體識別碼。 |
destinationFilters | 含分隔符號的 JSON 陣列 (參數如下),定義了錯誤插入的目標輸出封包。 最多三個。 |
address | 指出 IP 範圍起始的 IP 位址。 |
subnetMask | IP 位址範圍的子網路遮罩。 |
portLow | (選用) 連接埠範圍開頭的連接埠號碼。 |
portHigh | (選用) 連接埠範圍結尾的連接埠號碼。 |
範例 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"
}
]
}
限制
- 代理程式型網路錯誤目前僅支援 IPv4 位址。
- 在 Windows 上執行時,網路封包遺失錯誤目前僅適用於 TCP 或 UDP 封包。
- 在 Linux 上執行時,此錯誤只會影響輸出流量,而不會影響輸入流量。 錯誤可能同時影響 Windows 環境的輸入和輸出流量 (透過
inboundDestinationFilters
和destinationFilters
參數)。 - 此錯誤目前只會影響新的連線。 現有的作用中連線不會受到影響。 您可以重新啟動服務或程序,強制連線中斷。
網路隔離
屬性 | 值 |
---|---|
功能名稱 | 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 | 要將此錯誤套用到虛擬機器擴展集時,所需的執行個體識別碼。 針對處於統一協調流程模式中的虛擬機器擴展集,此屬性為必要,否則為選擇性。 深入了解執行個體識別碼。 |
範例 JSON
{
"name": "branchOne",
"actions": [
{
"type": "continuous",
"name": "urn:csci:microsoft:agent:networkIsolation/1.0",
"parameters": [],
"duration": "PT10M",
"selectorid": "myResources"
}
]
}
限制
- 由於代理程式相依於網路流量, 因此無法取消 此動作,而且會執行至指定的持續時間。 請謹慎使用。
- 此錯誤目前只會影響新的連線。 現有的作用中連線不會受到影響。 您可以重新啟動服務或程序,強制連線中斷。
- 在 Linux 上執行時,此錯誤只會影響輸出流量,而不會影響輸入流量。 錯誤可能會影響 Windows 環境上的輸入和輸出流量。
DNS 失敗
屬性 | 值 |
---|---|
功能名稱 | DnsFailure-1.0 |
目標類型 | Microsoft-Agent |
支援的 OS 類型 | Windows |
描述 | 以指定的錯誤碼取代 DNS 查閱要求回應。 被取代的 DNS 查閱要求必須:
|
必要條件 | 無。 |
Urn | urn:csci:microsoft:agent:dnsFailure/1.0 |
錯誤類型 | 連續。 |
參數 (索引鍵、值) | |
主機 | 主機名稱的分隔 JSON 陣列,以失敗的 DNS 查閱要求。 這個屬性可接受萬用字元 ( * ),但只適用於位址中的第一個子網域,而且只適用於指定它們的子網域。 例如:
|
dnsFailureReturnCode | 要傳回給用戶端以查閱失敗的 DNS 錯誤碼 (FormErr、ServFail、NXDomain、NotImp、Refused、XDomain、YXRRSet、NXRRSet、NotAuth、NotZone)。 如需 DNS 傳回碼的詳細資訊,請參閱 IANA 網站 (英文)。 |
virtualMachineScaleSetInstances | 要將此錯誤套用到虛擬機器擴展集時,所需的執行個體識別碼。 針對處於統一協調流程模式中的虛擬機器擴展集,此屬性為必要。 深入了解執行個體識別碼。 |
範例 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"
}
]
}
限制
- DNS 失敗錯誤需要有 Windows 2019 RS5 或更新版本。
- 若在錯誤中定義了主機名稱,在錯誤期間會忽略該主機的 DNS 快取。
CPU 壓力
屬性 | 值 |
---|---|
功能名稱 | 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 之間的整數,指出 CPU 使用量百分比將多少 CPU 壓力 \ 套用至 VM |
virtualMachineScaleSetInstances | 要將此錯誤套用到虛擬機器擴展集時,所需的執行個體識別碼。 針對處於統一協調流程模式中的虛擬機器擴展集,此屬性為必要。 深入了解執行個體識別碼。 |
範例 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"
}
]
}
限制
Linux 上的已知問題:
- 如果
AzureChaosAgent
意外終止,壓力效果可能無法正確終止。
實體記憶體壓力
屬性 | 值 |
---|---|
功能名稱 | 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 | 要將此錯誤套用到虛擬機器擴展集時,所需的執行個體識別碼。 針對處於統一協調流程模式中的虛擬機器擴展集,此屬性為必要。 深入了解執行個體識別碼。 |
範例 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"
}
]
}
限制
目前,當其他應用程式增加記憶體壓力時,Windows 代理程式不會減少記憶體壓力。 如果整體記憶體使用量超過 100%,則 Windows 代理程式可能會損毀。
虛擬記憶體壓力
屬性 | 值 |
---|---|
功能名稱 | VirtualMemoryPressure-1.0 |
目標類型 | Microsoft-Agent |
支援的 OS 類型 | Windows |
描述 | 發生錯誤動作期間,在插入此錯誤的 VM 上將虛擬記憶體壓力增加到指定的值。 人工的虛擬記憶體壓力會在持續時間結束時或實驗取消時移除。 |
必要條件 | 無。 |
Urn | urn:csci:microsoft:agent:virtualMemoryPressure/1.0 |
錯誤類型 | 連續。 |
參數 (索引鍵、值) | |
pressureLevel | 介於 1 到 95 之間的整數,表示 VM 套用多少物理記憶體壓力 。 |
virtualMachineScaleSetInstances | 要將此錯誤套用到虛擬機器擴展集時,所需的執行個體識別碼。 針對處於統一協調流程模式中的虛擬機器擴展集,此屬性為必要。 深入了解執行個體識別碼。 |
範例 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"
}
]
}
磁碟 IO 壓力
屬性 | 值 |
---|---|
功能名稱 | DiskIOPressure-1.1 |
目標類型 | Microsoft-Agent |
支援的 OS 類型 | Windows |
描述 | 使用 diskpd 公用程式 (英文) 將磁碟壓力新增至虛擬機器。 根據預設,系統會將壓力新增至主要磁碟,或以 targetTempDirectory 參數指定的磁碟上。 這個錯誤有五種不同的執行模式。 人工的磁碟壓力會在持續時間結束時或實驗取消時移除。 |
必要條件 | 無。 |
Urn | urn:csci:microsoft:agent:diskIOPressure/1.1 |
錯誤類型 | 連續。 |
參數 (索引鍵、值) | |
pressureMode | 要新增到 VM 主要儲存體的磁碟壓力預設模式。 必須是下表中的 PressureModes 之一。 |
targetTempDirectory | (選用) 要用於套用磁碟壓力的目錄。 例如: D:/Temp 。 如果未包含參數,則壓力會新增至主要磁碟。 |
virtualMachineScaleSetInstances | 要將此錯誤套用到虛擬機器擴展集時,所需的執行個體識別碼。 針對處於統一協調流程模式中的虛擬機器擴展集,此屬性為必要。 深入了解執行個體識別碼。 |
壓力模式
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 |
範例 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"
}
]
}
Linux 磁碟 IO 壓力
屬性 | 值 |
---|---|
功能名稱 | 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)、KB (k)、MB (m) 或 GB (g) 等單位 (例如,4m 代表 4 MB,256g 代表 256 GB)。 |
blockSize | 要用於磁碟 I/O 作業的區塊大小,大於 1 位元組且小於 4 百萬位元組 (最大值為 4095k )。 整數加上位元組、KB 或 MB 等單位 (例如,512k 代表 512 KB)。 |
targetTempDirectory | (選用) 要用於套用磁碟壓力的目錄。 例如: /tmp/ 。 如果未包含參數,則壓力會新增至主要磁碟。 |
virtualMachineScaleSetInstances | 要將此錯誤套用到虛擬機器擴展集時,所需的執行個體識別碼。 針對處於統一協調流程模式中的虛擬機器擴展集,此屬性為必要。 深入了解執行個體識別碼。 |
範例 JSON
在具備進階 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"
}
]
}
停止服務
屬性 | 值 |
---|---|
功能名稱 | StopService-1.0 |
目標類型 | Microsoft-Agent |
支援的 OS 類型 | Windows、Linux |
描述 | 在錯誤期間停止 Windows 服務或 Linux 系統服務。 在持續時間結束或取消時重新啟動。 |
必要條件 | 無。 |
Urn | urn:csci:microsoft:agent:stopService/1.0 |
錯誤類型 | 連續。 |
參數 (索引鍵、值) | |
serviceName | 您要停止的 Windows 服務或 Linux 系統服務名稱。 |
virtualMachineScaleSetInstances | 要將此錯誤套用到虛擬機器擴展集時,所需的執行個體識別碼。 針對處於統一協調流程模式中的虛擬機器擴展集,此屬性為必要。 深入了解執行個體識別碼。 |
範例 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"
}
]
}
限制
- Windows:不支援服務的顯示名稱。 在命令提示字元中使用
sc.exe query
,以探索服務名稱。 - Linux:不支援 systemd 以外的其他服務類型,例如 sysvinit。
終止程序
屬性 | 值 |
---|---|
功能名稱 | KillProcess-1.0 |
目標類型 | Microsoft-Agent |
支援的 OS 類型 | Windows、Linux |
描述 | 終止符合錯誤參數中傳送之進程名稱的所有 執行 中實例。 在錯誤動作所設定的持續時間內,根據指定的終止間隔值,重複終止程序。 此錯誤是破壞性錯誤,如果為程序設定了自動復原,則系統管理員必須手動復原該程序。 請注意,這個錯誤會在空白名稱進程、未指定間隔使用時,或找不到我們想要終止的目標進程名稱時發生錯誤。 |
必要條件 | 無。 |
Urn | urn:csci:microsoft:agent:killProcess/1.0 |
錯誤類型 | 連續。 |
參數 (索引鍵、值) | |
processName | 要持續終止的程序名稱 (不含.exe)。 當錯誤開始執行時,不需要執行程序。 |
killIntervalInMilliseconds | 錯誤在連續嘗試終止之間等候的時間 (以毫秒為單位)。 |
virtualMachineScaleSetInstances | 要將此錯誤套用到虛擬機器擴展集時,所需的執行個體識別碼。 針對處於統一協調流程模式中的虛擬機器擴展集,此屬性為必要。 深入了解執行個體識別碼。 |
範例 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"
}
]
}
暫停程序
屬性 | 值 |
---|---|
功能名稱 | PauseProcess-1.0 |
目標類型 | Microsoft-Agent |
支援的 OS 類型 | Windows |
描述 | 在指定持續時間,暫停 (暫止) 指定程序。 如果有多個相同名稱的程序,此錯誤會暫止所有程序。 在錯誤的持續時間內,程序會在指定的間隔重複暫停。 在持續時間結束或取消實驗時,程序將繼續。 |
必要條件 | 無。 |
Urn | urn:csci:microsoft:agent:pauseProcess/1.0 |
錯誤類型 | 連續。 |
參數 (索引鍵、值) | |
processNames | 定義要暫停程序的程序名稱分隔 JSON 陣列。 最大值為 4。 程序名稱可選擇性包含「.exe」延伸模組。 |
pauseIntervalInMilliseconds | 錯誤在連續嘗試暫停之間等候的時間 (以毫秒為單位)。 |
virtualMachineScaleSetInstances | 要將此錯誤套用到虛擬機器擴展集時,所需的執行個體識別碼。 針對處於統一協調流程模式中的虛擬機器擴展集,此屬性為必要。 深入了解執行個體識別碼。 |
範例 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"
}
]
}
限制
processNames 參數中目前最多可以列出 4 個程序名稱。
時間變更
屬性 | 值 |
---|---|
功能名稱 | TimeChange-1.0 |
目標類型 | Microsoft-Agent |
支援的 OS 類型 | Windows |
描述 | 變更虛擬系統的系統時間,並在實驗結束或取消時重設時間。 |
必要條件 | 無。 |
Urn | urn:csci:microsoft:agent:timeChange/1.0 |
錯誤類型 | 連續。 |
參數 (索引鍵、值) | |
dateTime | DateTime 字串使用的是 ISO8601 格式。 如果遺漏了 YYYY-MM-DD 值,則會預設為實驗執行時的日期。 如果遺漏了 Thh:mm:ss 值,預設值會是 12:00:00 AM。 如果提供了 2 位數的年份 (YY ),系統根據目前的世紀將其轉換成 4 位數年份 (YYYY )。 如果遺漏時區 <Z> ,則預設時差為當地時區。 <Z> 一律必須包含正號或負號。 |
virtualMachineScaleSetInstances | 要將此錯誤套用到虛擬機器擴展集時,所需的執行個體識別碼。 針對處於統一協調流程模式中的虛擬機器擴展集,此屬性為必要。 深入了解執行個體識別碼。 |
範例 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"
}
]
}
任意的 Stress-ng 壓力
屬性 | 值 |
---|---|
功能名稱 | 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 中定義。 |
範例 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"
}
]
}
詳細資料:服務導向錯誤
停止 App Service
屬性 | 值 |
---|---|
功能名稱 | Stop-1.0 |
目標類型 | Microsoft-AppService |
描述 | 停止目標 App Service 應用程式,然後在錯誤持續時間結束時重新啟動。 此動作適用於「Microsoft.Web/sites」類型的資源,包括 App Service、API Apps、Mobile Apps 和 Azure Functions。 |
必要條件 | 無。 |
Urn | urn:csci:microsoft:appService:stop/1.0 |
錯誤類型 | 連續。 |
參數 (索引鍵、值) | 無。 |
範例 JSON
{
"name": "branchOne",
"actions": [
{
"type": "continuous",
"name": "urn:csci:microsoft:appService:stop/1.0",
"duration": "PT10M",
"parameters":[],
"selectorid": "myResources"
}
]
}
停用自動調整
屬性 | 值 |
---|---|
功能名稱 | DisableAutoscale |
目標類型 | Microsoft-AutoscaleSettings |
描述 | 停用自動調整服務 (部分機器翻譯)。 停用自動調整時,虛擬機器擴展集、Web 應用程式、服務匯流排等 (部分機器翻譯) 資源不會根據應用程式的負載自動新增或移除。 |
必要條件 | 在資源上啟用的 autoScalesetting 資源必須上線至 Chaos Studio。 |
Urn | urn:csci:microsoft:autoscalesettings:disableAutoscale/1.0 |
錯誤類型 | 連續。 |
參數 (索引鍵、值) | |
enableOnComplete | 布林值。 設定是否在動作完成後重新啟用自動調整。 預設值為 true 。 |
範例 JSON
{
"name": "BranchOne",
"actions": [
{
"type": "continuous",
"name": "urn:csci:microsoft:autoscaleSetting:disableAutoscale/1.0",
"parameters": [
{
"key": "enableOnComplete",
"value": "true"
}
],
"duration": "PT2M",
"selectorId": "Selector1",
}
]
}
AKS Chaos Mesh Network Chaos
屬性 | 值 |
---|---|
功能名稱 | NetworkChaos-2.2 |
目標類型 | Microsoft-AzureKubernetesServiceChaosMesh |
支援的節點集區 OS 類型 | Linux |
描述 | 造成透過 Chaos Mesh 所提供的網路錯誤,可針對您的 Azure Kubernetes Service (AKS) 叢集執行。 適用於重新建立因網路中斷、延遲、重複、遺失和損毀而造成的 AKS 事件。 |
必要條件 | AKS 叢集必須先部署 Chaos Mesh。 |
Urn | urn:csci:microsoft:azureKubernetesServiceChaosMesh:networkChaos/2.2 |
參數 (索引鍵、值) | |
jsonSpec | 使用 NetworkChaos 種類 (英文) 之 JSON 格式的 Chaos Mesh 規格。 您可以使用 YAML 對 JSON 轉換程式 (例如 Convert YAML To JSON),將混亂 Chaos Mesh YAML 轉換為 JSON 並加以縮製。 在 JSON 中使用單引號,或使用反斜線字元逸出引號。 只包含 jsonSpec 屬性下的 YAML。 請勿包含中繼資料和種類等資訊。 在 jsonSpec 中指定持續時間並非必須的,但如可用,則也會使用。 |
範例 JSON
{
"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"
}
]
}
AKS Chaos Mesh Pod Chaos
屬性 | 值 |
---|---|
功能名稱 | PodChaos-2.2 |
目標類型 | Microsoft-AzureKubernetesServiceChaosMesh |
支援的節點集區 OS 類型 | Linux |
描述 | 造成透過 Chaos Mesh 所提供的 Pod 錯誤,可針對您的 AKS 叢集執行。 適用於重新建立因 Pod 失敗或容器問題而造成的 AKS 事件。 |
必要條件 | AKS 叢集必須先部署 Chaos Mesh。 |
Urn | urn:csci:microsoft:azureKubernetesServiceChaosMesh:podChaos/2.2 |
參數 (索引鍵、值) | |
jsonSpec | 使用 PodChaos 種類 (英文) 之 JSON 格式的 Chaos Mesh 規格。 您可以使用 YAML 對 JSON 轉換程式 (例如 Convert YAML To JSON),將混亂 Chaos Mesh YAML 轉換為 JSON 並加以縮製。 在 JSON 中使用單引號,或使用反斜線字元逸出引號。 只包含 jsonSpec 屬性下的 YAML。 請勿包含中繼資料和種類等資訊。 在 jsonSpec 中指定持續時間並非必須的,但如可用,則也會使用。 |
範例 JSON
{
"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"
}
]
}
AKS Chaos Mesh Stress Chaos
屬性 | 值 |
---|---|
功能名稱 | StressChaos-2.2 |
目標類型 | Microsoft-AzureKubernetesServiceChaosMesh |
支援的節點集區 OS 類型 | Linux |
描述 | 造成透過 Chaos Mesh 所提供的壓力錯誤,可針對您的 AKS 叢集執行。 適用於重新建立因 Pod 集合的壓力過高 (例如因 CPU 或記憶體耗用量偏高) 而造成的 AKS 事件。 |
必要條件 | AKS 叢集必須先部署 Chaos Mesh。 |
Urn | urn:csci:microsoft:azureKubernetesServiceChaosMesh:stressChaos/2.2 |
參數 (索引鍵、值) | |
jsonSpec | 使用 StressChaos 種類 (英文) 之 JSON 格式的 Chaos Mesh 規格。 您可以使用 YAML 對 JSON 轉換程式 (例如 Convert YAML To JSON),將混亂 Chaos Mesh YAML 轉換為 JSON 並加以縮製。 在 JSON 中使用單引號,或使用反斜線字元逸出引號。 只包含 jsonSpec 屬性下的 YAML。 請勿包含中繼資料和種類等資訊。 在 jsonSpec 中指定持續時間並非必須的,但如可用,則也會使用。 |
範例 JSON
{
"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"
}
]
}
AKS Chaos Mesh IO Chaos
屬性 | 值 |
---|---|
功能名稱 | IOChaos-2.2 |
目標類型 | Microsoft-AzureKubernetesServiceChaosMesh |
支援的節點集區 OS 類型 | Linux |
描述 | 造成透過 Chaos Mesh 所提供的 IO 錯誤,可針對您的 AKS 叢集執行。 適用於重新建立在使用 open 、read 和 write 等 IO 系統呼叫時,因發生 IO 延遲和讀取/寫入失敗而造成的 AKS 事件。 |
必要條件 | AKS 叢集必須先部署 Chaos Mesh。 |
Urn | urn:csci:microsoft:azureKubernetesServiceChaosMesh:IOChaos/2.2 |
參數 (索引鍵、值) | |
jsonSpec | 使用 IOChaos 種類 (英文) 之 JSON 格式的 Chaos Mesh 規格。 您可以使用 YAML 對 JSON 轉換程式 (例如 Convert YAML To JSON),將混亂 Chaos Mesh YAML 轉換為 JSON 並加以縮製。 在 JSON 中使用單引號,或使用反斜線字元逸出引號。 只包含 jsonSpec 屬性下的 YAML。 請勿包含中繼資料和種類等資訊。 在 jsonSpec 中指定持續時間並非必須的,但如可用,則也會使用。 |
範例 JSON
{
"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"
}
]
}
AKS Chaos Mesh Time Chaos
屬性 | 值 |
---|---|
功能名稱 | TimeChaos-2.2 |
目標類型 | Microsoft-AzureKubernetesServiceChaosMesh |
支援的節點集區 OS 類型 | Linux |
描述 | 在使用 Chaos Mesh 的 AKS 叢集上造成系統時鐘變更。 適用於重新建立因分散式系統無法同步、閏年/閏秒邏輯遺漏/不正確等等而造成的 AKS 事件。 |
必要條件 | AKS 叢集必須先部署 Chaos Mesh。 |
Urn | urn:csci:microsoft:azureKubernetesServiceChaosMesh:timeChaos/2.2 |
參數 (索引鍵、值) | |
jsonSpec | 使用 TimeChaos 種類 (英文) 之 JSON 格式的 Chaos Mesh 規格。 您可以使用 YAML 對 JSON 轉換程式 (例如 Convert YAML To JSON),將混亂 Chaos Mesh YAML 轉換為 JSON 並加以縮製。 在 JSON 中使用單引號,或使用反斜線字元逸出引號。 只包含 jsonSpec 屬性下的 YAML。 請勿包含中繼資料和種類等資訊。 在 jsonSpec 中指定持續時間並非必須的,但如可用,則也會使用。 |
範例 JSON
{
"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"
}
]
}
AKS Chaos Mesh Kernel Chaos
屬性 | 值 |
---|---|
功能名稱 | KernelChaos-2.2 |
目標類型 | Microsoft-AzureKubernetesServiceChaosMesh |
支援的節點集區 OS 類型 | Linux |
描述 | 造成透過 Chaos Mesh 所提供的核心錯誤,可針對您的 AKS 叢集執行。 適用於重新建立因 Linux 核心層級錯誤 (例如掛接失敗或記憶體未配置) 而造成的 AKS 事件。 |
必要條件 | AKS 叢集必須先部署 Chaos Mesh。 |
Urn | urn:csci:microsoft:azureKubernetesServiceChaosMesh:kernelChaos/2.2 |
參數 (索引鍵、值) | |
jsonSpec | 使用 KernelChaos 種類 (英文) 之 JSON 格式的 Chaos Mesh 規格。 您可以使用 YAML 對 JSON 轉換程式 (例如 Convert YAML To JSON),將混亂 Chaos Mesh YAML 轉換為 JSON 並加以縮製。 在 JSON 中使用單引號,或使用反斜線字元逸出引號。 只包含 jsonSpec 屬性下的 YAML。 請勿包含中繼資料和種類等資訊。 在 jsonSpec 中指定持續時間並非必須的,但如可用,則也會使用。 |
範例 JSON
{
"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"
}
]
}
AKS Chaos Mesh HTTP Chaos
屬性 | 值 |
---|---|
功能名稱 | HTTPChaos-2.2 |
目標類型 | Microsoft-AzureKubernetesServiceChaosMesh |
支援的節點集區 OS 類型 | Linux |
描述 | 造成透過 Chaos Mesh 所提供的 HTTP 錯誤,可針對您的 AKS 叢集執行。 適用於重新建立因 HTTP 要求和回應處理失敗 (例如回應延遲或不正確) 而造成的事件。 |
必要條件 | AKS 叢集必須先部署 Chaos Mesh。 |
Urn | urn:csci:microsoft:azureKubernetesServiceChaosMesh:httpChaos/2.2 |
參數 (索引鍵、值) | |
jsonSpec | 使用 HTTPChaos 種類 (英文) 之 JSON 格式的 Chaos Mesh 規格。 您可以使用 YAML 對 JSON 轉換程式 (例如 Convert YAML To JSON),將混亂 Chaos Mesh YAML 轉換為 JSON 並加以縮製。 在 JSON 中使用單引號,或使用反斜線字元逸出引號。 只包含 jsonSpec 屬性下的 YAML。 請勿包含中繼資料和種類等資訊。 在 jsonSpec 中指定持續時間並非必須的,但如可用,則也會使用。 |
範例 JSON
{
"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"
}
]
}
AKS Chaos Mesh DNS Chaos
屬性 | 值 |
---|---|
功能名稱 | DNSChaos-2.2 |
目標類型 | Microsoft-AzureKubernetesServiceChaosMesh |
支援的節點集區 OS 類型 | Linux |
描述 | 造成透過 Chaos Mesh 所提供的 DNS 錯誤,可針對您的 AKS 叢集執行。 有助於重新建立因 DNS 錯誤導致的事件。 |
必要條件 | 必須在該 AKS 叢集上部署 Chaos Mesh,且必須安裝 DNS 服務。 |
Urn | urn:csci:microsoft:azureKubernetesServiceChaosMesh:dnsChaos/2.2 |
參數 (索引鍵、值) | |
jsonSpec | 使用 DNSChaos 種類 (英文) 之 JSON 格式的 Chaos Mesh 規格。 您可以使用 YAML 對 JSON 轉換程式 (例如 Convert YAML To JSON),將混亂 Chaos Mesh YAML 轉換為 JSON 並加以縮製。 在 JSON 中使用單引號,或使用反斜線字元逸出引號。 只包含 jsonSpec 屬性下的 YAML。 請勿包含中繼資料和種類等資訊。 在 jsonSpec 中指定持續時間並非必須的,但如可用,則也會使用。 |
範例 JSON
{
"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"
}
]
}
雲端服務 (傳統) 關機
屬性 | 值 |
---|---|
功能名稱 | Shutdown-1.0 |
目標類型 | Microsoft-DomainName |
描述 | 在錯誤期間停止部署。 在持續時間結束時或實驗取消時重新開始部署。 |
必要條件 | 無。 |
Urn | urn:csci:microsoft:domainName:shutdown/1.0 |
錯誤類型 | 連續。 |
參數 | 無。 |
範例 JSON
{
"name": "branchOne",
"actions": [
{
"type": "continuous",
"name": "urn:csci:microsoft:domainName:shutdown/1.0",
"parameters": [],
"duration": "PT10M",
"selectorid": "myResources"
}
]
}
Azure Cache for Redis (重新開機)
屬性 | 值 |
---|---|
功能名稱 | Reboot-1.0 |
目標類型 | Microsoft-AzureClusteredCacheForRedis |
描述 | 會導致目標上發生強制重新開機作業,以模擬短暫的中斷。 |
必要條件 | N/A |
Urn | urn:csci:microsoft:azureClusteredCacheForRedis:reboot/1.0 |
錯誤類型 | 離散。 |
參數 (索引鍵、值) | |
rebootType | 要執行重新開機動作的節點類型,可指定為 PrimaryNode、SecondaryNode 或 AllNodes。 |
shardId | 要重新開機的分區識別碼。 僅適用於進階層快取。 |
範例 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"
}
]
}
限制
- 重新開機錯誤會導致強制重新開機,更能模擬中斷事件,但這也表示可能發生資料遺失。
- 重新開機錯誤屬於離散類型的錯誤。 與連續型錯誤不同,是一次性動作,沒有持續時間。
Cosmos DB 容錯移轉
屬性 | 值 |
---|---|
功能名稱 | Failover-1.0 |
目標類型 | Microsoft-CosmosDB |
描述 | 造成具有單一寫入區域的 Azure Cosmos DB 帳戶容錯移轉到指定的讀取區域,以模擬寫入區域中斷。 |
必要條件 | 無。 |
Urn | urn:csci:microsoft:cosmosDB:failover/1.0 |
錯誤類型 | 連續。 |
參數 (索引鍵、值) | |
readRegion | 系統應在容錯移轉期間升級為寫入區域的讀取區域,例如:East US 2 。 |
範例 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"
}
]
}
變更事件中樞狀態
屬性 | 值 |
---|---|
功能名稱 | ChangeEventHubState-1.0 |
目標類型 | Microsoft-EventHub |
描述 | 將個別事件中樞設定為 Azure 事件中樞命名空間內所需的狀態。 您可以影響特定的事件中樞名稱,或使用 “*”影響命名空間內的所有名稱。 此動作有助於測試傳訊基礎結構的維修或失敗案例。 這是離散的錯誤,因此不會自動將實體返回至開始狀態。 |
必要條件 | 至少具有一個事件中樞實體 (部分機器翻譯) 的 Azure 事件中樞命名空間。 |
Urn | urn:csci:microsoft:eventHub:changeEventHubState/1.0 |
錯誤類型 | 離散。 |
參數 (索引鍵、值) | |
desiredState | 目標事件中樞的預期狀態。 可能的狀態為 Active、Disabled 和 SendDisabled。 |
eventHubs | 目標命名空間內以逗號分隔的事件中樞名稱清單。 使用 "*" 影響命名空間內的所有實體。 |
範例 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:拒絕存取
屬性 | 值 |
---|---|
功能名稱 | DenyAccess-1.0 |
目標類型 | Microsoft-KeyVault |
描述 | 藉由暫時修改金鑰保存庫網路規則,封鎖金鑰保存庫的所有網路存取。 此動作可防止相依於金鑰保存庫的應用程式存取祕密、金鑰和/或憑證。 如果金鑰保存庫允許所有網路的存取,則此設定會變更為只允許從選取的網路存取。 錯誤開始時,允許的清單中沒有虛擬網路。 在錯誤持續時間結束時,允許所有網路存取。 如果金鑰保存庫設為只允許從選取的網路存取,在錯誤開始時,允許清單上的任何虛擬網路都會移除。 它們會在錯誤持續時間結束時還原。 |
必要條件 | 目標金鑰保存庫不能有任何防火牆規則,而且不得設定為允許 Azure 服務略過防火牆。 如果目標金鑰保存庫設定為只允許從選取的網路存取,則必須至少有一項虛擬網路規則。 金鑰保存庫不得處於復原模式。 |
Urn | urn:csci:microsoft:keyVault:denyAccess/1.0 |
錯誤類型 | 連續。 |
參數 (索引鍵、值) | 無。 |
範例 JSON
{
"name": "branchOne",
"actions": [
{
"type": "continuous",
"name": "urn:csci:microsoft:keyvault:denyAccess/1.0",
"parameters": [],
"duration": "PT10M",
"selectorid": "myResources"
}
]
}
Key Vault:停用憑證
屬性 | 值 |
---|---|
功能名稱 | DisableCertificate-1.0 |
目標類型 | Microsoft-KeyVault |
描述 | 透過使用憑證屬性,錯誤可在特定持續期間內停用憑證 (由使用者提供)。 其會在此錯誤持續時間之後啟用憑證。 |
必要條件 | 無。 |
Urn | urn:csci:microsoft:keyvault:disableCertificate/1.0 |
錯誤類型 | 連續。 |
參數 (索引鍵、值) | |
certificateName | 執行錯誤之 Azure Key Vault 憑證的名稱。 |
version | 應停用的憑證版本。 如果未指定,則會停用最新版本。 |
範例 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:遞增憑證版本
屬性 | 值 |
---|---|
功能名稱 | IncrementCertificateVersion-1.0 |
目標類型 | Microsoft-KeyVault |
描述 | 使用 Key Vault 憑證用戶端程式庫產生新的憑證版本和指紋。 目前的工作憑證已升級至此版本。 憑證版本不會在錯誤持續時間之後還原。 |
必要條件 | 無。 |
Urn | urn:csci:microsoft:keyvault:incrementCertificateVersion/1.0 |
錯誤類型 | 離散。 |
參數 (索引鍵、值) | |
certificateName | 執行錯誤之 Azure Key Vault 憑證的名稱。 |
範例 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:更新憑證原則
屬性 | 值 |
---|---|
功能名稱 | UpdateCertificatePolicy-1.0 |
目標類型 | Microsoft-KeyVault |
描述 | 憑證原則 (例如憑證有效期間、憑證類型、金鑰大小或金鑰類型) 會根據使用者輸入進行更新,並在錯誤持續時間後還原。 |
必要條件 | 無。 |
Urn | urn:csci:microsoft:keyvault:updateCertificatePolicy/1.0 |
錯誤類型 | 連續。 |
參數 (索引鍵、值) | |
certificateName | 執行錯誤之 Azure Key Vault 憑證的名稱。 |
version | 應該更新的憑證版本。 如果未指定,則會更新最新版本。 |
已啟用 | 布林值。 值,指出是否已啟用新的憑證版本。 |
validityInMonths | 憑證的有效期間 (以月份為單位)。 |
certificateTransparency | 指出憑證是否應該在建立時發佈至憑證透明度清單。 |
certificateType | 憑證類型。 |
contentType | 憑證的內容類型。 例如,當憑證包含原始 PFX 位元組或 Pem 包含 ASCII PEM 編碼位元組時,則為 Pkcs12。 Pkcs12 是假設的預設值。 |
keySize | RSA 金鑰的大小:2048、3072 或 4096。 |
可匯出 | 布林值。 值,指出憑證金鑰是否可從保存庫或安全憑證存放區匯出。 |
reuseKey | 布林值。 值,指出憑證輪替時是否應該重複使用憑證金鑰。 |
keyType | 發行新憑證時所產生的備份金鑰類型,例如 RSA 或 EC。 |
範例 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"
}
]
}
NSG 安全性規則
屬性 | 值 |
---|---|
功能名稱 | SecurityRule-1.0、SecurityRule-1.1 |
目標類型 | Microsoft-NetworkSecurityGroup |
描述 | 在現有的 Azure 網路安全性群組 (NSG) 或一組 Azure NSG 中啟用操作或規則建立,假設規則定義可適用於多個安全性群組。 適用於:
|
必要條件 | 無。 |
Urn | urn:csci:microsoft:networkSecurityGroup:securityRule/1.0、urn:csci:microsoft:networkSecurityGroup:securityRule/1.1 |
錯誤類型 | 連續。 |
參數 (索引鍵、值) | |
NAME | 建立之安全性規則唯一的名稱。 如果 NSG 上已有同名的另一項規則,則錯誤會失敗。 必須以字母或數字開頭。 必須以字母、數字或底線結尾。 只能包含字母、數字、底線、句點或連字號。 |
protocol | 安全性規則的通訊協定。 必須為 Any、TCP、UDP 或 ICMP。 |
sourceAddresses | 代表 CIDR 格式 IP 位址的字串,是一組含分隔符號的 JSON 陣列。 也可以是輸入規則的服務標籤名稱 (部分機器翻譯),例如 AppService 。 星號 * 也可用來比對所有的來源 IP。 |
destinationAddresses | 代表 CIDR 格式 IP 位址的字串,是一組含分隔符號的 JSON 陣列。 也可以是輸出規則的服務標籤名稱 (部分機器翻譯),例如 AppService 。 星號 * 也可用來比對所有的目的地 IP。 |
action | 安全性群組存取類型。 必須為「允許」或「拒絕」。 |
destinationPortRanges | 字串,這是代表單一連接埠和/或連接埠範圍 (例如 80 或 1024-65535),且包含分隔符號的 JSON 陣列。 |
sourcePortRanges | 字串,這是代表單一連接埠和/或連接埠範圍 (例如 80 或 1024-65535),且包含分隔符號的 JSON 陣列。 |
priority | 介於 100-4096 之間,且對 NSG 內的所有安全性規則而言具唯一性的值。 如果 NSG 上已有同樣優先順序的另一項規則,則錯誤會失敗。 |
direction | 受安全性規則影響的流量方向。 必須為 [輸入] 或 [輸出]。 |
範例 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"
}
]
}
限制
- 錯誤只能套用到現有的 NSG。
- 當套用了用以拒絕流量的 NSG 規則時,除非現有的連線閑置了 4 分鐘,否則不會中斷。 有一個因應措施是在相同的步驟中新增另一個分支,而該分支會使用在套用了 NSG 錯誤時,將導致現有連線中斷的錯誤。 例如,終止程序、暫時停止服務或重新啟動 VM,都會導致連線重設。
- 規則會在動作開始時套用。 在動作持續時間內,規則的任何外部變更都會造成實驗失敗。
- 不支援建立或修改應用程式安全性群組規則。
- 每個目標 NSG 的優先順序值都必須是唯一的。 若試著建立與其他規則具有相同優先順序值的新規則,會導致實驗失敗。
- NSG 安全性規則 1.1 版 錯誤支援額外的
flushConnection
參數。 這項功能有現行已知問題:如果已啟用flushConnection
,錯誤可能會導致 "FlushingNetworkSecurityGroupConnectionIsNotEnabled" 錯誤。 若要暫時避免此錯誤,請停用flushConnection
參數,或使用 NSG 安全性規則 1.0 版錯誤。
服務匯流排:變更佇列狀態
屬性 | 值 |
---|---|
功能名稱 | ChangeQueueState-1.0 |
目標類型 | Microsoft-ServiceBus |
描述 | 將服務匯流排命名空間內的佇列實體設定為所需的狀態。 您可以影響特定的實體名稱,或使用“*”來影響所有實體名稱。 此動作有助於測試傳訊基礎結構的維修或失敗案例。 這是離散的錯誤,因此不會自動將實體返回至開始狀態。 |
必要條件 | 至少具有一個佇列實體 (部分機器翻譯) 的服務匯流排命名空間。 |
Urn | urn:csci:microsoft:serviceBus:changeQueueState/1.0 |
錯誤類型 | 離散。 |
參數 (索引鍵、值) | |
desiredState | 目標佇列的預期狀態。 可能的狀態為 Active、Disabled、SendDisabled 和 ReceiveDisabled。 |
佇列 | 目標命名空間內以逗號分隔的佇列名稱清單。 使用 "*" 影響命名空間內的所有佇列。 |
範例 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"
}
]
}
限制
- 最多可以傳遞 1000 個佇列實體至此錯誤。
服務匯流排:變更訂用帳戶狀態
屬性 | 值 |
---|---|
功能名稱 | ChangeSubscriptionState-1.0 |
目標類型 | Microsoft-ServiceBus |
描述 | 將服務匯流排命名空間和主題內的訂用帳戶實體設定為所需的狀態。 您可以影響特定的實體名稱,或使用“*”來影響所有實體名稱。 此動作有助於測試傳訊基礎結構的維修或失敗案例。 這是離散的錯誤,因此不會自動將實體返回至開始狀態。 |
必要條件 | 至少具有一個訂用帳戶實體 (部分機器翻譯) 的服務匯流排命名空間。 |
Urn | urn:csci:microsoft:serviceBus:changeSubscriptionState/1.0 |
錯誤類型 | 離散。 |
參數 (索引鍵、值) | |
desiredState | 目標訂用帳戶的預期狀態。 可能的狀態為 Active 和 Disabled。 |
主題 | 包含要影響一或多個訂用帳戶的父主題。 |
訂用帳戶 | 目標命名空間內以逗號分隔的訂用帳戶名稱清單。 使用 "*" 影響命名空間內的所有訂用帳戶。 |
範例 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"
}
]
}
限制
- 最多可以傳遞 1000 個訂用帳戶實體至此錯誤。
服務匯流排:變更主題狀態
屬性 | 值 |
---|---|
功能名稱 | ChangeTopicState-1.0 |
目標類型 | Microsoft-ServiceBus |
描述 | 將服務匯流排命名空間內的特定主題實體設定為所需的狀態。 您可以影響特定的實體名稱,或使用“*”來影響所有實體名稱。 此動作有助於測試傳訊基礎結構的維修或失敗案例。 這是離散的錯誤,因此不會自動將實體返回至開始狀態。 |
必要條件 | 至少具有一個主題實體 (部分機器翻譯) 的服務匯流排命名空間。 |
Urn | urn:csci:microsoft:serviceBus:changeTopicState/1.0 |
錯誤類型 | 離散。 |
參數 (索引鍵、值) | |
desiredState | 目標主題的預期狀態。 可能的狀態為 Active 和 Disabled。 |
主題 | 目標命名空間內以逗號分隔的主題名稱清單。 使用 "*" 影響命名空間內的所有主題。 |
範例 JSON
{
"name": "branchOne",
"actions": [
{
"type": "discrete",
"name": "urn:csci:microsoft:serviceBus:changeTopicState/1.0",
"parameters":[
{
"key": "desiredState",
"value": "Disabled"
},
{
"key": "topics",
"value": "*"
}
],
"selectorid": "myServiceBusSelector"
}
]
}
限制
- 最多可以傳遞 1000 個主題實體至此錯誤。
虛擬機器重新部署
屬性 | 值 |
---|---|
功能名稱 | Redeploy-1.0 |
目標類型 | Microsoft-VirtualMachine |
描述 | 透過關閉 VM,將 VM 移動至 Azure 基礎結構中的新節點並重新啟動以重新部署 VM。 這有助於驗證工作負載對維修事件的復原能力。 |
必要條件 | 無。 |
Urn | urn:csci:microsoft:virtualMachine:redeploy/1.0 |
錯誤類型 | 離散。 |
參數 (索引鍵、值) | 無。 |
範例 JSON
{
"name": "branchOne",
"actions": [
{
"type": "discrete",
"name": "urn:csci:microsoft:virtualMachine:redeploy/1.0",
"parameters":[],
"selectorid": "myResources"
}
]
}
限制
- 虛擬機器重新部署作業的節流間隔為 10 小時。 如果您的實驗失敗,並出現「太多重新部署要求」錯誤,請等候 10 小時再重試實驗。
虛擬機關機
屬性 | 值 |
---|---|
功能名稱 | Shutdown-1.0 |
目標類型 | Microsoft-VirtualMachine |
支援的 OS 類型 | Windows、Linux。 |
描述 | 在錯誤期間將 VM 關機。 在實驗結束或取消時重新啟動。 僅支援 Azure Resource Manager VM。 |
必要條件 | 無。 |
Urn | urn:csci:microsoft:virtualMachine:shutdown/1.0 |
錯誤類型 | 連續。 |
參數 (索引鍵、值) | |
abruptShutdown | (選用) 布林值,指出應正常關閉 VM 或突然關閉 (破壞性)。 |
範例 JSON
{
"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 版可讓您依可用性區域進行篩選,只關閉指定區域或區域內的執行個體。
虛擬機擴展集關機 1.0 版
屬性 | 值 |
---|---|
功能名稱 | 1.0 版 |
目標類型 | Microsoft-VirtualMachineScaleSet |
支援的 OS 類型 | Windows、Linux。 |
描述 | 在錯誤期間關閉或終止虛擬機器擴展集執行個體,並在持續時間結束時或實驗取消時重新啟動 VM。 |
必要條件 | 無。 |
Urn | urn:csci:microsoft:virtualMachineScaleSet:shutdown/1.0 |
錯誤類型 | 連續。 |
參數 (索引鍵、值) | |
abruptShutdown | (選用) 布林值,指出應正常關閉虛擬機器擴展集執行個體,或突然關閉 (破壞性)。 |
執行個體 | 字串,這是代表虛擬機器擴展集執行個體識別碼,且包含分隔符號的陣列。 |
1.0 版範例 JSON
{
"name": "branchOne",
"actions": [
{
"type": "continuous",
"name": "urn:csci:microsoft:virtualMachineScaleSet:shutdown/1.0",
"parameters": [
{
"key": "abruptShutdown",
"value": "true"
},
{
"key": "instances",
"value": "[\"1\",\"3\"]"
}
],
"duration": "PT10M",
"selectorid": "myResources"
}
]
}
虛擬機擴展集關機 2.0 版
屬性 | 值 |
---|---|
功能名稱 | Shutdown-2.0 |
目標類型 | Microsoft-VirtualMachineScaleSet |
支援的 OS 類型 | Windows、Linux。 |
描述 | 在錯誤期間將虛擬機器擴展集關機或終止。 在錯誤持續時間結束時重新啟動 VM,或如果實驗已取消,則重新啟動 VM。 支援動態目標 (部分機器翻譯)。 |
必要條件 | 無。 |
Urn | urn:csci:microsoft:virtualMachineScaleSet:shutdown/2.0 |
錯誤類型 | 連續。 |
filter | (選用 ) 從 2.0 版開始提供使用。 用來篩選選取器中的目標清單。 目前支援對區域清單進行篩選。 篩選條件只會套用至區域內的虛擬機器擴展集資源:
|
參數 (索引鍵、值) | |
abruptShutdown | (選用) 布林值,指出應正常關閉虛擬機器擴展集執行個體,或突然關閉 (破壞性)。 |
2.0 版範例 JSON 程式碼片段
下列程式碼片段示範如何設定動態篩選 (部分機器翻譯) 和關機 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 Resource Manager 虛擬機器關機錯誤來關閉選取的執行個體。
詳細資料:協調流程動作
延遲
屬性 | 值 |
---|---|
錯誤提供者 | N/A |
支援的 OS 類型 | N/A |
描述 | 在其他實驗動作之前、之間或之後新增時間延遲。 此動作不是錯誤,而是用來同步處理實驗中的動作。 使用此動作來等候錯誤的影響出現在服務中,或等候實驗以外的活動完成。 例如,在插入另一個錯誤之前,您的體驗可能會等候自動復原發生。 |
必要條件 | N/A |
Urn | urn:csci:microsoft:chaosStudio:timedDelay/1.0 |
期間 | ISO 8601 格式的延遲持續時間 (範例:PT10M)。 |
範例 JSON
{
"name": "branchOne",
"actions": [
{
"type": "delay",
"name": "urn:csci:microsoft:chaosStudio:timedDelay/1.0",
"duration": "PT10M"
}
]
}
啟動負載測試 (Azure 負載測試)
屬性 | 值 |
---|---|
功能名稱 | Start-1.0 |
目標類型 | Microsoft-AzureLoadTest |
描述 | 根據提供的負載測試識別碼啟動負載測試 (來自 Azure 負載測試)。 |
必要條件 | 您必須在 Azure 負載測試服務中建立具有有效負載測試識別碼的負載測試。 |
Urn | urn:csci:microsoft:azureLoadTest:start/1.0 |
錯誤類型 | 離散。 |
參數 (索引鍵、值) | |
testID | 在 Azure 負載測試服務中所建立特定負載測試的識別碼。 |
範例 JSON
{
"name": "branchOne",
"actions": [
{
"type": "discrete",
"name": "urn:csci:microsoft:azureLoadTest:start/1.0",
"parameters": [
{
"key": "testID",
"value": "0"
}
],
"selectorid": "myResources"
}
]
}
停止負載測試 (Azure 負載測試)
屬性 | 值 |
---|---|
功能名稱 | Stop-1.0 |
目標類型 | Microsoft-AzureLoadTest |
描述 | 根據提供的負載測試識別碼停止負載測試 (來自 Azure 負載測試)。 |
必要條件 | 您必須在 Azure 負載測試服務中建立具有有效負載測試識別碼的負載測試。 |
Urn | urn:csci:microsoft:azureLoadTest:stop/1.0 |
錯誤類型 | 離散。 |
參數 (索引鍵、值) | |
testID | 在 Azure 負載測試服務中所建立特定負載測試的識別碼。 |
範例 JSON
{
"name": "branchOne",
"actions": [
{
"type": "discrete",
"name": "urn:csci:microsoft:azureLoadTest:stop/1.0",
"parameters": [
{
"key": "testID",
"value": "0"
}
],
"selectorid": "myResources"
}
]
}