Structure output and make it less redundant 77/1677/2
authorJo¶rgen Karlsson <jorgen.w.karlsson@ericsson.com>
Wed, 16 Sep 2015 18:18:14 +0000 (20:18 +0200)
committerJörgen Karlsson <jorgen.w.karlsson@ericsson.com>
Tue, 22 Sep 2015 07:37:07 +0000 (07:37 +0000)
commit52fbce20e29b6dc7c5637b57b71de102c198b05a
tree114aff9e33743804917252c0ce9de4b776cfe1f1
parentb3cbb26122ecf69bfcbe9dd98d39b11b0c558412
Structure output and make it less redundant

Note: this commit replaces:
      https://gerrit.opnfv.org/gerrit/#/c/976/8

Adjusts the JSON output of the runners to follow a different structure,
laid out below. It is based upon the patch above but is not using the
output manager.

The purpose is to provide a unified basic layout (as already existed),
while making long data series much less repetitive and more space
efficient.

OUTPUT FORMAT:

------------------------------------------------------------------------

RUNNER PREP - printed exactly once per runner per scenario.
Runner MUST print this before sending any RUNNER DATA output
{
    runner_id: <int>
    scenario_cfg: {
        <scenario and runner config>
    }
}

where
    runner_id: ID of the runner sending this block
    scenario_cfg: scenario and runner configuration

------------------------------------------------------------------------

RUNNER DATA
runner may print any number of these AFTER having printed a RUNNER PREP
{
    runner_id: <int>
    benchmark: {
        <measurements>
    }
}

------------------------------------------------------------------------

The runner_id currently is not unique across runners as it is assigned
by noting the runner process id in the underlying operating system.

A possible improvement would be to assign runner_id an UUID value
according to RFC 4122 (e.g. uuid.uuid4() in python).

------------------------------------------------------------------------

Other changes/cleanups in this patch:

- Removed the context argument from _worker_process as it was
  redundant. It contained a dictionary with the runner configuration
  but the same dictionary was already in included in the scenario_args argument.

- For clarity renamed scenario_args to scenario_cfg. scenario_cfg was
  the original name used in task.py and it changed name across function calls.

Change-Id: I17d96f37c7d3e24b0747d23fcad7509fa949d662
JIRA: YARDSTICK-59
Signed-off-by: Jo¶rgen Karlsson <jorgen.w.karlsson@ericsson.com>
yardstick/benchmark/runners/arithmetic.py
yardstick/benchmark/runners/base.py
yardstick/benchmark/runners/duration.py
yardstick/benchmark/runners/iteration.py
yardstick/benchmark/runners/sequence.py