summaryrefslogtreecommitdiffstats
path: root/docs/testing/user/userguide/kibana.rst
blob: 68c3d38deb60ddeef9780775e36606799e14e1d6 (plain)
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
NFVbench Kibana visualization: overview
=======================================

The fluentd integration offers the possibility to use elasticsearch and kibana as a visualization chain.

Chain overview:

.. image:: images/nfvbench-kibana.png

Example of NFVbench visualizations
----------------------------------

Kibana offers a lot of visualization type (line and bar charts, pie, time series chart, data table ...) and also provide a plugin to develop graph using Vega.
In the below examples, visualizations are based on an NDR result and are developed using `Vega-lite <https://vega.github.io/vega-lite-v2>`_.
Data are aggregated using ``user_label`` and ``flow_count`` properties.

In ``kibana/visualizations/`` pre-created graphs are available into json files.

For NDR capacity in Gbps using line chart, the offered load in Gbps (``offered_tx_rate_bps``) is used and only the maximum value of the aggregation is kept.
For NDR capacity in Mpps using line chart, the actual TX rate is used (``rate_pps``) and only the maximum value of the aggregation is kept.

Scatter plot graphs use the same values but keep all values instead of keeping maximum.

Example of a line chart:

.. image:: images/nfvbench-kibana-gbps-line.png

Example of a scatter plot chart:

.. image:: images/nfvbench-kibana-pps-scatter.png

Vega offers the possibility to add another graph as a new layer of current graph.
This solution is used to combine NFVbench results and theoretical line rate.
Using ``extra_encapsulation_bytes`` in --user-info property (see `User info data section <https://opnfv-nfvbench.readthedocs.io/en/latest/testing/user/userguide/advanced.html#user-info-data>`_),
the theoretical max value (for bps and pps) will be calculated and can be used in graph through ``theoretical_tx_rate_bps`` and ``theoretical_tx_rate_pps`` properties.

Example of chart with theoretical value (red line):

.. image:: images/nfvbench-kibana-pps-theoretical.png

Each Vega graph can be moved, zoomed (using mouse scroll) and one set of data can be selected.

Example:

.. image:: images/nfvbench-kibana-zoom-selection.png

These visualizations are included into Kibana dashboard for a synthesis of one set of result (i.e. same ``user_label`` value) or for comparison (i.e. a selection of ``user_label`` values).
See :ref:`filterkibana` for more details about ``user_label`` selection.

All these visualizations and dashboards are saved into the ``export.ndjson`` file and can be imported in an existing Kibana. See :ref:`importkibana`.

.. _importkibana:

Import Kibana dashboards and visualization
------------------------------------------

To import Kibana dashboard and visualization:

.. code-block:: bash

    curl -X POST localhost:5601/api/saved_objects/_import -H "kbn-xsrf: true" --form file=@export.ndjson

.. note:: ``.kibana`` index must exists in elasticsearch.
.. note:: ``.kibana`` index is created automatically after a first deployment and configuration of Kibana.

.. _filterkibana:

Kibana user guide: Filter dashboards and visualizations
=======================================================

Filter Kibana dashboard or visualization using Kibana query language (KQL)
--------------------------------------------------------------------------

.. code-block:: bash

    user_label:*demo* and (flow_count: 128 or flow_count:130000 or flow_count:1000000)

.. note:: This query will filter all user label which contains ``demo`` in the value and filter 3 flow count (128, 130k, 1M).
.. note:: ``flow_count`` is a number so KQL query can not contain formatted string.

Example:

.. image:: images/nfvbench-kibana-filter-kql.png


Filter Kibana dashboard or visualization using Kibana filters
-------------------------------------------------------------

Kibana offers the possibility to add filter by selecting field and operator (is, is not, is one of, is not one of, exists, does not exist).

Example:

.. image:: images/nfvbench-kibana-filter.png