Azure Chaos Studio の障害およびアクション ライブラリ

この記事では、Chaos Studio で使用できる障害を、該当するリソースの種類別に整理して一覧表示します。 リソースの種類ごとに推奨されるロールの割り当てを理解するには、「Azure Chaos Studio でサポートされているリソースの種類とロールの割り当て」を参照してください。

エージェント ベースの障害

エージェント ベースの障害は、Chaos Studio エージェントをインストールすることで、Azure Virtual Machines または仮想マシン スケール セット インスタンスに挿入されます。 これらのリソースのサービス直接障害オプションを Virtual Machine テーブルと仮想マシン スケール セット テーブルに示します。

該当する OS の種類 障害名 適用可能なシナリオ
Windows、Linux CPU 負荷 コンピューティング容量の損失、リソースの負荷
Windows、Linux プロセスの強制終了 依存関係の中断
Windows、Linux ネットワークの切断 ネットワークの中断
Windows、Linux ネットワーク待機時間 ネットワーク パフォーマンスの低下
Windows、Linux ネットワーク パケット損失 ネットワークの信頼性の問題
Windows、Linux 物理メモリ負荷 メモリ容量の損失、リソースの負荷
Windows、Linux サービスの停止 サービスの中断/再開
Windows、Linux 時刻の変更 時刻同期の問題
Windows、Linux 仮想メモリ負荷 メモリ容量の損失、リソースの負荷
Linux 任意の stress-ng ストレス要因 一般的なシステム ストレス テスト
Linux Linux DiskIO の負荷 ディスク I/O パフォーマンスの低下
Windows DiskIO の負荷 ディスク I/O パフォーマンスの低下
Windows DNS エラー DNS 解決の問題
Windows ネットワーク切断 (ファイアウォール経由) ネットワークの中断

App Service

このセクションの説明は、Microsoft.Web/sites リソースの種類に当てはまります。 App Service の詳細を確認してください。

障害名 適用可能なシナリオ
App Service の停止 サービスの中断

自動スケール設定

このセクションの説明は、Microsoft.Insights/autoscaleSettings リソースの種類に当てはまります。 自動スケール設定に関する詳細情報

障害名 適用可能なシナリオ
自動スケーリングの無効化 コンピューティング容量の損失 (VMSS Shutdown で使用される場合)

Azure Kubernetes Service

このセクションの説明は、Microsoft.ContainerService/managedClusters リソースの種類に当てはまります。 Azure Kubernetes Service に関する詳細情報

障害名 適用可能なシナリオ
AKS Chaos Mesh の DNS カオス DNS 解決の問題
AKS Chaos Mesh の HTTP カオス ネットワークの中断
AKS Chaos Mesh の IO カオス ディスクの劣化/負荷
AKS Chaos Mesh のカーネル カオス カーネルの中断
AKS Chaos Mesh のネットワーク カオス ネットワークの中断
AKS Chaos Mesh のポッド カオス コンテナーの中断
AKS Chaos Mesh のストレス カオス システム ストレス テスト
AKS Chaos Mesh の時刻のカオス 時刻同期の問題

Cloud Services (クラシック)

このセクションの説明は、Microsoft.ClassicCompute/domainNames リソースの種類に当てはまります。 Cloud Services (クラシック) に関する詳細情報

障害名 適用可能なシナリオ
クラウド サービスのシャットダウン コンピューティングの損失

クラスター化された Cache for Redis

このセクションの説明は、Microsoft.Cache/redis リソースの種類に当てはまります。 クラスター化された Cache for Redis に関する詳細情報

障害名 適用可能なシナリオ
Azure Cache for Redis (再起動) 依存関係の中断 (キャッシュ)

Cosmos DB

このセクションの説明は、Microsoft.DocumentDB/databaseAccounts リソースの種類に当てはまります。 Cosmos DB に関する詳細情報

障害名 適用可能なシナリオ
Cosmos DB のフェールオーバー データベース フェールオーバー

Event Hubs

このセクションの説明は、Microsoft.EventHub/namespaces リソースの種類に当てはまります。 Event Hubs に関する詳細情報

障害名 適用可能なシナリオ
イベント ハブの状態を変更する メッセージング インフラストラクチャの構成の誤り/中断

Key Vault

このセクションの説明は、Microsoft.KeyVault/vaults リソースの種類に当てはまります。 Key Vault の詳細を確認してください。

障害名 適用可能なシナリオ
Key Vault: アクセス拒否 証明書の拒否
Key Vault: 証明書の無効化 証明書の中断
Key Vault: 証明書のバージョンの増分 証明書バージョンの増分
Key Vault: 証明書ポリシーの更新 証明書ポリシーの変更/構成の誤り

ネットワーク セキュリティ グループ

このセクションの説明は、Microsoft.Network/networkSecurityGroups リソースの種類に当てはまります。 ネットワーク セキュリティ グループに関する詳細情報

障害名 適用可能なシナリオ
NSG セキュリティ規則 ネットワークの中断 (多くの Azure サービスの場合)

Service Bus

このセクションの説明は、Microsoft.ServiceBus/namespaces リソースの種類に当てはまります。 Service Bus に関する詳細情報

障害名 適用可能なシナリオ
キュー状態の変更 メッセージング インフラストラクチャの構成の誤り/中断
サブスクリプション状態の変更 メッセージング インフラストラクチャの構成の誤り/中断
トピック状態の変更 メッセージング インフラストラクチャの構成の誤り/中断

Virtual Machines (サービス直接)

このセクションの説明は、Microsoft.Compute/virtualMachines リソースの種類に当てはまります。 Virtual Machines に関する詳細情報

障害名 適用可能なシナリオ
VM の再デプロイ コンピューティングの中断、メンテナンス イベント
VM シャットダウン コンピューティングの損失/中断

仮想マシン スケール セット

このセクションの説明は、Microsoft.Compute/virtualMachineScaleSets リソースの種類に当てはまります。 仮想マシン スケール セットに関する詳細情報

障害名 適用可能なシナリオ
VMSS Shutdown コンピューティングの損失/中断
VMSS Shutdown (2.0) コンピューティングの損失/中断 (可用性ゾーン別)

オーケストレーション アクション

これらのアクションは、効果的な実験を構築するための構成要素です。 たとえば、ゾーン内のコンピューティング インスタンスを並行してシャットダウンしながらロード テストを実行するなど、他の障害と組み合わせて使用します。

アクションのカテゴリ 障害名
積載量 ロード テストの開始 (Azure Load Testing)
積載量 ロード テストの停止 (Azure Load Testing)
遅延時間 [遅延]

詳細: エージェント ベースの障害

ネットワークの切断

プロパティ
機能名 NetworkDisconnect-1.1
ターゲットの型 Microsoft-Agent
サポートされている OS の種類 Windows、Linux。
説明 指定されたポート範囲とネットワーク ブロックの送信ネットワーク トラフィックをブロックします。 少なくとも 1 つの destinationFilter または inboundDestinationFilter 配列を指定する必要があります。
前提条件 Windows: エージェントは管理者として実行する必要があります。VM 拡張機能としてインストールされている場合は、既定で実行されます。
Linux:tc (トラフィック コントロール) パッケージは、ネットワーク障害に使用されます。 パッケージがまだインストールされていない場合、エージェントは既定のパッケージ マネージャーから自動的にインストールを試みます。
Urn urn:csci:microsoft:agent:networkDisconnect/1.1
パラメーター (キー、値)
destinationFilters どの送信パケットを対象とするかを定義するパケット フィルターの区切られた JSON 配列。 最大 16 です。
inboundDestinationFilters どの受信パケットを対象とするかを定義するパケット フィルターの区切られた JSON 配列。 最大 16 です。
virtualMachineScaleSetInstances この障害を仮想マシン スケール セットに適用するときのインスタンス ID の配列。 均一オーケストレーション モードの仮想マシン スケール セットに必須です。 インスタンス ID の詳細については、こちらを参照してください。

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 パケットでのみ機能します。

ネットワーク切断 (ファイアウォール経由)

プロパティ
機能名 NetworkDisconnectViaFirewall-1.0
ターゲットの型 Microsoft-Agent
サポートされている OS の種類 Windows
説明 指定されたポート範囲とネットワーク ブロックの送信トラフィックをブロックする Windows ファイアウォール規則を適用します。
前提条件 エージェントは管理者として実行する必要があります。 エージェントが VM 拡張機能としてインストールされている場合は、既定で管理者として実行されます。
Urn urn:csci:microsoft:agent:networkDisconnectViaFirewall/1.0
パラメーター (キー、値)
destinationFilters どの送信パケットを障害挿入の対象とするかを定義するパケット フィルターの区切られた JSON 配列。
address IP 範囲の開始を示す IP アドレス。
subnetMask IP アドレス範囲のサブネット マスク。
portLow (省略可能) ポート範囲の開始のポート番号。
portHigh (省略可能) ポート範囲の終了のポート番号。
virtualMachineScaleSetInstances この障害を仮想マシン スケール セットに適用するときのインスタンス ID の配列。 均一オーケストレーション モードの仮想マシン スケール セットに必須です。 インスタンス ID の詳細については、こちらを参照してください。

サンプル 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 (送信トラフィックのみ)
説明 指定されたポート範囲とネットワーク ブロックのネットワーク待ち時間を増やします。 少なくとも 1 つの destinationFilter または inboundDestinationFilter 配列を指定する必要があります。
前提条件 Windows: エージェントは管理者として実行する必要があります。VM 拡張機能としてインストールされている場合は、既定で実行されます。
Linux:tc (トラフィック コントロール) パッケージは、ネットワーク障害に使用されます。 パッケージがまだインストールされていない場合、エージェントは既定のパッケージ マネージャーから自動的にインストールを試みます。
Urn urn:csci:microsoft:agent:networkLatency/1.1
パラメーター (キー、値)
latencyInMilliseconds 適用される待ち時間の量 (ミリ秒単位)。
destinationFilters どの送信パケットを対象とするかを定義するパケット フィルターの区切られた JSON 配列。 最大 16 です。
inboundDestinationFilters どの受信パケットを対象とするかを定義するパケット フィルターの区切られた JSON 配列。 最大 16 です。
virtualMachineScaleSetInstances この障害を仮想マシン スケール セットに適用するときのインスタンス ID の配列。 均一オーケストレーション モードの仮想マシン スケール セットに必須です。 インスタンス ID の詳細については、こちらを参照してください。

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 上で実行している場合、ネットワーク待機時間障害は、受信トラフィックではなく、送信トラフィックにのみ影響します。 この障害は、(inboundDestinationFilters および destinationFilters パラメーターを介した) Windows 環境での受信と送信の両方のトラフィックに影響する可能性があります。
  • 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 この障害を仮想マシン スケール セットに適用するときのインスタンス ID の配列。 均一オーケストレーション モードの仮想マシン スケール セットに必須です。 インスタンス ID の詳細については、こちらを参照してください。
destinationFilters どの送信パケットを障害挿入の対象とするかを定義するパケット フィルター (パラメーターは以下) の区切られた JSON 配列。 最大 3 つです。
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 パケットでのみ機能します。

DNS エラー

プロパティ
機能名 DnsFailure-1.0
ターゲットの型 Microsoft-Agent
サポートされている OS の種類 Windows
説明 DNS 参照要求の応答を指定されたエラー コードに置き換えます。 置き換えられる DNS 参照要求では、次のことが必要です。
  • VM から生成される。
  • 定義された障害パラメーターと一致する。
Windows DNS クライアントによって行われていない DNS 検索は、この障害の影響を受けることはありません。
前提条件 なし。
Urn urn:csci:microsoft:agent:dnsFailure/1.0
パラメーター (キー、値)
ホスト DNS 参照要求を失敗させるホスト名の区切られた JSON 配列。

このプロパティはワイルドカード (*) を受け入れますが、アドレス内の最初のサブドメインのみが対象で、指定されているサブドメインにのみ適用されます。 次に例を示します。
  • *.microsoft.com はサポートされています。
  • subdomain.*.microsoft はサポートされていません。
  • *.microsoft.com は、subdomain1.subdomain2.microsoft.com などのアドレス内の複数のサブドメインでは機能しません。
dnsFailureReturnCode 参照エラーとしてクライアントに返される DNS エラー コード (FormErr、ServFail、NXDomain、NotImp、Refused、XDomain、YXRRSet、NXRRSet、NotAuth、NotZone)。 DNS リターン コードについては、IANA の Web サイトを参照してください。
virtualMachineScaleSetInstances この障害を仮想マシン スケール セットに適用するときのインスタンス ID の配列。 均一オーケストレーション モードの仮想マシン スケール セットに必須です。 インスタンス ID の詳細については、こちらを参照してください。

サンプル 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 では、% Processor Utility パフォーマンス カウンターが障害開始時に現在の CPU 使用率を判断するために使用され、エラーで定義されている pressureLevel から減算されるため、% Processor Utility は、障害パラメーターで定義されている pressureLevel にほぼヒットします。
前提条件 Linux: stress-ng ユーティリティをインストールする必要があります。 Debian ベース (Ubuntu など)、Red Hat Enterprise Linux、OpenSUSE を含むいくつかのオペレーティング システム上で、既定のパッケージ マネージャーを使用して、エージェントのインストールの一環として自動的にインストールが行われます。 Azure Linux を含むその他のディストリビューションの場合は、stress-ng を手動でインストールする必要があります。 詳細については、アップストリーム プロジェクト リポジトリに関する記事を参照してください。
Windows: なし。
Urn urn:csci:microsoft:agent:cpuPressure/1.0
パラメーター (キー、値)
pressureLevel CPU 使用率の観点から、VM に適用される CPU 負荷 (%) の値を示す 1 から 99 までの整数
virtualMachineScaleSetInstances この障害を仮想マシン スケール セットに適用するときのインスタンス ID の配列。 均一オーケストレーション モードの仮想マシン スケール セットに必須です。 インスタンス ID の詳細については、こちらを参照してください。

サンプル 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 ユーティリティをインストールする必要があります。 Debian ベース (Ubuntu など)、Red Hat Enterprise Linux、OpenSUSE を含むいくつかのオペレーティング システム上で、既定のパッケージ マネージャーを使用して、エージェントのインストールの一環として自動的にインストールが行われます。 Azure Linux を含むその他のディストリビューションの場合は、stress-ng を手動でインストールする必要があります。 詳細については、アップストリーム プロジェクト リポジトリに関する記事を参照してください。
Windows: なし。
Urn urn:csci:microsoft:agent:physicalMemoryPressure/1.0
パラメーター (キー、値)
pressureLevel VM に適用される物理メモリ負荷 (%) の値を示す 1 から 99 までの整数。
virtualMachineScaleSetInstances この障害を仮想マシン スケール セットに適用するときのインスタンス ID の配列。 均一オーケストレーション モードの仮想マシン スケール セットに必須です。 インスタンス ID の詳細については、こちらを参照してください。

サンプル 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 VM に適用される物理メモリ負荷 (%) の値を示す 1 から 99 までの整数。
virtualMachineScaleSetInstances この障害を仮想マシン スケール セットに適用するときのインスタンス ID の配列。 均一オーケストレーション モードの仮想マシン スケール セットに必須です。 インスタンス ID の詳細については、こちらを参照してください。

サンプル 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
説明 diskspd ユーティリティを使用して、仮想マシンにディスク負荷を追加します。 負荷は、既定ではプライマリ ディスクに追加されます。または、targetTempDirectory パラメーターで指定されたディスクに追加されます。 この障害には、5 種類の実行モードがあります。 期間の最後に、または実験が取り消された場合、人工的なディスク負荷は削除されます。
前提条件 なし。
Urn urn:csci:microsoft:agent:diskIOPressure/1.1
パラメーター (キー、値)
pressureMode VM のプライマリ ストレージに追加するディスク負荷のプリセット モード。 次の表の PressureModes のいずれかである必要があります。
targetTempDirectory (省略可能) ディスク負荷の適用に使用するディレクトリ。 たとえば、D:/Temp のようにします。 パラメーターが含まれていない場合は、負荷がプライマリ ディスクに追加されます。
virtualMachineScaleSetInstances この障害を仮想マシン スケール セットに適用するときのインスタンス ID の配列。 均一オーケストレーション モードの仮想マシン スケール セットに必須です。 インスタンス ID の詳細については、こちらを参照してください。

負荷モード

PressureMode 説明
PremiumStorageP10IOPS numberOfThreads = 1
randomBlockSizeInKB = 64
randomSeed = 10
numberOfIOperThread = 25
sizeOfBlocksInKB = 8
sizeOfWriteBufferInKB = 64
fileSizeInGB = 2
percentOfWriteActions = 50
PremiumStorageP10Throttling
numberOfThreads = 2
randomBlockSizeInKB = 64
randomSeed = 10
numberOfIOperThread = 25
sizeOfBlocksInKB = 64
sizeOfWriteBufferInKB = 64
fileSizeInGB = 1
percentOfWriteActions = 50
PremiumStorageP50IOPS numberOfThreads = 32
randomBlockSizeInKB = 64
randomSeed = 10
numberOfIOperThread = 32
sizeOfBlocksInKB = 8
sizeOfWriteBufferInKB = 64
fileSizeInGB = 1
percentOfWriteActions = 50
PremiumStorageP50Throttling numberOfThreads = 2
randomBlockSizeInKB = 1024
randomSeed = 10
numberOfIOperThread = 2
sizeOfBlocksInKB = 1024
sizeOfWriteBufferInKB = 1024
fileSizeInGB = 20
percentOfWriteActions = 50
既定値 numberOfThreads = 2
randomBlockSizeInKB = 64
randomSeed = 10
numberOfIOperThread = 2
sizeOfBlocksInKB = 64
sizeOfWriteBufferInKB = 64
fileSizeInGB = 1
percentOfWriteActions = 50

サンプル 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 プロセスを実行する 1 つ以上のワーカー プロセスが生成されます。 負荷は、既定ではプライマリ ディスクに追加されます。または、targetTempDirectory パラメーターで指定されたディスクに追加されます。 負荷の適用方法については、stress-ng に関する記事を参照してください。
前提条件 Linux: stress-ng ユーティリティをインストールする必要があります。 Debian ベース (Ubuntu など)、Red Hat Enterprise Linux、OpenSUSE を含むいくつかのオペレーティング システム上で、既定のパッケージ マネージャーを使用して、エージェントのインストールの一環として自動的にインストールが行われます。 Azure Linux を含むその他のディストリビューションの場合は、stress-ng を手動でインストールする必要があります。 詳細については、アップストリーム プロジェクト リポジトリに関する記事を参照してください。
Urn urn:csci:microsoft:agent:linuxDiskIOPressure/1.1
パラメーター (キー、値)
workerCount 実行されるワーカー プロセスの数。 workerCount を 0 に設定すると、存在するプロセッサと同じ数のワーカー プロセスが生成されます。
fileSizePerWorker ワーカーが I/O 操作を実行する対象となる一時ファイルのサイズ。 整数とバイト (b)、キロバイト (k)、メガバイト (m)、またはギガバイト (g) での単位 (たとえば、4 メガバイトの場合は 4m、256 ギガバイトの場合は 256g)。
blockSize 1 バイトより大きく、4 メガバイト未満 (最大値は 4095k) の、ディスク I/O 操作に使用されるブロック サイズ。 整数とバイト、キロバイト、またはメガバイトでの単位 (たとえば、512 キロバイトの場合は 512k)。
targetTempDirectory (省略可能) ディスク負荷の適用に使用するディレクトリ。 たとえば、/tmp/ のようにします。 パラメーターが含まれていない場合は、負荷がプライマリ ディスクに追加されます。
virtualMachineScaleSetInstances この障害を仮想マシン スケール セットに適用するときのインスタンス ID の配列。 均一オーケストレーション モードの仮想マシン スケール セットに必須です。 インスタンス ID の詳細については、こちらを参照してください。

サンプル JSON

これらのサンプル値では、Premium 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 systemd サービスを停止します。 期間の最後に、または実験が取り消された場合に再起動します。
前提条件 なし。
Urn urn:csci:microsoft:agent:stopService/1.0
パラメーター (キー、値)
serviceName 停止する Windows サービスまたは Linux systemd サービスの名前。
virtualMachineScaleSetInstances この障害を仮想マシン スケール セットに適用するときのインスタンス ID の配列。 均一オーケストレーション モードの仮想マシン スケール セットに必須です。 インスタンス ID の詳細については、こちらを参照してください。

サンプル 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 この障害を仮想マシン スケール セットに適用するときのインスタンス ID の配列。 均一オーケストレーション モードの仮想マシン スケール セットに必須です。 インスタンス ID の詳細については、こちらを参照してください。

サンプル 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"
    }
  ]
}

時刻の変更

プロパティ
機能名 TimeChange-1.0
ターゲットの型 Microsoft-Agent
サポートされている OS の種類 Windows
説明 仮想マシンのシステム時刻を変更し、実験の最後に、または実験が取り消された場合にこれをリセットします。
前提条件 なし。
Urn urn:csci:microsoft:agent:timeChange/1.0
パラメーター (キー、値)
dateTime ISO8601 形式での DateTime 文字列。 YYYY-MM-DD 値がない場合は、既定で、実験が実行される現在の日に設定されます。 Thh:mm:ss 値がない場合、既定値は午前 12:00:00 です。 2 桁の年 (YY) が指定されている場合は、現在の世紀に基づいて 4 桁の年 (YYYY) に変換されます。 タイムゾーン <Z> がない場合、既定のオフセットはローカル タイムゾーンになります。 <Z> には常に、符号記号 (負または正) が含まれている必要があります。
virtualMachineScaleSetInstances この障害を仮想マシン スケール セットに適用するときのインスタンス ID の配列。 均一オーケストレーション モードの仮想マシン スケール セットに必須です。 インスタンス ID の詳細については、こちらを参照してください。

サンプル 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 ユーティリティをインストールする必要があります。 Debian ベース (Ubuntu など)、Red Hat Enterprise Linux、OpenSUSE を含むいくつかのオペレーティング システム上で、既定のパッケージ マネージャーを使用して、エージェントのインストールの一環として自動的にインストールが行われます。 Azure Linux を含むその他のディストリビューションの場合は、stress-ng を手動でインストールする必要があります。 詳細については、アップストリーム プロジェクト リポジトリに関する記事を参照してください。
Urn urn:csci:microsoft:agent:stressNg/1.0
パラメーター (キー、値)
stressNgArguments stress-ng プロセスに渡す 1 つ以上の引数。 可能性のある stress-ng 引数については、stress-ng に関する記事を参照してください。

サンプル 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 アプリケーションを停止し、障害期間の終了時に再起動します。 このアクションは、App Service、API Apps、Mobile Apps、Azure Functions など、"Microsoft.Web/sites" 型のリソースに適用されます。
前提条件 なし。
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"
    }
  ]
}

自動スケーリングの無効化

プロパティ
機能名 DisaleAutoscale
ターゲットの型 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 のネットワーク カオス

プロパティ
機能名 NetworkChaos-2.1
ターゲットの型 Microsoft-AzureKubernetesServiceChaosMesh
サポートされているノード プール OS の種類 Linux
説明 Chaos Mesh から発生させることができるネットワーク障害を Azure Kubernetes Service (AKS) クラスターに対して実行させます。 ネットワークの停止、遅延、重複、損失、破損に起因する AKS インシデントを再作成するのに役立ちます。
前提条件 AKS クラスターには Chaos Mesh がデプロイされている必要があります
Urn urn:csci:microsoft:azureKubernetesServiceChaosMesh:networkChaos/2.1
パラメーター (キー、値)
jsonSpec NetworkChaos の種類を使用する JSON 形式の Chaos Mesh 仕様。 YAML から JSON への変換などの YAML から JSON へのコンバーターを使用して、Chaos Mesh YAML を JSON に変換し、ミニファイ処理することができます。 JSON 内で一重引用符を使用するか、バックスラッシュ文字で引用符をエスケープします。 jsonSpec プロパティには YAML のみを含めます。 メタデータや種類などの情報は含めないでください。 jsonSpec 内の期間を指定する必要はありませんが、使用可能な場合は使用されます。

サンプル JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "continuous",
      "name": "urn:csci:microsoft:azureKubernetesServiceChaosMesh:networkChaos/2.1",
      "parameters": [
        {
            "key": "jsonSpec",
            "value": "{\"action\":\"delay\",\"mode\":\"one\",\"selector\":{\"namespaces\":[\"default\"]},\"delay\":{\"latency\":\"200ms\",\"correlation\":\"100\",\"jitter\":\"0ms\"}}}"
        }
    ],
      "selectorid": "myResources"
    }
  ]
}

AKS Chaos Mesh のポッド カオス

プロパティ
機能名 PodChaos-2.1
ターゲットの型 Microsoft-AzureKubernetesServiceChaosMesh
サポートされているノード プール OS の種類 Linux
説明 Chaos Mesh から発生させることができるポッド障害を AKS クラスターに対して実行させます。 ポッドのエラーまたはコンテナーの問題の結果である AKS インシデントを再作成するのに役立ちます。
前提条件 AKS クラスターには Chaos Mesh がデプロイされている必要があります
Urn urn:csci:microsoft:azureKubernetesServiceChaosMesh:podChaos/2.1
パラメーター (キー、値)
jsonSpec PodChaos の種類を使用する JSON 形式の Chaos Mesh 仕様。 YAML から JSON への変換などの YAML から JSON へのコンバーターを使用して、Chaos Mesh YAML を JSON に変換し、ミニファイ処理することができます。 JSON 内で一重引用符を使用するか、バックスラッシュ文字で引用符をエスケープします。 jsonSpec プロパティには YAML のみを含めます。 メタデータや種類などの情報は含めないでください。 jsonSpec 内の期間を指定する必要はありませんが、使用可能な場合は使用されます。

サンプル JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "continuous",
      "name": "urn:csci:microsoft:azureKubernetesServiceChaosMesh:podChaos/2.1",
      "parameters": [
        {
            "key": "jsonSpec",
            "value": "{\"action\":\"pod-failure\",\"mode\":\"all\",\"selector\":{\"namespaces\":[\"default\"]}}"
        }
    ],
      "selectorid": "myResources"
    }
  ]
}

AKS Chaos Mesh のストレス カオス

プロパティ
機能名 StressChaos-2.1
ターゲットの型 Microsoft-AzureKubernetesServiceChaosMesh
サポートされているノード プール OS の種類 Linux
説明 Chaos Mesh から発生させることができるストレス障害を AKS クラスターに対して実行させます。 ポッドのコレクションに対するストレス (大量の CPU またはメモリの使用など) を原因とする AKS インシデントを再作成するのに役立ちます。
前提条件 AKS クラスターには Chaos Mesh がデプロイされている必要があります
Urn urn:csci:microsoft:azureKubernetesServiceChaosMesh:stressChaos/2.1
パラメーター (キー、値)
jsonSpec StressChaos の種類を使用する JSON 形式の Chaos Mesh 仕様。 YAML から JSON への変換などの YAML から JSON へのコンバーターを使用して、Chaos Mesh YAML を JSON に変換し、ミニファイ処理することができます。 JSON 内で一重引用符を使用するか、バックスラッシュ文字で引用符をエスケープします。 jsonSpec プロパティには YAML のみを含めます。 メタデータや種類などの情報は含めないでください。 jsonSpec 内の期間を指定する必要はありませんが、使用可能な場合は使用されます。

サンプル JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "continuous",
      "name": "urn:csci:microsoft:azureKubernetesServiceChaosMesh:stressChaos/2.1",
      "parameters": [
        {
            "key": "jsonSpec",
            "value": "{\"mode\":\"one\",\"selector\":{\"namespaces\":[\"default\"]},\"stressors\":{\"cpu\":{\"workers\":1,\"load\":50},\"memory\":{\"workers\":4,\"size\":\"256MB\"}}"
        }
    ],
      "selectorid": "myResources"
    }
  ]
}

AKS Chaos Mesh の IO カオス

プロパティ
機能名 IOChaos-2.1
ターゲットの型 Microsoft-AzureKubernetesServiceChaosMesh
サポートされているノード プール OS の種類 Linux
説明 Chaos Mesh から発生させることができる IO 障害を AKS クラスターに対して実行させます。 IO システム コール (openreadwrite など) を使用する際の IO の遅延や読み取り/書き込みエラーを原因とする AKS インシデントを再作成するのに役立ちます。
前提条件 AKS クラスターには Chaos Mesh がデプロイされている必要があります
Urn urn:csci:microsoft:azureKubernetesServiceChaosMesh:IOChaos/2.1
パラメーター (キー、値)
jsonSpec IOChaos の種類を使用する JSON 形式の Chaos Mesh 仕様。 YAML から JSON への変換などの YAML から JSON へのコンバーターを使用して、Chaos Mesh YAML を JSON に変換し、ミニファイ処理することができます。 JSON 内で一重引用符を使用するか、バックスラッシュ文字で引用符をエスケープします。 jsonSpec プロパティには YAML のみを含めます。 メタデータや種類などの情報は含めないでください。 jsonSpec 内の期間を指定する必要はありませんが、使用可能な場合は使用されます。

サンプル JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "continuous",
      "name": "urn:csci:microsoft:azureKubernetesServiceChaosMesh:IOChaos/2.1",
      "parameters": [
        {
            "key": "jsonSpec",
            "value": "{\"action\":\"latency\",\"mode\":\"one\",\"selector\":{\"app\":\"etcd\"},\"volumePath\":\"\/var\/run\/etcd\",\"path\":\"\/var\/run\/etcd\/**\/*\",\"delay\":\"100ms\",\"percent\":50}"
        }
    ],
      "selectorid": "myResources"
    }
  ]
}

AKS Chaos Mesh の時刻のカオス

プロパティ
機能名 TimeChaos-2.1
ターゲットの型 Microsoft-AzureKubernetesServiceChaosMesh
サポートされているノード プール OS の種類 Linux
説明 Chaos Mesh を使用して AKS クラスターでシステム クロックの変更を発生させます。 分散システムの同期ずれ、うるう年/うるう秒のロジックの欠落や不正確さなどを原因とする AKS インシデントを再作成するのに役立ちます。
前提条件 AKS クラスターには Chaos Mesh がデプロイされている必要があります
Urn urn:csci:microsoft:azureKubernetesServiceChaosMesh:timeChaos/2.1
パラメーター (キー、値)
jsonSpec TimeChaos の種類を使用する JSON 形式の Chaos Mesh 仕様。 YAML から JSON への変換などの YAML から JSON へのコンバーターを使用して、Chaos Mesh YAML を JSON に変換し、ミニファイ処理することができます。 JSON 内で一重引用符を使用するか、バックスラッシュ文字で引用符をエスケープします。 jsonSpec プロパティには YAML のみを含めます。 メタデータや種類などの情報は含めないでください。 jsonSpec 内の期間を指定する必要はありませんが、使用可能な場合は使用されます。

サンプル JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "continuous",
      "name": "urn:csci:microsoft:azureKubernetesServiceChaosMesh:timeChaos/2.1",
      "parameters": [
        {
            "key": "jsonSpec",
            "value": "{\"mode\":\"one\",\"selector\":{\"namespaces\":[\"default\"]},\"timeOffset\":\"-10m100ns\"}"
        }
    ],
      "selectorid": "myResources"
    }
  ]
}

AKS Chaos Mesh のカーネル カオス

プロパティ
機能名 KernelChaos-2.1
ターゲットの型 Microsoft-AzureKubernetesServiceChaosMesh
サポートされているノード プール OS の種類 Linux
説明 Chaos Mesh から発生させることができるカーネル障害を AKS クラスターに対して実行させます。 マウント エラーや未割り当てメモリなどの Linux カーネル レベルのエラーを原因とする AKS インシデントを再作成するのに役立ちます。
前提条件 AKS クラスターには Chaos Mesh がデプロイされている必要があります
Urn urn:csci:microsoft:azureKubernetesServiceChaosMesh:kernelChaos/2.1
パラメーター (キー、値)
jsonSpec KernelChaos の種類を使用する JSON 形式の Chaos Mesh 仕様。 YAML から JSON への変換などの YAML から JSON へのコンバーターを使用して、Chaos Mesh YAML を JSON に変換し、ミニファイ処理することができます。 JSON 内で一重引用符を使用するか、バックスラッシュ文字で引用符をエスケープします。 jsonSpec プロパティには YAML のみを含めます。 メタデータや種類などの情報は含めないでください。 jsonSpec 内の期間を指定する必要はありませんが、使用可能な場合は使用されます。

サンプル JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "continuous",
      "name": "urn:csci:microsoft:azureKubernetesServiceChaosMesh:kernelChaos/2.1",
      "parameters": [
        {
            "key": "jsonSpec",
            "value": "{\"mode\":\"one\",\"selector\":{\"namespaces\":[\"default\"]},\"failKernRequest\":{\"callchain\":[{\"funcname\":\"__x64_sys_mount\"}],\"failtype\":0}}"
        }
    ],
      "selectorid": "myResources"
    }
  ]
}

AKS Chaos Mesh の HTTP カオス

プロパティ
機能名 HTTPChaos-2.1
ターゲットの型 Microsoft-AzureKubernetesServiceChaosMesh
サポートされているノード プール OS の種類 Linux
説明 Chaos Mesh から発生させることができる HTTP 障害を AKS クラスターに対して実行させます。 遅延応答や不正な応答など、HTTP 要求や応答処理の失敗によるインシデントを再作成するのに役立ちます。
前提条件 AKS クラスターには Chaos Mesh がデプロイされている必要があります
Urn urn:csci:microsoft:azureKubernetesServiceChaosMesh:httpChaos/2.1
パラメーター (キー、値)
jsonSpec HTTPChaos の種類を使用する JSON 形式の Chaos Mesh 仕様。 YAML から JSON への変換などの YAML から JSON へのコンバーターを使用して、Chaos Mesh YAML を JSON に変換し、ミニファイ処理することができます。 JSON 内で一重引用符を使用するか、バックスラッシュ文字で引用符をエスケープします。 jsonSpec プロパティには YAML のみを含めます。 メタデータや種類などの情報は含めないでください。 jsonSpec 内の期間を指定する必要はありませんが、使用可能な場合は使用されます。

サンプル JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "continuous",
      "name": "urn:csci:microsoft:azureKubernetesServiceChaosMesh:httpChaos/2.1",
      "parameters": [
        {
            "key": "jsonSpec",
            "value": "{\"mode\":\"all\",\"selector\":{\"namespaces\":[\"default\"]},\"target\":\"Request\",\"port\":80,\"method\":\"GET\",\"path\":\"/api\",\"abort\":true}"
        }
    ],
      "selectorid": "myResources"
    }
  ]
}

AKS Chaos Mesh の DNS カオス

プロパティ
機能名 DNSChaos-2.1
ターゲットの型 Microsoft-AzureKubernetesServiceChaosMesh
サポートされているノード プール OS の種類 Linux
説明 Chaos Mesh から発生させることができる DNS 障害を AKS クラスターに対して実行させます。 DNS 障害によるインシデントを再作成するのに役立ちます。
前提条件 AKS クラスターには Chaos Mesh がデプロイされている必要があります。また、DNS サービスがインストールされている必要があります
Urn urn:csci:microsoft:azureKubernetesServiceChaosMesh:dnsChaos/2.1
パラメーター (キー、値)
jsonSpec DNSChaos の種類を使用する JSON 形式の Chaos Mesh 仕様。 YAML から JSON への変換などの YAML から JSON へのコンバーターを使用して、Chaos Mesh YAML を JSON に変換し、ミニファイ処理することができます。 JSON 内で一重引用符を使用するか、バックスラッシュ文字で引用符をエスケープします。 jsonSpec プロパティには YAML のみを含めます。 メタデータや種類などの情報は含めないでください。 jsonSpec 内の期間を指定する必要はありませんが、使用可能な場合は使用されます。

サンプル JSON

{
  "name": "branchOne",
  "actions": [
    {
      "type": "continuous",
      "name": "urn:csci:microsoft:azureKubernetesServiceChaosMesh:dnsChaos/2.1",
      "parameters": [
        {
            "key": "jsonSpec",
            "value": "{\"action\":\"random\",\"mode\":\"all\",\"patterns\":[\"google.com\",\"chaos-mesh.*\",\"github.?om\"],\"selector\":{\"namespaces\":[\"default\"]}}"
        }
    ],
      "selectorid": "myResources"
    }
  ]
}

Cloud Services (クラシック) シャットダウン

プロパティ
機能名 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
説明 短時間の停止をシミュレートするために、ターゲット上で強制的な再起動操作を発生させます。
前提条件 該当なし
Urn urn:csci:microsoft:azureClusteredCacheForRedis:reboot/1.0
障害の種類 不連続。
パラメーター (キー、値)
rebootType PrimaryNode、SecondaryNode、AllNodes として指定できる、再起動アクションが実行されるノードの種類。
shardId 再起動されるシャードの ID。 Premium レベルのキャッシュにのみ関連します。

サンプル 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"
    }
  ]
}

制限事項

  • 再起動の障害では、停止イベントをより適切にシミュレートするために強制的な再起動が実行されます。つまり、データ損失が発生する可能性があります。
  • 再起動の障害は、離散的な障害の種類です。 連続した障害とは異なり、これは 1 回限りのアクションであり、期間はありません。

Cosmos DB のフェールオーバー

プロパティ
機能名 Failover-1.0
ターゲットの型 Microsoft-CosmosDB
説明 書き込みリージョン障害をシミュレートするために、1 つの書き込みリージョンを持つ 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 Event Hubs 名前空間内の目的の状態に設定します。 影響を与えるのは、特定のイベント ハブ名にすることも、"*" を使用して名前空間内のすべての名前にすることもできます。 このアクションは、メンテナンス シナリオや障害シナリオでのメッセージング インフラストラクチャのテストに役立ちます。 これは別個の障害であり、エンティティが開始時の状態に自動的に戻ることはありません。
前提条件 少なくとも 1 つのイベント ハブ エンティティを含むAzure Event Hubs 名前空間。
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
説明 Key Vault のネットワーク規則を一時的に変更することで、Key Vault へのすべてのネットワーク アクセスをブロックします。 このアクションにより、Key Vault に依存するアプリケーションがシークレット、キー、証明書にアクセスできなくなります。 Key Vault ですべてのネットワークへのアクセスが許可されている場合、この設定によって、選択したネットワークからのアクセスのみを許可するように変更されます。 障害の開始時は、許可リストに仮想ネットワークは含まれていません。 障害期間の終了時に、すべてのネットワークへのアクセスが許可されます。 Key Vault が、選択したネットワークからのアクセスのみを許可するように設定されている場合、許可リスト内のすべての仮想ネットワークは、障害の開始時に削除されます。 これらは、障害期間の終了時に復元されます。
前提条件 ターゲット Key Vault はファイアウォール規則を持つことができないため、Azure サービスがファイアウォールをバイパスできるように設定することはできません。 ターゲット Key Vault が、選択したネットワークからのアクセスのみを許可するように設定されている場合、少なくとも 1 つの仮想ネットワーク規則が必要です。 Key Vault を回復モードにすることはできません。
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 バイトが含まれている場合は Pkcs12、ASCII PEM でエンコードされたバイトが含まれている場合は Pem です。 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
ターゲットの型 Microsoft-NetworkSecurityGroup
説明 既存の Azure ネットワーク セキュリティ グループ (NSG) または一連の Azure NSG での操作または規則の作成を有効にします (規則の定義がセキュリティ グループにまたがって適用可能であることを前提にしています)。 適した用途
  • ダウンストリームまたはリージョン間の依存関係/非依存関係の停止のシミュレーション。
  • サービスのフェールオーバーを強制するロジックをトリガーすることが予想されるイベントのシミュレーション。
  • 監視または状態管理サービスからアクションをトリガーすることが予想されるイベントのシミュレーション。
  • Chaos Agent をデプロイできないネットワーク トラフィックをブロックまたは許可するための代替手段としての使用。
前提条件 なし。
Urn urn:csci:microsoft:networkSecurityGroup:securityRule/1.0
パラメーター (キー、値)
name 作成されるセキュリティ規則の一意の名前。 その NSG に同じ名前を持つ別の規則が既に存在する場合、この障害は失敗します。 先頭は文字または数字にする必要があります。 末尾は文字、数字、アンダー スコアのいずれかにします。 使用できるのは、文字、数字、アンダースコア、ピリオド、およびハイフンのみです。
protocol セキュリティ規則のプロトコル。 [任意]、[TCP]、[UDP]、または [ICMP] である必要があります。
sourceAddresses CIDR 形式の IP アドレスの JSON 区切り配列を表す文字列。 インバウンド規則のサービス タグ名 (AppService など) を指定することもできます。 アスタリスク * を使用し、すべてのソース IP に一致させることもできます。
destinationAddresses CIDR 形式の IP アドレスの JSON 区切り配列を表す文字列。 アウトバウンド規則のサービス タグ名 (AppService など) を指定することもできます。 アスタリスク * を使用し、すべての宛先 IP に一致させることもできます。
action セキュリティ グループのアクセスの種類。 [許可] または [拒否] のどちらかである必要があります。
destinationPortRanges 1 つのポートまたはポート範囲の JSON 区切り配列を表す文字列 (80 や 1024-65535 など)。
sourcePortRanges 1 つのポートまたはポート範囲の JSON 区切り配列を表す文字列 (80 や 1024-65535 など)。
priority NSG 内のすべてのセキュリティ規則に対して一意である 100 から 4096 の範囲の値。 その 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 分間アイドル状態になるまで中断されません。 1 つの回避策として、NSG の障害が適用されたときに既存の接続が切断されるようになる障害を使用する別の分岐を同じ手順で追加します。 たとえば、プロセスを強制終了するか、サービスを一時的に停止するか、または VM を再起動すると、接続がリセットされます。
  • 規則は、そのアクションの開始時に適用されます。 そのアクションの期間中に規則に外部からの変更が加えられると、実験は失敗します。
  • アプリケーション セキュリティ グループの規則の作成または変更はサポートされていません。
  • 優先順位の値は、対象となる各 NSG で一意である必要があります。 別の規則と同じ優先順位の値を持つ新しい規則を作成しようとすると、実験は失敗します。

Service Bus: キュー状態の変更

プロパティ
機能名 ChangeQueueState-1.0
ターゲットの型 Microsoft-ServiceBus
説明 Service Bus 名前空間内のキュー エンティティを目的の状態に設定します。 特定のエンティティ名に適用したり、“*” を使用してすべてに適用したりできます。 このアクションは、メンテナンス シナリオや障害シナリオでのメッセージング インフラストラクチャのテストに役立ちます。 これは別個の障害であり、エンティティが開始時の状態に自動的に戻ることはありません。
前提条件 キュー エンティティが少なくとも 1 つある Service Bus 名前空間。
Urn urn:csci:microsoft:serviceBus:changeQueueState/1.0
障害の種類 不連続。
パラメーター (キー、値)
desiredState 対象となるキューの目的の状態。 状態には、Active、Disabled、SendDisabled、ReceiveDisabled があります。
queues 対象となる名前空間内のキュー名のコンマ区切りリスト。 "*" を使用すると、名前空間内のすべてのキューに適用されます。

サンプル 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 個のキュー エンティティを渡すことができます。

Service Bus: サブスクリプション状態の変更

プロパティ
機能名 ChangeSubscriptionState-1.0
ターゲットの型 Microsoft-ServiceBus
説明 Service Bus 名前空間およびトピック内のサブスクリプション エンティティを目的の状態に設定します。 特定のエンティティ名に適用したり、“*” を使用してすべてに適用したりできます。 このアクションは、メンテナンス シナリオや障害シナリオでのメッセージング インフラストラクチャのテストに役立ちます。 これは別個の障害であり、エンティティが開始時の状態に自動的に戻ることはありません。
前提条件 サブスクリプション エンティティが少なくとも 1 つある Service Bus 名前空間。
Urn urn:csci:microsoft:serviceBus:changeSubscriptionState/1.0
障害の種類 不連続。
パラメーター (キー、値)
desiredState 対象となるサブスクリプションの目的の状態。 状態には Active と Disabled があります。
topic 適用対象となる 1 つ以上のサブスクリプションが含まれる親トピック。
subscriptions 対象となる名前空間内のサブスクリプション名のコンマ区切りリスト。 "*" を使用すると、名前空間内のすべてのサブスクリプションに適用されます。

サンプル 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 個のサブスクリプション エンティティを渡すことができます。

Service Bus: トピック状態の変更

プロパティ
機能名 ChangeTopicState-1.0
ターゲットの型 Microsoft-ServiceBus
説明 Service Bus 名前空間内の指定のトピック エンティティを目的の状態に設定します。 特定のエンティティ名に適用したり、“*” を使用してすべてに適用したりできます。 このアクションは、メンテナンス シナリオや障害シナリオでのメッセージング インフラストラクチャのテストに役立ちます。 これは別個の障害であり、エンティティが開始時の状態に自動的に戻ることはありません。
前提条件 トピック エンティティが少なくとも 1 つある Service Bus 名前空間。
Urn urn:csci:microsoft:serviceBus:changeTopicState/1.0
障害の種類 不連続。
パラメーター (キー、値)
desiredState 対象となるトピックの目的の状態。 状態には Active と Disabled があります。
topics 対象となる名前空間内のトピック名のコンマ区切りリスト。 "*" を使用すると、名前空間内のすべてのトピックに適用されます。

サンプル 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 個のトピック エンティティを渡すことができます。

VM の再デプロイ

プロパティ
機能名 Redeploy-1.0
ターゲットの型 Microsoft-VirtualMachine
説明 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 時間待って実験を再試行してください。

VM シャットダウン

プロパティ
機能名 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"
    }
  ]
}

VMSS Shutdown

この障害には、バージョン 1.0 とバージョン 2.0 の 2 つの使用可能なバージョンがあります。 主な違いは、バージョン 2.0 では可用性ゾーンでフィルター処理でき、指定した 1 つまたは複数のゾーン内のインスタンスのみをシャットダウンできる点です。

VMSS Shutdown バージョン 1.0

プロパティ
機能名 バージョン 1.0
ターゲットの型 Microsoft-VirtualMachineScaleSet
サポートされている OS の種類 Windows、Linux。
説明 障害中に仮想マシン スケール セット インスタンスをシャットダウンまたは強制終了し、障害期間の最後に、または実験が取り消された場合にその VM を再起動します。
前提条件 なし。
Urn urn:csci:microsoft:virtualMachineScaleSet:shutdown/1.0
パラメーター (キー、値)
abruptShutdown (省略可能) 仮想マシン スケール セット インスタンスを正常にシャットダウンするか、または突然シャットダウンするか (破壊的) を示すブール値。
instances 障害が適用される仮想マシン スケール セット インスタンス ID の区切られた配列である文字列。
バージョン 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"
    }
  ]
}

VMSS Shutdown バージョン 2.0

プロパティ
機能名 Shutdown-2.0
ターゲットの型 Microsoft-VirtualMachineScaleSet
サポートされている OS の種類 Windows、Linux。
説明 障害時に仮想マシン スケール セット インスタンスをシャットダウンまたは強制終了します。 障害の最後に、または実験が取り消された場合に VM を再起動します。 動的なターゲット設定をサポートします。
前提条件 なし。
Urn urn:csci:microsoft:virtualMachineScaleSet:shutdown/2.0
フィルター (省略可能) バージョン 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 仮想マシンのシャットダウン エラーを使用して、選択したインスタンスをシャットダウンできます。

詳細: オーケストレーション アクション

遅延

プロパティ
障害プロバイダー 該当なし
サポートされている OS の種類 該当なし
説明 他の実験アクションの前、間、または後に遅延時間を追加します。 このアクションは障害ではなく、実験中のアクションを同期するために使用されます。 このアクションを使用して、サービスに障害の影響が現れるまで待機したり、その実験の外部にあるアクティビティが完了するまで待機したりします。 たとえば、実験で別の障害を挿入する前に自動修復が実行されるまで待機する場合があります。
前提条件 該当なし
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 Load Testing)

プロパティ
機能名 Start-1.0
ターゲットの型 Microsoft-AzureLoadTest
説明 指定されたロード テスト ID に基づいて (Azure Load Testing から) ロード テストを開始します。
前提条件 有効なロード テスト ID のあるロード テストは Azure Load Testing サービスで作成する必要があります。
Urn urn:csci:microsoft:azureLoadTest:start/1.0
障害の種類 不連続。
パラメーター (キー、値)
testID Azure Load Testing サービスで作成された特定のロード テストの ID。

サンプル JSON

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

ロード テストの停止 (Azure Load Testing)

プロパティ
機能名 Stop-1.0
ターゲットの型 Microsoft-AzureLoadTest
説明 指定されたロード テスト ID に基づいて (Azure Load Testing から) ロード テストを停止します。
前提条件 有効なロード テスト ID のあるロード テストは Azure Load Testing サービスで作成する必要があります。
Urn urn:csci:microsoft:azureLoadTest:stop/1.0
障害の種類 不連続。
パラメーター (キー、値)
testID Azure Load Testing サービスで作成された特定のロード テストの ID。

サンプル JSON

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