Skip to content

Commit 2f37e34

Browse files
Merge pull request #250036 from rsgel/chaos-agentupdates-0823
initial changes for 08-23 agent faults
2 parents b8fe0e9 + 2654ba4 commit 2f37e34

File tree

1 file changed

+56
-26
lines changed

1 file changed

+56
-26
lines changed

articles/chaos-studio/chaos-studio-fault-library.md

Lines changed: 56 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ The faults listed in this article are currently available for use. To understand
4848
| Target type | Microsoft-Agent |
4949
| Supported OS types | Windows, Linux. |
5050
| Description | Adds CPU pressure, up to the specified value, on the VM where this fault is injected during the fault action. The artificial CPU pressure is removed at the end of the duration or if the experiment is canceled. On Windows, the **% Processor Utility** performance counter is used at fault start to determine current CPU percentage, which is subtracted from the `pressureLevel` defined in the fault so that **% Processor Utility** hits approximately the `pressureLevel` defined in the fault parameters. |
51-
| Prerequisites | **Linux**: Running the fault on a Linux VM requires the **stress-ng** utility to be installed. To install it, use the package manager for your Linux distro:<ul><li>APT command to install stress-ng: `sudo apt-get update && sudo apt-get -y install unzip && sudo apt-get -y install stress-ng`</li><li>YUM command to install stress-ng: `sudo dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm && sudo yum -y install stress-ng` |
51+
| Prerequisites | **Linux**: The **stress-ng** utility needs to be installed. This happens automatically as part of agent installation, using the default package manager, on Debian-based systems (including Ubuntu), Red Hat Enterprise Linux, CentOS, and OpenSUSE. For other distributions, you must install **stress-ng** manually. |
5252
| | **Windows**: None. |
5353
| Urn | urn:csci:microsoft:agent:cpuPressure/1.0 |
5454
| Parameters (key, value) |
@@ -93,7 +93,7 @@ Known issues on Linux:
9393
| Target type | Microsoft-Agent |
9494
| Supported OS types | Windows, Linux. |
9595
| Description | Adds physical memory pressure, up to the specified value, on the VM where this fault is injected during the fault action. The artificial physical memory pressure is removed at the end of the duration or if the experiment is canceled. |
96-
| Prerequisites | **Linux**: Running the fault on a Linux VM requires the **stress-ng** utility to be installed. To install it, use the package manager for your Linux distro:<ul><li>APT command to install stress-ng: `sudo apt-get update && sudo apt-get -y install unzip && sudo apt-get -y install stress-ng`</li><li>YUM command to install stress-ng: `sudo dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm && sudo yum -y install stress-ng` |
96+
| Prerequisites | **Linux**: The **stress-ng** utility needs to be installed. This happens automatically as part of agent installation, using the default package manager, on Debian-based systems (including Ubuntu), Red Hat Enterprise Linux, CentOS, and OpenSUSE. For other distributions, you must install **stress-ng** manually. |
9797
| | **Windows**: None. |
9898
| Urn | urn:csci:microsoft:agent:physicalMemoryPressure/1.0 |
9999
| Parameters (key, value) | |
@@ -173,14 +173,15 @@ Currently, the Windows agent doesn't reduce memory pressure when other applicati
173173

174174
| Property | Value |
175175
|-|-|
176-
| Capability name | DiskIOPressure-1.0 |
176+
| Capability name | DiskIOPressure-1.1 |
177177
| Target type | Microsoft-Agent |
178178
| Supported OS types | Windows |
179-
| Description | Uses the [diskspd utility](https://github.com/Microsoft/diskspd/wiki) to add disk pressure to the primary storage of the VM where it's injected during the fault action. This fault has five different modes of execution. The artificial disk pressure is removed at the end of the duration or if the experiment is canceled. |
179+
| Description | Uses the [diskspd utility](https://github.com/Microsoft/diskspd/wiki) to add disk pressure to a Virtual Machine. Pressure is added to the primary disk by default, or the disk specified with the targetTempDirectory parameter. This fault has five different modes of execution. The artificial disk pressure is removed at the end of the duration or if the experiment is canceled. |
180180
| Prerequisites | None. |
181-
| Urn | urn:csci:microsoft:agent:diskIOPressure/1.0 |
181+
| Urn | urn:csci:microsoft:agent:diskIOPressure/1.1 |
182182
| Parameters (key, value) | |
183183
| pressureMode | The preset mode of disk pressure to add to the primary storage of the VM. Must be one of the `PressureModes` in the following table. |
184+
| targetTempDirectory | (Optional) The directory to use for applying disk pressure. For example, "D:/Temp". If the parameter is not included, pressure is added to the primary disk. |
184185
| virtualMachineScaleSetInstances | An array of instance IDs when this fault is applied to a virtual machine scale set. Required for virtual machine scale sets. |
185186

186187
### Pressure modes
@@ -201,12 +202,16 @@ Currently, the Windows agent doesn't reduce memory pressure when other applicati
201202
"actions": [
202203
{
203204
"type": "continuous",
204-
"name": "urn:csci:microsoft:agent:diskIOPressure/1.0",
205+
"name": "urn:csci:microsoft:agent:diskIOPressure/1.1",
205206
"parameters": [
206207
{
207208
"key": "pressureMode",
208209
"value": "PremiumStorageP10IOPS"
209210
},
211+
{
212+
"key": "targetTempDirectory",
213+
"value": "C:/temp/"
214+
},
210215
{
211216
"key": "virtualMachineScaleSetInstances",
212217
"value": "[0,1,2]"
@@ -223,16 +228,17 @@ Currently, the Windows agent doesn't reduce memory pressure when other applicati
223228

224229
| Property | Value |
225230
|-|-|
226-
| Capability name | LinuxDiskIOPressure-1.0 |
231+
| Capability name | LinuxDiskIOPressure-1.1 |
227232
| Target type | Microsoft-Agent |
228233
| Supported OS types | Linux |
229-
| Description | Uses stress-ng to apply pressure to the disk. One or more worker processes are spawned that perform I/O processes with temporary files. For information on how pressure is applied, see the [stress-ng](https://wiki.ubuntu.com/Kernel/Reference/stress-ng) article. |
230-
| Prerequisites | Running the fault on a Linux VM requires the **stress-ng** utility to be installed. To install it, use the package manager for your Linux distro:<ul><li>APT command to install stress-ng: `sudo apt-get update && sudo apt-get -y install unzip && sudo apt-get -y install stress-ng`</li><li>YUM command to install stress-ng: `sudo dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm && sudo yum -y install stress-ng` |
231-
| Urn | urn:csci:microsoft:agent:linuxDiskIOPressure/1.0 |
234+
| Description | Uses stress-ng to apply pressure to the disk. One or more worker processes are spawned that perform I/O processes with temporary files. Pressure is added to the primary disk by default, or the disk specified with the targetTempDirectory parameter. For information on how pressure is applied, see the [stress-ng](https://wiki.ubuntu.com/Kernel/Reference/stress-ng) article. |
235+
| Prerequisites | The **stress-ng** utility needs to be installed. This happens automatically as part of agent installation, using the default package manager, on Debian-based systems (including Ubuntu), Red Hat Enterprise Linux, CentOS, and OpenSUSE. For other distributions, you must install **stress-ng** manually. |
236+
| Urn | urn:csci:microsoft:agent:linuxDiskIOPressure/1.1 |
232237
| Parameters (key, value) | |
233238
| workerCount | Number of worker processes to run. Setting `workerCount` to 0 generated as many worker processes as there are number of processors. |
234239
| fileSizePerWorker | Size of the temporary file that a worker performs I/O operations against. Integer plus a unit in bytes (b), kilobytes (k), megabytes (m), or gigabytes (g) (for example, 4 m for 4 megabytes and 256 g for 256 gigabytes). |
235240
| blockSize | Block size to be used for disk I/O operations, capped at 4 megabytes. Integer plus a unit in bytes, kilobytes, or megabytes (for example, 512 k for 512 kilobytes). |
241+
| targetTempDirectory | (Optional) The directory to use for applying disk pressure. For example, "/tmp/". If the parameter is not included, pressure is added to the primary disk. |
236242
| virtualMachineScaleSetInstances | An array of instance IDs when this fault is applied to a virtual machine scale set. Required for virtual machine scale sets. |
237243

238244
### Sample JSON
@@ -243,7 +249,7 @@ Currently, the Windows agent doesn't reduce memory pressure when other applicati
243249
"actions": [
244250
{
245251
"type": "continuous",
246-
"name": "urn:csci:microsoft:agent:linuxDiskIOPressure/1.0",
252+
"name": "urn:csci:microsoft:agent:linuxDiskIOPressure/1.1",
247253
"parameters": [
248254
{
249255
"key": "workerCount",
@@ -257,6 +263,10 @@ Currently, the Windows agent doesn't reduce memory pressure when other applicati
257263
"key": "blockSize",
258264
"value": "256k"
259265
},
266+
{
267+
"key": "targetTempDirectory",
268+
"value": "/tmp/"
269+
},
260270
{
261271
"key": "virtualMachineScaleSetInstances",
262272
"value": "[0,1,2]"
@@ -277,7 +287,7 @@ Currently, the Windows agent doesn't reduce memory pressure when other applicati
277287
| Target type | Microsoft-Agent |
278288
| Supported OS types | Linux |
279289
| Description | Runs any stress-ng command by passing arguments directly to stress-ng. Useful when one of the predefined faults for stress-ng doesn't meet your needs. |
280-
| Prerequisites | Running the fault on a Linux VM requires the **stress-ng** utility to be installed. To install it, use the package manager for your Linux distro:<ul><li>APT command to install stress-ng: `sudo apt-get update && sudo apt-get -y install unzip && sudo apt-get -y install stress-ng`</li><li>YUM command to install stress-ng: `sudo dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm && sudo yum -y install stress-ng` |
290+
| Prerequisites | The **stress-ng** utility needs to be installed. This happens automatically as part of agent installation, using the default package manager, on Debian-based systems (including Ubuntu), Red Hat Enterprise Linux, CentOS, and OpenSUSE. For other distributions, you must install **stress-ng** manually. |
281291
| Urn | urn:csci:microsoft:agent:stressNg/1.0 |
282292
| Parameters (key, value) | |
283293
| stressNgArguments | One or more arguments to pass to the stress-ng process. For information on possible stress-ng arguments, see the [stress-ng](https://wiki.ubuntu.com/Kernel/Reference/stress-ng) article. |
@@ -491,20 +501,26 @@ Currently, the Windows agent doesn't reduce memory pressure when other applicati
491501

492502
| Property | Value |
493503
|-|-|
494-
| Capability name | NetworkLatency-1.0 |
504+
| Capability name | NetworkLatency-1.1 |
495505
| Target type | Microsoft-Agent |
496506
| Supported OS types | Windows, Linux. |
497-
| Description | Increases network latency for a specified port range and network block. |
507+
| Description | Increases network latency for a specified port range and network block. At least one destinationFilter or inboundDestinationFilter array must be provided. |
498508
| Prerequisites | Agent (for Windows) must run as administrator. If the agent is installed as a VM extension, it runs as administrator by default. |
499-
| Urn | urn:csci:microsoft:agent:networkLatency/1.0 |
509+
| Urn | urn:csci:microsoft:agent:networkLatency/1.1 |
500510
| Parameters (key, value) | |
501511
| latencyInMilliseconds | Amount of latency to be applied in milliseconds. |
502-
| destinationFilters | Delimited JSON array of packet filters defining which outbound packets to target for fault injection. Maximum of 16. |
512+
| destinationFilters | Delimited JSON array of packet filters defining which outbound packets to target. Maximum of 16.|
513+
| inboundDestinationFilters | Delimited JSON array of packet filters defining which inbound packets to target. Maximum of 16. |
514+
| virtualMachineScaleSetInstances | An array of instance IDs when this fault is applied to a virtual machine scale set. Required for virtual machine scale sets. |
515+
516+
The parameters **destinationFilters** and **inboundDestinationFilters** use the following array of packet filters.
517+
518+
| Property | Value |
519+
|-|-|
503520
| address | IP address that indicates the start of the IP range. |
504521
| subnetMask | Subnet mask for the IP address range. |
505522
| portLow | (Optional) Port number of the start of the port range. |
506523
| portHigh | (Optional) Port number of the end of the port range. |
507-
| virtualMachineScaleSetInstances | An array of instance IDs when this fault is applied to a virtual machine scale set. Required for virtual machine scale sets. |
508524

509525
### Sample JSON
510526

@@ -514,12 +530,16 @@ Currently, the Windows agent doesn't reduce memory pressure when other applicati
514530
"actions": [
515531
{
516532
"type": "continuous",
517-
"name": "urn:csci:microsoft:agent:networkLatency/1.0",
533+
"name": "urn:csci:microsoft:agent:networkLatency/1.1",
518534
"parameters": [
519535
{
520536
"key": "destinationFilters",
521537
"value": "[ { \"address\": \"23.45.229.97\", \"subnetMask\": \"255.255.255.224\", \"portLow\": \"5000\", \"portHigh\": \"5200\" } ]"
522538
},
539+
{
540+
"key": "inboundDestinationFilters",
541+
"value": "[ { \"address\": \"23.45.229.97\", \"subnetMask\": \"255.255.255.224\", \"portLow\": \"5000\", \"portHigh\": \"5200\" } ]"
542+
},
523543
{
524544
"key": "latencyInMilliseconds",
525545
"value": "100",
@@ -545,19 +565,25 @@ Currently, the Windows agent doesn't reduce memory pressure when other applicati
545565

546566
| Property | Value |
547567
|-|-|
548-
| Capability name | NetworkDisconnect-1.0 |
568+
| Capability name | NetworkDisconnect-1.1 |
549569
| Target type | Microsoft-Agent |
550570
| Supported OS types | Windows, Linux. |
551-
| Description | Blocks outbound network traffic for specified port range and network block. |
571+
| Description | Blocks outbound network traffic for specified port range and network block. At least one destinationFilter or inboundDestinationFilter array must be provided. |
552572
| Prerequisites | Agent (for Windows) must run as administrator. If the agent is installed as a VM extension, it runs as administrator by default. |
553-
| Urn | urn:csci:microsoft:agent:networkDisconnect/1.0 |
573+
| Urn | urn:csci:microsoft:agent:networkDisconnect/1.1 |
554574
| Parameters (key, value) | |
555-
| destinationFilters | Delimited JSON array of packet filters defining which outbound packets to target for fault injection. Maximum of 16. |
575+
| destinationFilters | Delimited JSON array of packet filters defining which outbound packets to target. Maximum of 16.|
576+
| inboundDestinationFilters | Delimited JSON array of packet filters defining which inbound packets to target. Maximum of 16. |
577+
| virtualMachineScaleSetInstances | An array of instance IDs when this fault is applied to a virtual machine scale set. Required for virtual machine scale sets. |
578+
579+
The parameters **destinationFilters** and **inboundDestinationFilters** use the following array of packet filters.
580+
581+
| Property | Value |
582+
|-|-|
556583
| address | IP address that indicates the start of the IP range. |
557584
| subnetMask | Subnet mask for the IP address range. |
558585
| portLow | (Optional) Port number of the start of the port range. |
559586
| portHigh | (Optional) Port number of the end of the port range. |
560-
| virtualMachineScaleSetInstances | An array of instance IDs when this fault is applied to a virtual machine scale set. Required for virtual machine scale sets. |
561587

562588
### Sample JSON
563589

@@ -567,12 +593,16 @@ Currently, the Windows agent doesn't reduce memory pressure when other applicati
567593
"actions": [
568594
{
569595
"type": "continuous",
570-
"name": "urn:csci:microsoft:agent:networkDisconnect/1.0",
596+
"name": "urn:csci:microsoft:agent:networkDisconnect/1.1",
571597
"parameters": [
572598
{
573599
"key": "destinationFilters",
574600
"value": "[ { \"address\": \"23.45.229.97\", \"subnetMask\": \"255.255.255.224\", \"portLow\": \"5000\", \"portHigh\": \"5200\" } ]"
575601
},
602+
{
603+
"key": "inboundDestinationFilters",
604+
"value": "[ { \"address\": \"23.45.229.97\", \"subnetMask\": \"255.255.255.224\", \"portLow\": \"5000\", \"portHigh\": \"5200\" } ]"
605+
},
576606
{
577607
"key": "virtualMachineScaleSetInstances",
578608
"value": "[0,1,2]"
@@ -692,7 +722,7 @@ Currently, the Windows agent doesn't reduce memory pressure when other applicati
692722

693723
* The agent-based network faults currently only support IPv4 addresses.
694724

695-
## Azure Resource Manager virtual machine shutdown
725+
## Virtual Machine shutdown
696726
| Property | Value |
697727
|-|-|
698728
| Capability name | Shutdown-1.0 |
@@ -726,7 +756,7 @@ Currently, the Windows agent doesn't reduce memory pressure when other applicati
726756
}
727757
```
728758

729-
## Azure Resource Manager virtual machine scale set instance shutdown
759+
## Virtual Machine Scale Set instance shutdown
730760

731761
This fault has two available versions that you can use, Version 1.0 and Version 2.0. The main difference is that Version 2.0 allows you to filter by availability zones, only shutting down instances within a specified zone or zones.
732762

0 commit comments

Comments
 (0)