Skip to content

ExperimentDescription

LWagner edited this page May 9, 2022 · 1 revision

There are two ways of describing an Expierment in MiSim The first is a scenario-based description and the second a more general description. Both need to contain an experiment meta data description.

Meta data description

Property Description Mandatory Default Value
name The name of the experiment. X --
description A short (or long) description of the experiment. empty string
report_dir Location where to put the results. "./Report"
report_type Detail level of the report. "default"
duration The duration of the experiment. Defaults to infinity. Infinite
seed The randomizer seed for the experiment. Random
time_unit Reference unit that sets the type of the STU. This is a planned feature and will not parse for now. Seconds

These properties can be nested inside a "simulation_meta_data" element, but can also be placed at the root level of an experiment.

Scenario-based Experiment Description

Property Description
name The name of the experiment
artifact Affected Service
component Comma-separated list of affected Endpoints. ALL_ENDPOINTS is an available shortcut.
stimulus Actions during the Experiment.

Supported Stimuli

Property Description
LOAD \<LoadModelURI> Runs the arrival rate model found at the given URI/path. Optionally LOAD~ can be used for automatically repeating models.
START k@T Starts k instances of the artifact service at time T.
KILL <service_name> k@T Kills k instances of the artifact service at time T. If no k is given, all instances are killed. Using the optional parameter <service_name> other services may be killed.
DELAY D@T~I Delays all incoming request for the artifact by D (Distribution Expression) after Time T for I STU. The parameter ~I is not mandatory.

Multiple stimuli can be combined using the AND keyword.

Example

    {
    "simulation_meta_data": {
        "experiment_name": "Demo",
        "duration": 180,
        "seed": 404
    },
    "artifact": "gateway",
    "component": "ALL ENDPOINTS",
    "stimulus": "LOAD ./Examples/ProofOfConcept/linear_peaks_1000ArrivalRates.csv AND DELAY 3+-2.1@30~20"
    }

Generic Experiment Description

The generic description is more detailed than the scenario-based description and allows for a more accurate description. It has (besides the meta data declaration) only a single fixed property "request_generators", which is a list of work load generator descriptions.

Property Description
request_generators List of request generators

Everything else inside the description will be parsed as a fault load.

Example

    {
    "simulation_meta_data": {
        "experiment_name": "Demo",
        "duration": 180,
        "seed": 404
    },
    "request_generators": [
       List<LoadGeneratorDescription>
    ],
    "named_experiment_actions": <FaultLoadDescription>,
    "grouped_experiment_actions": [
        List<FaultLoadDescription>
    ]