Skip to content

FaultAndWorkloads

LWagner edited this page May 9, 2022 · 1 revision

Work Loads

Base Properties


All workload generators have a set of the following common properties:

Property Description Mandatory Default Value
operation Target endpoint that should be loaded X null
name Name of the workload "Generator"
initialArrivalTime Time when the generator should start. 0
stop Time when the generator should stop. Infinite
repeating Whether the workload should be repeated (if its not infinte). false
repetitions Number of repetitions of the workload. Infinite
repetionSkip Time to waint inbetween repeations. 0

Interval-based Workloads


The interval workload generator is used to generate requests with a periodic behavior.

Json Type Names

  • "interval"
  • "constant"
  • "fixed"

Properties

Property Description Mandatory Default Value
interval Interval of the workload. 1
load Number of requests send per interval 1
dist_strat Distribution of the load within the interval. Possible values are "even" (constant load) and "spike" (all requests at the start of the interval). "even"

Variable Workload


The variable workload generator is used to generate requests with a variable behavior based on a load model such as LIMBO.

Json Type Names

  • "limbo"
  • "limbo_generator"
  • "dynamic"
  • "variable"

Properties

Property Description Mandatory Default Value
model URI/Path of the load model. X null

Fault Loads

Chaos Monkey


Json Type Names

  • "chaosmonkey"
  • "chaos_monkey"
  • "monkey"

Properties

Property Description Default
arrival_time Time, when the injection should happen. 0 STU
instances The number of instances to be killed. Integer.MAX_VALUE
target Name of the target microservice. null

Delay Injection


Delays the receive operation of the affected endpoints.

Json Type Names

  • "delay"
  • "delay_injection"

Properties

Property Description Default
arrival_time Time, when the injection should happen. 0 STU
duration Duration for which the delay should be active. 0*
delay Distribution of the injected delay. null
target Name of the target microservice. null
operationSrc Name of an inbound operation to be delayed. null
operationTrg Name of an outgoing operation to be delayed. null

* A duration of 0 or smaller will result in an infinite delay.

Examples


//InExperiment Description
{
    ...
    "monkey1": { //a chaos monkey named "monkey1"
        "type": "monkey",
        "config": {
            "arrivalTime": 10,
            "target": "service1",
            "instances": 5
        }
    },
    "delays": [ //a group of injections (with a single element in this case)
        { //describe am anonymous delay injection event
            "type": "delay",
            "config": {
                "arrivalTime": 26.4387,
                "delay": "2.6+-1.1",
                "target": "service2"
            }
        }
    ]
    ...
}