[dpdk-dev] [PATCH v5 00/13] introduce telemetry library
Mattias Rönnblom
mattias.ronnblom at ericsson.com
Thu Oct 18 10:07:33 CEST 2018
Most of the issues I pointed out in v2 of this patchset is still here.
On 2018-10-16 17:57, Kevin Laatz wrote:
> This patchset introduces a Telemetry library for DPDK Service Assurance.
> This library provides an easy way to query DPDK Ethdev metrics.
>
> The telemetry library provides a method for a service assurance component
> to retrieve metrics from a DPDK packet forwarding application.
> Communicating from the service assurance component to DPDK is done using a
> UNIX domain socket, passing a JSON formatted string. A reply is sent (again
> a JSON formatted string) of the current DPDK metrics.
>
> The telemetry component makes use of the existing rte_metrics library to
> query values. The values to be transmitted via the telemetry infrastructure
> must be present in the Metrics library. Currently the ethdev values are
> pushed to the metrics library, and the queried from there there is an open
> question on how applications would like this to occur. Currently only
> ethdev to metrics functionality is implemented, however other subsystems
> like crypto, eventdev, keepalive etc can use similar mechanisms.
>
> Exposing DPDK Telemetry via a socket interface enables service assurance
> agents like collectd to consume data from DPDK. This is vital for
> monitoring, fault-detection, and error reporting. A collectd plugin has
> been created to interact with the DPDK Telemetry component, showing how it
> can be used in practice. The collectd plugin will be upstreamed to collectd
> at a later stage. A small python script is provided in
> ./usertools/telemetry_client.py to quick-start using DPDK Telemetry.
>
> Note: Despite opterr being set to 0, --telemetry said to be 'unrecognized'
> as a startup print. This is a cosmetic issue and will be addressed in the
> future.
>
> ---
> v2:
> - Reworked telemetry as part of EAL instead of using vdev (Gaetan)
> - Refactored rte_telemetry_command (Gaetan)
> - Added MAINTAINERS file entry (Stephen)
> - Updated docs to reflect vdev to eal rework
> - Removed collectd patch from patchset (Thomas)
> - General code clean up from v1 feedback
>
> v3:
> - Reworked registering with eal and moved to rte_param (Gaetan)
> - Added BSD implementation for rte_param (Gaetan)
> - Updated the paths to align with the new runtime file location (Mattias)
> - Fixed pointer checks to align with the coding style 1.8.1 (Mattias)
> - Added missing decref's and close's (Mattias)
> - Fixed runtime issue in Meson (was not recognising flag due to linking)
> - More general clean up
>
> v4:
> - Added Doxygen comments for rte_param.h (Thomas)
> - Made eal_get_runtime_dir a public function to use outside of EAL (Thomas)
> - Reworked telemetry to get path using rte_eal_get_runtime_dir (Thomas)
> - Fixed checkpatch coding style error
>
> v5:
> - Moved the BUF_SIZE define to fix build (Harry)
> - Set default config for telemetry to 'n' (Harry)
> - Improved Doxygen comments (Thomas)
> - Cleaned up rte_param struct (Thomas)
>
> Ciara Power, Brian Archbold and Kevin Laatz (10):
> telemetry: initial telemetry infrastructure
> telemetry: add initial connection socket
> telemetry: add client feature and sockets
> telemetry: add parser for client socket messages
> telemetry: update metrics before sending stats
> telemetry: format json response when sending stats
> telemetry: add tests for telemetry api
> telemetry: add ability to disable selftest
> doc: add telemetry documentation
> usertools: add client python script for telemetry
>
> Kevin Laatz (3):
> eal: add param register infrastructure
> eal: make get runtime dir function public
> build: add dependency on telemetry to apps in meson
>
> MAINTAINERS | 5 +
> app/meson.build | 4 +-
> app/pdump/meson.build | 2 +-
> app/proc-info/meson.build | 2 +-
> app/test-bbdev/meson.build | 2 +-
> app/test-crypto-perf/meson.build | 2 +-
> app/test-pmd/meson.build | 2 +-
> config/common_base | 5 +
> config/meson.build | 3 +
> doc/guides/howto/index.rst | 1 +
> doc/guides/howto/telemetry.rst | 85 +
> lib/Makefile | 2 +
> lib/librte_eal/bsdapp/eal/Makefile | 1 +
> lib/librte_eal/bsdapp/eal/eal.c | 20 +-
> lib/librte_eal/common/Makefile | 1 +
> lib/librte_eal/common/eal_filesystem.h | 14 +-
> lib/librte_eal/common/include/rte_eal.h | 9 +
> lib/librte_eal/common/include/rte_param.h | 91 ++
> lib/librte_eal/common/meson.build | 2 +
> lib/librte_eal/common/rte_param.c | 47 +
> lib/librte_eal/linuxapp/eal/Makefile | 1 +
> lib/librte_eal/linuxapp/eal/eal.c | 20 +-
> lib/librte_eal/rte_eal_version.map | 2 +
> lib/librte_telemetry/Makefile | 30 +
> lib/librte_telemetry/meson.build | 9 +
> lib/librte_telemetry/rte_telemetry.c | 1810 +++++++++++++++++++++
> lib/librte_telemetry/rte_telemetry.h | 48 +
> lib/librte_telemetry/rte_telemetry_internal.h | 81 +
> lib/librte_telemetry/rte_telemetry_parser.c | 586 +++++++
> lib/librte_telemetry/rte_telemetry_parser.h | 13 +
> lib/librte_telemetry/rte_telemetry_parser_test.c | 534 ++++++
> lib/librte_telemetry/rte_telemetry_parser_test.h | 39 +
> lib/librte_telemetry/rte_telemetry_socket_tests.h | 36 +
> lib/librte_telemetry/rte_telemetry_version.map | 7 +
> lib/meson.build | 3 +-
> meson.build | 1 +
> mk/rte.app.mk | 1 +
> usertools/dpdk-telemetry-client.py | 116 ++
> 38 files changed, 3618 insertions(+), 19 deletions(-)
> create mode 100644 doc/guides/howto/telemetry.rst
> create mode 100644 lib/librte_eal/common/include/rte_param.h
> create mode 100644 lib/librte_eal/common/rte_param.c
> create mode 100644 lib/librte_telemetry/Makefile
> create mode 100644 lib/librte_telemetry/meson.build
> create mode 100644 lib/librte_telemetry/rte_telemetry.c
> create mode 100644 lib/librte_telemetry/rte_telemetry.h
> create mode 100644 lib/librte_telemetry/rte_telemetry_internal.h
> create mode 100644 lib/librte_telemetry/rte_telemetry_parser.c
> create mode 100644 lib/librte_telemetry/rte_telemetry_parser.h
> create mode 100644 lib/librte_telemetry/rte_telemetry_parser_test.c
> create mode 100644 lib/librte_telemetry/rte_telemetry_parser_test.h
> create mode 100644 lib/librte_telemetry/rte_telemetry_socket_tests.h
> create mode 100644 lib/librte_telemetry/rte_telemetry_version.map
> create mode 100644 usertools/dpdk-telemetry-client.py
>
More information about the dev
mailing list