[dpdk-dev] [PATCH v5 00/18] update and simplify telemetry library.

Wiles, Keith keith.wiles at intel.com
Fri May 1 16:41:02 CEST 2020



> On Apr 30, 2020, at 11:01 AM, Power, Ciara <ciara.power at intel.com> wrote:
> 
> v5:
>  - General cleanup to address comments on v4 patchset.
> 
> v4:
>  - Internal representation now uses generic data format instead of JSON.
>  - Help command added to provide help text for a command.
> 
> v3:
>  - Removed rte_option as it is no longer used.
>  - General cleanup.
> 
> v2:
>  - Added JSON API, and unit tests, to simplify creation of valid json
>    responses from libraries.
>  - Added printing of basic info, including max output buffer size, app
>    PID and DPDK version on connection.
>  - Added /info command to report that basic info post-connect. This
>    replaces the eal version command from v1.
>  - Renamed stats to xstats in commands to allow a future generic
>    "stats" call.
>  - Added documentation, including updating existing howto and adding
>    programmers guide section and API docs.
>  - Added link status command for ethdev ports.
>  - Fixed windows builds.
> 
> This patchset extensively reworks the telemetry library adding new
> functionality and simplifying much of the existing code, while
> maintaining backward compatibility.
> 
> This work is based on the previously sent RFC for a "process info"
> library: https://patchwork.dpdk.org/project/dpdk/list/?series=7741
> However, rather than creating a new library, this patchset takes
> that work and merges it into the existing telemetry library, as
> mentioned above.
> 
> The telemetry library as shipped in 19.11 is based upon the metrics
> library and outputs all statistics based on that as a source. However,
> this limits the telemetry output to only port-level statistics
> information, rather than allowing it to be used as a general scheme for
> telemetry information across all DPDK libraries.
> 
> With this patchset applied, rather than the telemetry library being
> responsible for pulling ethdev stats and pushing them into the metrics
> library for retrieval later, each library e.g. ethdev, rawdev, and even
> the metrics library itself (for backwards compatiblity) now handle their
> own stats.  Any library or app can register a callback function with
> telemetry, which will be called if requested by the client connected via
> the telemetry socket. The callback function in the library/app then
> formats its stats, or other data, into a generic data structure, and
> returns it to telemetry to be sent to the client in JSON format.
> 
> To maintain backward compatibility, e.g. to allow the dpdk telemetry
> collectd plugin to continue to work, some of the existing telemetry
> code is kept, but is moved into the metrics library, and callbacks are
> registered with telemetry for the legacy commands that were supported
> previously.
> 
> The new version of the library, apart from the legacy interface support
> for backward compatibility, does not have an external dependency on the
> Jansson library, allowing the library to be enabled by default.
> 
> Note: In this version of the patchset, telemetry output is provided by
> the ethdev, rawdev and eal libraries, but this may be expanded further
> in later versions which are planned ahead of the merge deadline for
> 20.05
> 
> Bruce Richardson (8):
>  build: add arch-specific header path to global includes
>  telemetry: invert dependency on metrics
>  telemetry: add utility functions for creating json
>  telemetry: introduce new telemetry functionality
>  telemetry: add functions for returning callback data
>  usertools: add new telemetry python script
>  ethdev: add callback support for telemetry
>  eal: add eal telemetry callbacks
> 
> Ciara Power (10):
>  telemetry: move code to metrics for later reuse
>  metrics: reduce code taken from telemetry
>  telemetry: add default callback commands
>  rawdev: add callback support for telemetry
>  examples/l3fwd-power: enable use of new telemetry
>  telemetry: introduce telemetry backward compatibility
>  telemetry: remove existing telemetry files
>  lib: add telemetry as eal dependency
>  eal: remove rte-option infrastructure
>  doc: update telemetry documentation
> 

For the few items I noted in my review, these have been corrected.
Acked-by: Keith Wiles <keith.wiles at intel.com>




More information about the dev mailing list