> On Apr 30, 2020, at 11:01 AM, Power, Ciara <ciara.po...@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.wi...@intel.com>