actionMachine

stress_cpu

Stress CPU up to 100% at random machines

Activity as code

Below are the details and signature of the activity Python module.

Typeaction
Modulechaosazure.machine.actions
Namestress_cpu
ReturnNone

Usage

JSON

{
  "name": "stress-cpu",
  "type": "action",
  "provider": {
    "type": "python",
    "module": "chaosazure.machine.actions",
    "func": "stress_cpu"
  }
}

YAML

name: stress-cpu
provider:
  func: stress_cpu
  module: chaosazure.machine.actions
  type: python
type: action

Arguments

NameTypeDefaultRequiredTitleDescription
filterstringnullNoFilterTarget filter selector
durationinteger120NoDurationHow long to stress the machine for
timeoutinteger60NoTimeoutCompletion timeout

filter (str, optional): Filter the virtual machines. If the filter is omitted all machines in the subscription will be selected as potential chaos candidates.

duration (int, optional): Duration of the stress test (in seconds) that generates high CPU usage. Defaults to 120 seconds.

timeout (int): Additional wait time (in seconds) for stress operation to be completed. Getting and sending data from/to Azure may take some time so it’s not recommended to set this value to less than 30s. Defaults to 60 seconds.

Examples

Some calling examples. Deep dive into the filter syntax: https://docs.microsoft.com/en-us/azure/kusto/query/

# Stress all machines from the group 'rg'
> stress_cpu("where resourceGroup=='rg'", configuration=c, secrets=s)
# Stress the machine from the group 'rg' having the name 'name'
> stress_cpu("where resourceGroup=='rg' and name='name'",
                configuration=c, secrets=s)
# Stress two machines at random from the group 'rg'
> stress_cpu("where resourceGroup=='rg' | sample 2",
                configuration=c, secrets=s)

Signature

def stress_cpu(filter: str = None,
               duration: int = 120,
               timeout: int = 60,
               configuration: Dict[str, Dict[str, str]] = None,
               secrets: Dict[str, Dict[str, str]] = None):
    pass