-
Notifications
You must be signed in to change notification settings - Fork 0
Specs Reference
The machine-readable name of the test
name: mytestThe human-readable title of the test
title: My TestOne or more notes to include on the final report. This has no effect on the test.
notes:
Author: Ioannis
Scope: Bandwidth measurementsDefines global variables visible in macros all around the specifications.
globals:
bind_ip: 192.168.1.1 # Makes ${bind_ip} available everywhereWhich metrics is the test observing. These metrics will be included on the final report. You can specify various configuration options for each metric in order to properly format it's value.
While the test runs, roBob collects a series of values along with their timestamp that are later processed by an aggregator class in order to produce the final value of each metric. Refer to Aggregate Classes for more details regarding the possible values of the aggregate property.
By default roBob will calculate the average of the values.
metrics:
- name: metric1 # [Required] Metric name
prefix: si|iec # [Optional] Apply SI prefix (kilo,mega,...)
# or IEC (kibibyte,mibibyte,...)
units: "" # [Optional] The units of this metric
scale: 1.0 # [Optional] Multiply final result by this
initial: 0 # [Optional] The initial value of this metric
dec: 2 # [Optional] In case of float values, the number of decimals
showunits: false # [Optional] Set to 'true' to show units on every occurance
# of this metric rather than only in the title.
aggregate: [] # [Optional] One or more aggregation objects for this metric
aggregate:
- class: ... # [Optional] You can also configure each aggregator using this
... # syntax.Defines the test cases to run. The final test-cases will be calculated as the product of the individual test-cases specified in this entry. For example, the following will create 6 test cases: (1024,1), (1024,2), (2048,1), (2048,2) etc..
test-cases:
message_size: [ 1024, 2048, 4096 ]
interval: [ 1, 2 ]Defines the machines involved in the test:
Refer to Access Classes for more details regarding the possible values of the access property.
machines:
- name: machine1 # [Required] Machine name
host: 192.168.1.1 # [Required] Hostname or IP of the machine
access: # [Required] One or more access mechanisms
- class: ... # [Required] Name of the access class to sue
... # Each class has it's own specifics Defines the environment variable groups used in the applications. Each group can be used by one or more applications.
environments:
env1: # The name of the environment variable group
LD_LIBARY_PATH: ".." # The variables to expose to the applicationDefines the applications being controlled by the test:
apps:
- name: app1 # [Required] App name
binary: /path/to # [Required] Path to application binary
args: [ ] # [Optional] An array of arguments to pass to the binary
env: env1 # [Optional] Which environment variable group to use
parser: parser1 # [Optional] The name of the output parser to use
parsers: [ ] # [Optional] An array of output parsers to useDefines the parsers and configures them in order to parse the application output and update the metrics accordingly.
Refer to Parser Classes for more details regarding the possible values of the class property.
parsers:
- name: app1 # [Required] Parser name
class: robob... # [Required] Class name of this parser
... # Each class has it's own specific configurationDefines small scripts that runs in parallel with the monitored application and collects additional information that can be parsed with a separate parser. Each streamlet is a shell script that should run infinitely and will be interrupted when the main application exits.
There is already a collection of streamlets available
streamlets:
- name: streamlet1 # [Required] Streamlet name
script: | # [Required] The contents of the script to run
while true; do
uptime
sleep
done
title: Streamlet 1 # [Optional] Human-readable streamlet name
parser: parser1 # [Optional] The name of the output parser to use
parsers: [ ] # [Optional] An array of multiple parsers to useThe streams to open for running the test. Each stream is a separate application on a separate node.
streams:
- node: node1 # [Required] Node on which to run the app
app: app1 # [Required] The app to run
delay: 1[s|m|h] # [Optional] How long to wait before starting this stream
enabled: true # [Optional] Enable or disable this stream (useful when combined with macro)
define: # [Optional] Define a variable in this scope
macro: value
alias: # [Optional] Rename metrics collected in this context to a different name
new_name: old_name