numam-dpdk/doc/guides/howto/telemetry.rst
Ciara Power 24cd1b529f doc: update telemetry guides
The existing documentation for Telemetry is updated, and further
documentation is added.

Signed-off-by: Ciara Power <ciara.power@intel.com>
Reviewed-by: Keith Wiles <keith.wiles@intel.com>
2020-05-11 00:37:16 +02:00

81 lines
2.1 KiB
ReStructuredText

.. SPDX-License-Identifier: BSD-3-Clause
Copyright(c) 2020 Intel Corporation.
DPDK Telemetry User Guide
=========================
The Telemetry library provides users with the ability to query DPDK for
telemetry information, currently including information such as ethdev stats,
ethdev port list, and eal parameters.
.. Note::
This library is experimental and the output format may change in the future.
Telemetry Interface
-------------------
The :doc:`../prog_guide/telemetry_lib` opens a socket with path
*<runtime_directory>/dpdk_telemetry.<version>*. The version represents the
telemetry version, the latest is v2. For example, a client would connect to a
socket with path */var/run/dpdk/\*/dpdk_telemetry.v2* (when the primary process
is run by a root user).
Telemetry Initialization
------------------------
The library is enabled by default, however an EAL flag to enable the library
exists, to provide backward compatibility for the previous telemetry library
interface.
.. code-block:: console
--telemetry
A flag exists to disable Telemetry also.
.. code-block:: console
--no-telemetry
Running Telemetry
-----------------
The following steps show how to run an application with telemetry support,
and query information using the telemetry client python script.
#. Launch testpmd as the primary application with telemetry.
.. code-block:: console
./app/dpdk-testpmd
#. Launch the telemetry client script.
.. code-block:: console
python usertools/dpdk-telemetry.py
#. When connected, the script displays the following, waiting for user input.
.. code-block:: console
Connecting to /var/run/dpdk/rte/dpdk_telemetry.v2
{"version": "DPDK 20.05.0-rc0", "pid": 60285, "max_output_len": 16384}
-->
#. The user can now input commands to send across the socket, and receive the
response.
.. code-block:: console
--> /
{"/": ["/", "/eal/app_params", "/eal/params", "/ethdev/list",
"/ethdev/link_status", "/ethdev/xstats", "/help", "/info"]}
--> /ethdev/list
{"/ethdev/list": [0, 1]}