Show a cover letter.

GET /api/covers/47362/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 47362,
    "url": "http://patches.dpdk.org/api/covers/47362/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/cover/20181024160311.85457-1-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-1-kevin.laatz@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20181024160311.85457-1-kevin.laatz@intel.com",
    "date": "2018-10-24T16:02:58",
    "name": "[v8,00/13] introduce telemetry library",
    "submitter": {
        "id": 921,
        "url": "http://patches.dpdk.org/api/people/921/?format=api",
        "name": "Kevin Laatz",
        "email": "kevin.laatz@intel.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/cover/20181024160311.85457-1-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/covers/47362/comments/",
    "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 DB4007EC7;\n\tWed, 24 Oct 2018 18:03:02 +0200 (CEST)",
            "from mga04.intel.com (mga04.intel.com [192.55.52.120])\n\tby dpdk.org (Postfix) with ESMTP id 533195F51\n\tfor <dev@dpdk.org>; Wed, 24 Oct 2018 18:03:00 +0200 (CEST)",
            "from orsmga004.jf.intel.com ([10.7.209.38])\n\tby fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t24 Oct 2018 09:02:59 -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:02:55 -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=\"244010215\"",
        "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\tKevin Laatz <kevin.laatz@intel.com>",
        "Date": "Wed, 24 Oct 2018 17:02:58 +0100",
        "Message-Id": "<20181024160311.85457-1-kevin.laatz@intel.com>",
        "X-Mailer": "git-send-email 2.9.5",
        "In-Reply-To": "<20181024132725.5142-1-kevin.laatz@intel.com>",
        "References": "<20181024132725.5142-1-kevin.laatz@intel.com>",
        "Subject": "[dpdk-dev] [PATCH v8 00/13] introduce telemetry library",
        "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": "This patchset introduces a Telemetry library for DPDK Service Assurance.\nThis library provides an easy way to query DPDK Ethdev metrics.\n\nThe telemetry library provides a method for a service assurance component\nto retrieve metrics from a DPDK packet forwarding application.\nCommunicating from the service assurance component to DPDK is done using a\nUNIX domain socket, passing a JSON formatted string. A reply is sent (again\na JSON formatted string) of the current DPDK metrics.\n\nThe telemetry component makes use of the existing rte_metrics library to\nquery values. The values to be transmitted via the telemetry infrastructure\nmust be present in the Metrics library. Currently the ethdev values are\npushed to the metrics library, and the queried from there  there is an open\nquestion on how applications would like this to occur. Currently only\nethdev to metrics functionality is implemented, however other subsystems\nlike crypto, eventdev, keepalive etc can use similar mechanisms.\n\nExposing DPDK Telemetry via a socket interface enables service assurance\nagents like collectd to consume data from DPDK. This is vital for\nmonitoring, fault-detection, and error reporting. A collectd plugin has\nbeen created to interact with the DPDK Telemetry component, showing how it\ncan be used in practice. The collectd plugin will be upstreamed to collectd\nat a later stage.  A small python script is provided in\n./usertools/telemetry_client.py to quick-start using DPDK Telemetry.\n\nNote: Despite opterr being set to 0, --telemetry said to be 'unrecognized'\nas a startup print. This is a cosmetic issue and will be addressed in the\nfuture.\n\n---\nv2:\n   - Reworked telemetry as part of EAL instead of using vdev (Gaetan)\n   - Refactored rte_telemetry_command (Gaetan)\n   - Added MAINTAINERS file entry (Stephen)\n   - Updated docs to reflect vdev to eal rework\n   - Removed collectd patch from patchset (Thomas)\n   - General code clean up from v1 feedback\n\nv3:\n  - Reworked registering with eal and moved to rte_param (Gaetan)\n  - Added BSD implementation for rte_param (Gaetan)\n  - Updated the paths to align with the new runtime file location (Mattias)\n  - Fixed pointer checks to align with the coding style 1.8.1 (Mattias)\n  - Added missing decref's and close's (Mattias)\n  - Fixed runtime issue in Meson (was not recognising flag due to linking)\n  - More general clean up\n\nv4:\n  - Added Doxygen comments for rte_param.h (Thomas)\n  - Made eal_get_runtime_dir a public function to use outside of EAL (Thomas)\n  - Reworked telemetry to get path using rte_eal_get_runtime_dir (Thomas)\n  - Fixed checkpatch coding style error\n\nv5:\n  - Moved the BUF_SIZE define to fix build (Harry)\n  - Set default config for telemetry to 'n' (Harry)\n  - Improved Doxygen comments (Thomas)\n  - Cleaned up rte_param struct (Thomas)\n\nv6:\n  - Renamed rte_param to rte_option (Thomas)\n  - Moved internal functions to eal_private.h (Gaetan)\n  - Added fail check for pthread_attr_init() (Mattias)\n  - Changed socket implementation to SOCK_SEQPACKET (Mattias)\n  - Added check to avoid option duplicates (Gaetan)\n  - Removed telemetry example from Doxygen comment (Gaetan)\n  - General Doxygen clean-up (Thomas)\n  - General code clean-up (Mattias)\n\nv7:\n  - Fix object leak (Mattias)\n  - General clean-up (Mattias)\n  - Fix rte_option header define\n  - Added release note update\n  - Rebased\n\nv8:\n  - Added missing experimental tags\n  - Added Gaetan's Ack from ML\n\nCiara Power, Brian Archbold and Kevin Laatz (10):\n  telemetry: initial telemetry infrastructure\n  telemetry: add initial connection socket\n  telemetry: add client feature and sockets\n  telemetry: add parser for client socket messages\n  telemetry: update metrics before sending stats\n  telemetry: format json response when sending stats\n  telemetry: add tests for telemetry api\n  telemetry: add ability to disable selftest\n  doc: add telemetry documentation\n  usertools: add client python script for telemetry\n\nKevin Laatz (3):\n  eal: add option register infrastructure\n  eal: make get runtime dir function public\n  build: add dependency on telemetry to apps in meson\n\n MAINTAINERS                                       |    5 +\n app/meson.build                                   |    4 +-\n app/pdump/meson.build                             |    2 +-\n app/proc-info/meson.build                         |    2 +-\n app/test-bbdev/meson.build                        |    2 +-\n app/test-crypto-perf/meson.build                  |    2 +-\n app/test-pmd/meson.build                          |    2 +-\n config/common_base                                |    5 +\n config/meson.build                                |    3 +\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 lib/Makefile                                      |    2 +\n lib/librte_eal/bsdapp/eal/Makefile                |    1 +\n lib/librte_eal/bsdapp/eal/eal.c                   |   16 +-\n lib/librte_eal/common/Makefile                    |    1 +\n lib/librte_eal/common/eal_filesystem.h            |   15 +-\n lib/librte_eal/common/eal_private.h               |   21 +\n lib/librte_eal/common/include/rte_eal.h           |    9 +\n lib/librte_eal/common/include/rte_option.h        |   63 +\n lib/librte_eal/common/meson.build                 |    2 +\n lib/librte_eal/common/rte_option.c                |   54 +\n lib/librte_eal/linuxapp/eal/Makefile              |    1 +\n lib/librte_eal/linuxapp/eal/eal.c                 |   16 +-\n lib/librte_eal/rte_eal_version.map                |    2 +\n lib/librte_telemetry/Makefile                     |   30 +\n lib/librte_telemetry/meson.build                  |    9 +\n lib/librte_telemetry/rte_telemetry.c              | 1815 +++++++++++++++++++++\n lib/librte_telemetry/rte_telemetry.h              |   57 +\n lib/librte_telemetry/rte_telemetry_internal.h     |   81 +\n lib/librte_telemetry/rte_telemetry_parser.c       |  586 +++++++\n lib/librte_telemetry/rte_telemetry_parser.h       |   13 +\n lib/librte_telemetry/rte_telemetry_parser_test.c  |  534 ++++++\n lib/librte_telemetry/rte_telemetry_parser_test.h  |   39 +\n lib/librte_telemetry/rte_telemetry_socket_tests.h |   36 +\n lib/librte_telemetry/rte_telemetry_version.map    |    9 +\n lib/meson.build                                   |    3 +-\n meson.build                                       |    1 +\n mk/rte.app.mk                                     |    1 +\n usertools/dpdk-telemetry-client.py                |  116 ++\n 40 files changed, 3633 insertions(+), 19 deletions(-)\n create mode 100644 doc/guides/howto/telemetry.rst\n create mode 100644 lib/librte_eal/common/include/rte_option.h\n create mode 100644 lib/librte_eal/common/rte_option.c\n create mode 100644 lib/librte_telemetry/Makefile\n create mode 100644 lib/librte_telemetry/meson.build\n create mode 100644 lib/librte_telemetry/rte_telemetry.c\n create mode 100644 lib/librte_telemetry/rte_telemetry.h\n create mode 100644 lib/librte_telemetry/rte_telemetry_internal.h\n create mode 100644 lib/librte_telemetry/rte_telemetry_parser.c\n create mode 100644 lib/librte_telemetry/rte_telemetry_parser.h\n create mode 100644 lib/librte_telemetry/rte_telemetry_parser_test.c\n create mode 100644 lib/librte_telemetry/rte_telemetry_parser_test.h\n create mode 100644 lib/librte_telemetry/rte_telemetry_socket_tests.h\n create mode 100644 lib/librte_telemetry/rte_telemetry_version.map\n create mode 100644 usertools/dpdk-telemetry-client.py"
}