共用方式為


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 要將此錯誤套用到虛擬機器擴展集時,所需的執行個體識別碼。 針對處於統一協調流程模式中的虛擬機器擴展集,此屬性為必要。 深入了解執行個體識別碼

參數 destinationFiltersinboundDestinationFilters 使用下列封包篩選陣列。

屬性
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 環境的輸入和輸出流量 (透過 inboundDestinationFiltersdestinationFilters 參數)。

網路中斷連線 (透過防火牆)

屬性
功能名稱 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 要將此錯誤套用到虛擬機器擴展集時,所需的執行個體識別碼。 針對處於統一協調流程模式中的虛擬機器擴展集,此屬性為必要。 深入了解執行個體識別碼

參數 destinationFiltersinboundDestinationFilters 使用下列封包篩選陣列。

屬性
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 環境的輸入和輸出流量 (透過 inboundDestinationFiltersdestinationFilters 參數)。
  • 在 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 環境的輸入和輸出流量 (透過 inboundDestinationFiltersdestinationFilters 參數)。
  • 此錯誤目前只會影響新的連線。 現有的作用中連線不會受到影響。 您可以重新啟動服務或程序,強制連線中斷。

網路隔離

屬性
功能名稱 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 查閱要求必須:
  • 源自 VM。
  • 符合定義的錯誤參數。
Windows DNS 用戶端未進行的 DNS 查閱,不會受到此錯誤的影響。
必要條件 無。
Urn urn:csci:microsoft:agent:dnsFailure/1.0
錯誤類型 連續。
參數 (索引鍵、值)
主機 主機名稱的分隔 JSON 陣列,以失敗的 DNS 查閱要求。

這個屬性可接受萬用字元 (*),但只適用於位址中的第一個子網域,而且只適用於指定它們的子網域。 例如:
  • 可支援 *.microsoft.com。
  • 不支援 subdomain.*.microsoft。
  • *.microsoft.com 不會適用於位址中的多個子網域,例如 subdomain1.subdomain2.microsoft 這樣的位址。
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 叢集執行。 適用於重新建立在使用 openreadwrite 等 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"
    }
  ]
}