File: index.rst

package info (click to toggle)
rally 5.0.0-7
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 8,368 kB
  • sloc: python: 42,541; javascript: 487; sh: 198; makefile: 192; xml: 43
file content (380 lines) | stat: -rw-r--r-- 10,006 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
.. _task-component:

==============
Task Component
==============

This section describes Rally Task Component (including feature presented since
Rally v0.5.0, allowing to analyze statistics trends for the given tasks).

.. contents::
  :depth: 2
  :local:

HTML Reports
============

HTML reports provide comprehensive analysis.
Data is structured and displayed interactively, with charts and tables.

Task Report
-----------

Get the whole information about task workloads results, in pretty
and convenient format!

.. image:: ../images/Report-Collage.png

Generate report for single task, using task UUID
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Having a finished task, generate report with command:

.. code-block:: shell

  $ rally task report <task-uuid> --out <report-file>

Example:

.. code-block:: shell

  $ rally task report 6f63d9ec-eecd-4696-8e9c-2ba065c68535 --out report.html

Generate report for single task, using JSON file
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Report can be generated from a task results JSON file.
This file can be generated with command *rally task results*:

.. code-block:: shell

  $ rally task results 6f63d9ec-eecd-4696-8e9c-2ba065c68535 > results.json
  $ rally task report results.json --out report.html

Generate report for many tasks
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Report can be generated from many tasks. All workloads from specified
tasks results will be composed into an entire report.
To generate report, use *--tasks* argument with specified list of tasks UUIDs
and/or tasks results JSON files.

Example:

.. code-block:: shell

  $ rally task report --tasks 6f63d9ec-eecd-4696-8e9c-2ba065c68535 20ae7e95-7395-4be4-aec2-b89220adee60 a5737eba-a204-43d6-a262-d5ea4b0065da results.json another_results.json --out report.html

Task Overview
~~~~~~~~~~~~~

This is a table with brief summary of all workloads results.
All columns are sortable and clickable.

.. image:: ../images/Report-Task-Overview.png

Load duration
+++++++++++++

Time from first iteration start to last iteration end.
In other words, this is a time of all workload iterations execution.

Full duration
+++++++++++++

This time includes iterations time (`Load duration <#load-duration>`_)
plus time taken by another actions related to the task, mostly Contexts
execution time.

Iterations
++++++++++

How many times the workload has run. This comes from the value of
*runner.times* in task input file.

Failures
++++++++

Number of failed iterations. Failure means that there was an Exception raised.

Success (SLA)
+++++++++++++

This is a boolean result of workload SLA. See
`Service-level agreement explanation <#id2>`_ below.

Input file
~~~~~~~~~~

This shows JSON which can be used to run a task with exactly the same workloads
list and configuration. This is not an exact copy (neither concatenation) of
actually used input files (in command *rally task start*), however this is
exactly what is needed to run workloads given in the report.

.. image:: ../images/Report-Task-Input-file.png

Tab «Overview»
~~~~~~~~~~~~~~

Service-level agreement
+++++++++++++++++++++++

`SLA`_ results appear in task report only if *"sla"* section is defined in task
input file.

For example, having this in task input file:

  .. code-block:: json

    "sla": {
      "performance_degradation": {
        "max_degradation": 50
      },
      "max_seconds_per_iteration": 1.0,
      "failure_rate": {
        "max": 0
      },
      "outliers": {
        "max": 1,
        "min_iterations": 10,
        "sigmas": 10
      },
      "max_avg_duration": 0.5
    }

will result SLA section similar to the following:

.. image:: ../images/Report-Task-SLA.png


What if workload has no "sla" configuration in input file?
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

If *"sla"* section is missed in input file, then block *Service-level
agreement* is not displayed and its result is assumed to be always passed
(no matter how many failures occurred).

Total durations
+++++++++++++++

There is a durations analysis, which is represented by statistics table and
duration StackedArea chart.

.. image:: ../images/Report-Task-Total-durations.png

Table with statistics data
^^^^^^^^^^^^^^^^^^^^^^^^^^

**Action**
 Name of the workload metric that has some duration saved.
 This is either an atomic action name or *Total* which points to workload
 `load duration <#load-duration>`_.

**Min (sec)**
 `Minimal`_ duration value

**Median (sec)**
 `Median`_ duration value

**90%ile (sec)**
 `Percentile`_ for 90% durations

**95%ile (sec)**
 `Percentile`_ for 95% durations

**Max (sec)**
 `Maximal`_ duration value

**Avg (sec)**
 `Average`_ duration value

**Success**
 Percent of successful runs. This is how many percent of this action runs
 (number of runs is given in *Count* column) were successful.

**Count**
 Number of actually run atomic actions. This can differ from
 `iterations count <#iterations>`_ because some atomic actions do not start if
 some exception is raised before in the workload runtime (for example in
 previous atomic action).

StackedArea with durations per iteration
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

This chart shows `load_duration <#load-duration>`_ and `idle_duration <#id5>`_
values per iteration. If there is only one iteration, then chart is useless so
it is hidden.

Idle duration
^^^^^^^^^^^^^

Sometimes workload does nothing for some reason (waiting for something or just
making a dummy load). This is achieved by calling *time.sleep()* and spent time
is called *idle duration*.

Load Profile
++++++++++++

`Load profile`_ chart shows number of iterations running in parallel for each
workload moment:

.. image:: ../images/Report-Task-Load-profile.png

Distribution
++++++++++++

Pie chart shows percent of successful and failed `iterations <#iterations>`_.

Histogram shows durations distribution with the following `methods`_ (selected
in dropdown list): **Square Root Choice**, **Sturges Formula**, **Rise Rule**

.. image:: ../images/Report-Task-Distribution.png

Tab «Details»
~~~~~~~~~~~~~

Atomic Action Durations
+++++++++++++++++++++++

There is a StackedArea chart that shows atomic actions durations per iteration.
If there is only one iteration, then chart is useless so it is hidden.

.. image:: ../images/Report-Task-Actions-durations.png

Distribution
++++++++++++

`Distribution <#distribution>`_ for atomic actions durations

Tab «Scenario Data»
~~~~~~~~~~~~~~~~~~~

This tab only appears if workload provides some custom output via method
*Scenario.add_output()*.

Aggregated
++++++++++

This shows charts with data aggregated from all iterations.
This means that each X axis point represents an iteration, so each iteration
provided some values that are aggregated into charts or tables.

.. image:: ../images/Report-Task-Scenario-Data-Aggregated.png

Per iteration
+++++++++++++

Each iteration can create its own, complete charts and tables.

.. image:: ../images/Report-Task-Scenario-Data-Per-iteration.png

Tab «Failures»
++++++++++++++

Complete information about exceptions raised during the workload run

**Iteration**
 Number of iteration where exception is occurred

**Exception type**
 Type of raised Exception subclass

**Exception message**
 Message delivered by the exception

Click on a row expands it with exception traceback.

.. image:: ../images/Report-Task-Failures.png

Tab «Input Task»
~~~~~~~~~~~~~~~~

This shows JSON for input file which can be used to run current workload.

.. image:: ../images/Report-Task-Subtask-configuration.png

Trends Report
-------------

If same workload is run several times, some results of these runs can be
compared. Compared metrics are success rate (percent of successful iterations)
and statistics for durations.

How to generate trends report
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Use command *rally task trends* with given tasks UUIDs and/or tasks results
JSON files and the name of desired output file.

Example:

.. code-block:: shell

  $ rally task trends --tasks 6f63d9ec-eecd-4696-8e9c-2ba065c68535 a5737eba-a204-43d6-a262-d5ea4b0065da --out trends.html

What is an order of workload runs?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Workload run number in shown on charts X axis, the order of runs is exactly as
it comes from tasks data in the moment of report generation.

Trends overview
~~~~~~~~~~~~~~~

.. image:: ../images/Report-Trends-Overview.png

If workload has been actually run only once
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

That is obvious that it is not possible to have trend for a single value.
There should be at least two workload runs to make results comparison possible.
So in this case there is only a help message displayed.

.. image:: ../images/Report-Trends-single-run.png

Tab «Total»
~~~~~~~~~~~

Total durations
+++++++++++++++

Shows workload `load_duration <#load-duration>`_ statistics trends.

Total success rate
++++++++++++++++++

Shows trends for percent of successful iterations

.. image:: ../images/Report-Trends-Total.png

Tab «Atomic actions»
++++++++++++++++++++

Statistics trends for atomic actions durations.
Charts are same as for total durations.

.. image:: ../images/Report-Trends-Atomic-actions.png

Tab «Configuration»
+++++++++++++++++++

Here is a configuration JSON for current workload.

.. image:: ../images/Report-Trends-Configuration.png

CLI References
==============

For more information regarding Rally Task Component CLI please proceed
to `CLI reference <../cli_reference.html#category-task>`_

.. references:

.. _SLA: https://en.wikipedia.org/wiki/Service-level_agreement
.. _Minimal: https://en.wikipedia.org/wiki/Maxima_and_minima
.. _Median: https://en.wikipedia.org/wiki/Median
.. _Percentile: https://en.wikipedia.org/wiki/Percentile
.. _Maximal: https://en.wikipedia.org/wiki/Maxima_and_minima
.. _Average: https://en.wikipedia.org/wiki/Average
.. _Load profile: https://en.wikipedia.org/wiki/Load_profile
.. _methods: https://en.wikipedia.org/wiki/Histogram