Show a cover letter.

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

{
    "id": 47492,
    "url": "http://patches.dpdk.org/api/covers/47492/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/cover/20181026235933.79779-1-harry.van.haaren@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": "<20181026235933.79779-1-harry.van.haaren@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20181026235933.79779-1-harry.van.haaren@intel.com",
    "date": "2018-10-26T23:59:21",
    "name": "[v9,00/12] Introduce Telemetry Library",
    "submitter": {
        "id": 317,
        "url": "http://patches.dpdk.org/api/people/317/?format=api",
        "name": "Van Haaren, Harry",
        "email": "harry.van.haaren@intel.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/cover/20181026235933.79779-1-harry.van.haaren@intel.com/mbox/",
    "series": [
        {
            "id": 2127,
            "url": "http://patches.dpdk.org/api/series/2127/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=2127",
            "date": "2018-10-26T23:59:21",
            "name": "Introduce Telemetry Library",
            "version": 9,
            "mbox": "http://patches.dpdk.org/series/2127/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/covers/47492/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 F164D2B94;\n\tSat, 27 Oct 2018 02:00:03 +0200 (CEST)",
            "from mga01.intel.com (mga01.intel.com [192.55.52.88])\n\tby dpdk.org (Postfix) with ESMTP id 312222B94\n\tfor <dev@dpdk.org>; Sat, 27 Oct 2018 02:00:02 +0200 (CEST)",
            "from orsmga001.jf.intel.com ([10.7.209.18])\n\tby fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t26 Oct 2018 17:00:00 -0700",
            "from silpixa00399779.ir.intel.com (HELO\n\tsilpixa00399779.ger.corp.intel.com) ([10.237.223.188])\n\tby orsmga001.jf.intel.com with ESMTP; 26 Oct 2018 16:59:58 -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,429,1534834800\"; d=\"scan'208\";a=\"103041946\"",
        "From": "Harry van Haaren <harry.van.haaren@intel.com>",
        "To": "dev@dpdk.org",
        "Cc": "thomas@monjalon.net, bruce.richardson@intel.com,\n\tstephen@networkplumber.org, gaetan.rivet@6wind.com,\n\tshreyansh.jain@nxp.com, mattias.ronnblom@ericsson.com,\n\tHarry van Haaren <harry.van.haaren@intel.com>",
        "Date": "Sat, 27 Oct 2018 00:59:21 +0100",
        "Message-Id": "<20181026235933.79779-1-harry.van.haaren@intel.com>",
        "X-Mailer": "git-send-email 2.17.1",
        "In-Reply-To": "<20181024160311.85457-1-kevin.laatz@intel.com>",
        "References": "<20181024160311.85457-1-kevin.laatz@intel.com>",
        "Subject": "[dpdk-dev] [PATCH v9 00/12] 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\nv9:\n  - Added doxygen to build (Thomas)\n  - Added doxygen @file tag (Thomas)\n  - Detect jansson library dynamically with Make/pkg-config (Thomas)\n  - Make jansson optional build-dep for Meson (Thomas/Bruce)\n\n\nCiara Power (9):\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 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/api/doxy-api-index.md                     |    3 +-\n doc/api/doxy-api.conf.in                      |    1 +\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              |   15 +\n lib/librte_telemetry/rte_telemetry.c          | 1815 +++++++++++++++++\n lib/librte_telemetry/rte_telemetry.h          |   66 +\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   |   14 +\n .../rte_telemetry_parser_test.c               |  534 +++++\n .../rte_telemetry_parser_test.h               |   39 +\n .../rte_telemetry_socket_tests.h              |   36 +\n .../rte_telemetry_version.map                 |   10 +\n lib/meson.build                               |    3 +-\n meson.build                                   |    2 +\n mk/rte.app.mk                                 |    3 +-\n mk/rte.vars.mk                                |    6 +\n usertools/dpdk-telemetry-client.py            |  116 ++\n 43 files changed, 3661 insertions(+), 21 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"
}