Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/47374/?format=api
http://patches.dpdk.org/api/patches/47374/?format=api", "web_url": "http://patches.dpdk.org/project/dpdk/patch/20181024160311.85457-12-kevin.laatz@intel.com/", "project": { "id": 1, "url": "http://patches.dpdk.org/api/projects/1/?format=api", "name": "DPDK", "link_name": "dpdk", "list_id": "dev.dpdk.org", "list_email": "dev@dpdk.org", "web_url": "http://core.dpdk.org", "scm_url": "git://dpdk.org/dpdk", "webscm_url": "http://git.dpdk.org/dpdk", "list_archive_url": "https://inbox.dpdk.org/dev", "list_archive_url_format": "https://inbox.dpdk.org/dev/{}", "commit_url_format": "" }, "msgid": "<20181024160311.85457-12-kevin.laatz@intel.com>", "list_archive_url": "https://inbox.dpdk.org/dev/20181024160311.85457-12-kevin.laatz@intel.com", "date": "2018-10-24T16:03:09", "name": "[v8,11/13] doc: add telemetry documentation", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": true, "hash": "08331bc10793e035ad7a90489fd5276cf8155589", "submitter": { "id": 921, "url": "http://patches.dpdk.org/api/people/921/?format=api", "name": "Kevin Laatz", "email": "kevin.laatz@intel.com" }, "delegate": { "id": 1, "url": "http://patches.dpdk.org/api/users/1/?format=api", "username": "tmonjalo", "first_name": "Thomas", "last_name": "Monjalon", "email": "thomas@monjalon.net" }, "mbox": "http://patches.dpdk.org/project/dpdk/patch/20181024160311.85457-12-kevin.laatz@intel.com/mbox/", "series": [ { "id": 2075, "url": "http://patches.dpdk.org/api/series/2075/?format=api", "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=2075", "date": "2018-10-24T16:02:58", "name": "introduce telemetry library", "version": 8, "mbox": "http://patches.dpdk.org/series/2075/mbox/" } ], "comments": "http://patches.dpdk.org/api/patches/47374/comments/", "check": "success", "checks": "http://patches.dpdk.org/api/patches/47374/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<dev-bounces@dpdk.org>", "X-Original-To": "patchwork@dpdk.org", "Delivered-To": "patchwork@dpdk.org", "Received": [ "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id AA2041B131;\n\tWed, 24 Oct 2018 18:04:22 +0200 (CEST)", "from mga14.intel.com (mga14.intel.com [192.55.52.115])\n\tby dpdk.org (Postfix) with ESMTP id B61451B1E6\n\tfor <dev@dpdk.org>; Wed, 24 Oct 2018 18:03:34 +0200 (CEST)", "from orsmga004.jf.intel.com ([10.7.209.38])\n\tby fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t24 Oct 2018 09:03:34 -0700", "from silpixa00397517.ir.intel.com (HELO\n\tsilpixa00397517.ger.corp.intel.com) ([10.237.222.54])\n\tby orsmga004.jf.intel.com with ESMTP; 24 Oct 2018 09:03:31 -0700" ], "X-Amp-Result": "SKIPPED(no attachment in message)", "X-Amp-File-Uploaded": "False", "X-ExtLoop1": "1", "X-IronPort-AV": "E=Sophos;i=\"5.54,420,1534834800\"; d=\"scan'208\";a=\"244010392\"", "From": "Kevin Laatz <kevin.laatz@intel.com>", "To": "dev@dpdk.org", "Cc": "harry.van.haaren@intel.com, stephen@networkplumber.org,\n\tgaetan.rivet@6wind.com, shreyansh.jain@nxp.com, thomas@monjalon.net, \n\tmattias.ronnblom@ericsson.com, bruce.richardson@intel.com,\n\tCiara Power <ciara.power@intel.com>,\n\tBrian Archbold <brian.archbold@intel.com>,\n\tKevin Laatz <kevin.laatz@intel.com>", "Date": "Wed, 24 Oct 2018 17:03:09 +0100", "Message-Id": "<20181024160311.85457-12-kevin.laatz@intel.com>", "X-Mailer": "git-send-email 2.9.5", "In-Reply-To": "<20181024160311.85457-1-kevin.laatz@intel.com>", "References": "<20181024132725.5142-1-kevin.laatz@intel.com>\n\t<20181024160311.85457-1-kevin.laatz@intel.com>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=UTF-8", "Content-Transfer-Encoding": "8bit", "Subject": "[dpdk-dev] [PATCH v8 11/13] doc: add telemetry documentation", "X-BeenThere": "dev@dpdk.org", "X-Mailman-Version": "2.1.15", "Precedence": "list", "List-Id": "DPDK patches and discussions <dev.dpdk.org>", "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>", "List-Archive": "<http://mails.dpdk.org/archives/dev/>", "List-Post": "<mailto:dev@dpdk.org>", "List-Help": "<mailto:dev-request@dpdk.org?subject=help>", "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org", "Sender": "\"dev\" <dev-bounces@dpdk.org>" }, "content": "From: Ciara Power <ciara.power@intel.com>\n\nThis patch adds all documentation for telemetry.\n\nA description on how to use the Telemetry API with a DPDK\napplication is given in this document.\n\nIt also adds the MAINTAINERS file entry and a release notes update for\ntelemetry.\n\nSigned-off-by: Ciara Power <ciara.power@intel.com>\nSigned-off-by: Brian Archbold <brian.archbold@intel.com>\nSigned-off-by: Kevin Laatz <kevin.laatz@intel.com>\nAcked-by: Harry van Haaren <harry.van.haaren@intel.com>\nAcked-by: Marko Kovacevic <marko.kovacevic@intel.com>\n---\n MAINTAINERS | 5 ++\n doc/guides/howto/index.rst | 1 +\n doc/guides/howto/telemetry.rst | 85 ++++++++++++++++++++++++++++++++++\n doc/guides/rel_notes/release_18_11.rst | 6 +++\n 4 files changed, 97 insertions(+)\n create mode 100644 doc/guides/howto/telemetry.rst", "diff": "diff --git a/MAINTAINERS b/MAINTAINERS\nindex b220479..6b64c15 100644\n--- a/MAINTAINERS\n+++ b/MAINTAINERS\n@@ -1208,6 +1208,11 @@ F: test/bpf/\n F: test/test/test_bpf.c\n F: doc/guides/prog_guide/bpf_lib.rst\n \n+Telemetry - EXPERIMENTAL\n+M: Kevin Laatz <kevin.laatz@intel.com>\n+F: lib/librte_telemetry/\n+F: usertools/dpdk-telemetry-client.py\n+F: doc/guides/howto/telemetry.rst\n \n Test Applications\n -----------------\ndiff --git a/doc/guides/howto/index.rst b/doc/guides/howto/index.rst\nindex e13a090..a642a2b 100644\n--- a/doc/guides/howto/index.rst\n+++ b/doc/guides/howto/index.rst\n@@ -17,3 +17,4 @@ HowTo Guides\n virtio_user_for_container_networking\n virtio_user_as_exceptional_path\n packet_capture_framework\n+ telemetry\ndiff --git a/doc/guides/howto/telemetry.rst b/doc/guides/howto/telemetry.rst\nnew file mode 100644\nindex 0000000..3fcb061\n--- /dev/null\n+++ b/doc/guides/howto/telemetry.rst\n@@ -0,0 +1,85 @@\n+.. SPDX-License-Identifier: BSD-3-Clause\n+ Copyright(c) 2018 Intel Corporation.\n+\n+DPDK Telemetry API User Guide\n+==============================\n+\n+This document describes how the Data Plane Development Kit(DPDK) Telemetry API\n+is used for querying port statistics from incoming traffic.\n+\n+Introduction\n+------------\n+\n+The ``librte_telemetry`` provides the functionality so that users may query\n+metrics from incoming port traffic. The application which initializes packet\n+forwarding will act as the server, sending metrics to the requesting application\n+which acts as the client.\n+\n+In DPDK, applications are used to initialize the ``telemetry``. To view incoming\n+traffic on featured ports, the application should be run first (ie. after ports\n+are configured). Once the application is running, the service assurance agent\n+(for example the collectd plugin) should be run to begin querying the API.\n+\n+A client connects their Service Assurance application to the DPDK application\n+via a UNIX socket. Once a connection is established, a client can send JSON\n+messages to the DPDK application requesting metrics via another UNIX client.\n+This request is then handled and parsed if valid. The response is then\n+formatted in JSON and sent back to the requesting client.\n+\n+Pre-requisites\n+~~~~~~~~~~~~~~\n+\n+* Python ≥ 2.5\n+\n+* Jansson library for JSON serialization\n+\n+Test Environment\n+----------------\n+\n+``telemetry`` offers a range of selftests that a client can run within\n+the DPDK application.\n+\n+Selftests are disabled by default. They can be enabled by setting the 'selftest'\n+variable to 1 in rte_telemetry_initial_accept().\n+\n+Note: this 'hardcoded' value is temporary.\n+\n+Configuration\n+-------------\n+\n+Enable the telemetry API by modifying the following config option before\n+building DPDK::\n+\n+ CONFIG_RTE_LIBRTE_TELEMETRY=y\n+\n+Note: Meson will pick this up automatically if ``libjansson`` is available.\n+\n+Running the Application\n+-----------------------\n+\n+The following steps demonstrate how to run the ``telemetry`` API to query all\n+statistics on all active ports, using the ``telemetry_client`` python script\n+to query.\n+Note: This guide assumes packet generation is applicable and the user is\n+testing with testpmd as a DPDK primary application to forward packets, although\n+any DPDK application is applicable.\n+\n+#. Launch testpmd as the primary application with ``telemetry``.::\n+\n+ ./app/testpmd --telemetry\n+\n+#. Launch the ``telemetry`` python script with a client filepath.::\n+\n+ python usertools/telemetry_client.py /var/run/some_client\n+\n+ The client filepath is going to be used to setup our UNIX connection with the\n+ DPDK primary application, in this case ``testpmd``\n+ This will initialize a menu where a client can proceed to recursively query\n+ statistics, request statistics once or unregister the file_path, thus exiting\n+ the menu.\n+\n+#. Send traffic to any or all available ports from a traffic generator.\n+ Select a query option(recursive or singular polling).\n+ The metrics will then be displayed on the client terminal in JSON format.\n+\n+#. Once finished, unregister the client using the menu command.\ndiff --git a/doc/guides/rel_notes/release_18_11.rst b/doc/guides/rel_notes/release_18_11.rst\nindex 04f3745..e82c790 100644\n--- a/doc/guides/rel_notes/release_18_11.rst\n+++ b/doc/guides/rel_notes/release_18_11.rst\n@@ -189,6 +189,12 @@ New Features\n the specified port. The port must be stopped before the command call in order\n to reconfigure queues.\n \n+* **Added Telemetry API.**\n+\n+ Added the telemetry API which allows applications to transparently expose\n+ their telemetry via a UNIX socket in JSON. The JSON can be consumed by any\n+ Service Assurance agent, such as CollectD.\n+\n * **Add a new sample for vDPA**\n \n The vdpa sample application creates vhost-user sockets by using the\n", "prefixes": [ "v8", "11/13" ] }{ "id": 47374, "url": "