f-stack/dpdk/doc/guides/howto/telemetry.rst

94 lines
2.7 KiB
ReStructuredText
Raw Normal View History

2019-06-25 11:12:58 +00:00
.. SPDX-License-Identifier: BSD-3-Clause
2021-02-05 08:48:47 +00:00
Copyright(c) 2020 Intel Corporation.
2019-06-25 11:12:58 +00:00
2021-02-05 08:48:47 +00:00
DPDK Telemetry User Guide
=========================
2019-06-25 11:12:58 +00:00
2021-02-05 08:48:47 +00:00
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.
2019-06-25 11:12:58 +00:00
2021-02-05 08:48:47 +00:00
.. Note::
2020-06-18 16:55:50 +00:00
2021-02-05 08:48:47 +00:00
This library is experimental and the output format may change in the future.
2019-06-25 11:12:58 +00:00
2021-02-05 08:48:47 +00:00
Telemetry Interface
-------------------
2019-06-25 11:12:58 +00:00
2021-02-05 08:48:47 +00:00
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).
2019-06-25 11:12:58 +00:00
2021-02-05 08:48:47 +00:00
Telemetry Initialization
------------------------
2019-06-25 11:12:58 +00:00
2021-02-05 08:48:47 +00:00
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::
2019-06-25 11:12:58 +00:00
2021-02-05 08:48:47 +00:00
--telemetry
2019-06-25 11:12:58 +00:00
2021-02-05 08:48:47 +00:00
A flag exists to disable Telemetry also::
2019-06-25 11:12:58 +00:00
2021-02-05 08:48:47 +00:00
--no-telemetry
2019-06-25 11:12:58 +00:00
2021-02-05 08:48:47 +00:00
Running Telemetry
-----------------
2019-06-25 11:12:58 +00:00
2021-02-05 08:48:47 +00:00
The following steps show how to run an application with telemetry support,
and query information using the telemetry client python script.
2019-06-25 11:12:58 +00:00
2021-02-05 08:48:47 +00:00
#. Launch testpmd as the primary application with telemetry::
2019-06-25 11:12:58 +00:00
2021-02-05 08:48:47 +00:00
./app/dpdk-testpmd
2019-06-25 11:12:58 +00:00
2021-02-05 08:48:47 +00:00
#. Launch the telemetry client script::
2019-06-25 11:12:58 +00:00
2021-02-05 08:48:47 +00:00
./usertools/dpdk-telemetry.py
2019-06-25 11:12:58 +00:00
2021-02-05 08:48:47 +00:00
#. When connected, the script displays the following, waiting for user input::
2019-06-25 11:12:58 +00:00
2021-02-05 08:48:47 +00:00
Connecting to /var/run/dpdk/rte/dpdk_telemetry.v2
{"version": "DPDK 20.05.0-rc2", "pid": 60285, "max_output_len": 16384}
-->
2019-06-25 11:12:58 +00:00
2021-02-05 08:48:47 +00:00
#. The user can now input commands to send across the socket, and receive the
response. Some available commands are shown below.
2019-06-25 11:12:58 +00:00
2021-02-05 08:48:47 +00:00
* List all commands::
2019-06-25 11:12:58 +00:00
2021-02-05 08:48:47 +00:00
--> /
{"/": ["/", "/eal/app_params", "/eal/params", "/ethdev/list",
"/ethdev/link_status", "/ethdev/xstats", "/help", "/info"]}
2019-06-25 11:12:58 +00:00
2021-02-05 08:48:47 +00:00
* Get the list of ethdev ports::
--> /ethdev/list
{"/ethdev/list": [0, 1]}
.. Note::
For commands that expect a parameter, use "," to separate the command
and parameter. See examples below.
* Get extended statistics for an ethdev port::
--> /ethdev/xstats,0
{"/ethdev/xstats": {"rx_good_packets": 0, "tx_good_packets": 0,
"rx_good_bytes": 0, "tx_good_bytes": 0, "rx_missed_errors": 0,
...
"tx_priority7_xon_to_xoff_packets": 0}}
* Get the help text for a command. This will indicate what parameters are
required. Pass the command as a parameter::
--> /help,/ethdev/xstats
{"/help": {"/ethdev/xstats": "Returns the extended stats for a port.
Parameters: int port_id"}}