From 6402cb3470bf9e6e790b9afa4b5b61a79717d259 Mon Sep 17 00:00:00 2001 From: Jabir Kanhira Kadavathu Date: Wed, 23 Sep 2020 03:24:46 -0700 Subject: Enabling dpdk_telemetry plugin Enabling dpdk_telemetry plugin with One Click Install. Added the config. templates and the related Documentation. Signed-off-by: Jabir Kanhira Kadavathu Change-Id: Ibecd96d4102cd76a71d31613879ae57950f5108f --- docker/ansible/roles/config_files/tasks/dpdk.yml | 7 +++++++ .../config_files/templates/dpdk_telemetry.conf.j2 | 20 ++++++++++++++++++++ docs/release/userguide/feature.userguide.rst | 19 +++++++++++++++++++ docs/release/userguide/installguide.oneclick.rst | 13 +++++++------ .../collectd_sample_configs/dpdk_telemetry.conf | 22 ++++++++++++++++++++++ src/dpdk/Makefile | 1 + 6 files changed, 76 insertions(+), 6 deletions(-) create mode 100644 docker/ansible/roles/config_files/templates/dpdk_telemetry.conf.j2 create mode 100644 src/collectd/collectd_sample_configs/dpdk_telemetry.conf diff --git a/docker/ansible/roles/config_files/tasks/dpdk.yml b/docker/ansible/roles/config_files/tasks/dpdk.yml index 7809c56a..775e4837 100644 --- a/docker/ansible/roles/config_files/tasks/dpdk.yml +++ b/docker/ansible/roles/config_files/tasks/dpdk.yml @@ -26,3 +26,10 @@ dest: "{{ config_file_dir }}/dpdkevents.conf" tags: - dpdkevents + +- name: enable dpdk_telemetry plugin + template: + src: dpdk_telemetry.conf.j2 + dest: "{{ config_file_dir }}/dpdk_telemetry.conf" + tags: + - dpdk_telemetry diff --git a/docker/ansible/roles/config_files/templates/dpdk_telemetry.conf.j2 b/docker/ansible/roles/config_files/templates/dpdk_telemetry.conf.j2 new file mode 100644 index 00000000..d85a3dde --- /dev/null +++ b/docker/ansible/roles/config_files/templates/dpdk_telemetry.conf.j2 @@ -0,0 +1,20 @@ +#Copyright 2020 OPNFV and Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +LoadPlugin dpdk_telemetry + + + ClientSocketPath "/var/run/.client" + DpdkSocketPath "/var/run/dpdk/rte/telemetry" + diff --git a/docs/release/userguide/feature.userguide.rst b/docs/release/userguide/feature.userguide.rst index 59bf0ea1..50d59cf5 100644 --- a/docs/release/userguide/feature.userguide.rst +++ b/docs/release/userguide/feature.userguide.rst @@ -26,6 +26,21 @@ Barometer has enabled the following collectd plugins: * *dpdkevents plugin*: A read plugin that retrieves DPDK link status and DPDK forwarding cores liveliness status (DPDK Keep Alive). +* *dpdk_telemetry plugin*: A read plugin to collect dpdk interface stats and + application or global stats from dpdk telemetry library. Both 'dpdkstat' and + 'dpdk_telemetry' plugins provides dpdk NIC Stats, but only 'dpdk_telemetry' + provides the DPDK Application stats. So in other words, 'dpdk_telemetry' is + an advanced version of dpdkstat. This plugin don't deal with dpdk events. + So not in related with 'dpdkevents' plugin. The mimimum dpdk version required + to use this plugin is 19.08. + +.. note:: + dpdpkstat and dpdk_telemetry should not be used together. Use dpdk_telemetry + if your version of dpdk supports it (i.e. DPDK >= 19.08) and use dpdkstat otherwise. + dpdkstat, dpdkevents and dpdk_telemetry plugins should only be used if your dpdk + application doesn't already have more relevant metrics available(e.g.ovs_stats). + + * `gnocchi plugin`_: A write plugin that pushes the retrieved stats to Gnocchi. It's capable of pushing any stats read through collectd to Gnocchi, not just the DPDK stats. @@ -304,6 +319,10 @@ http://dpdk.org/doc/guides/prog_guide/multi_proc_support.html ports will not be present in standard IF-MIB. Thus, additional work is required to be done to support DPDK ports and statistics. +**DPDK telemetry plugin** + +Please refer https://wiki.opnfv.org/display/fastpath/DPDK+Telemetry+Plugin + Hugepages Plugin ^^^^^^^^^^^^^^^^^ Repo: https://github.com/collectd/collectd diff --git a/docs/release/userguide/installguide.oneclick.rst b/docs/release/userguide/installguide.oneclick.rst index 76a81db9..19ba48a1 100644 --- a/docs/release/userguide/installguide.oneclick.rst +++ b/docs/release/userguide/installguide.oneclick.rst @@ -302,18 +302,19 @@ List of default plugins for collectd container 3.Change the Makefile path from '(WORKDIR)/kernel/linux/kni/Makefile' to (WORKDIR)/lib/librte_eal/linuxapp/kni/Makefile in '(WORK_DIR)/src/dpdk/Makefile'. By default the collectd is started with default configuration which includes -the followin plugins: +the following plugins: * ``csv``, ``contextswitch``, ``cpu``, ``cpufreq``, ``df``, ``disk``, ``ethstat``, ``ipc``, ``irq``, ``load``, ``memory``, ``numa``, ``processes``, ``swap``, ``turbostat``, ``uuid``, ``uptime``, ``exec``, ``hugepages``, ``intel_pmu``, ``ipmi``, ``write_kafka``, ``logfile``, ``mcelog``, ``network``, ``intel_rdt``, ``rrdtool``, ``snmp_agent``, ``syslog``, ``virt``, ``ovs_stats``, ``ovs_events``, ``dpdkevents``, - ``dpdkstat`` + ``dpdkstat``, ``dpdk_telemetry`` -Some of the plugins are loaded depending on specific system requirements and can be omitted if -dependency is not met, this is the case for: - * ``hugepages``, ``ipmi``, ``mcelog``, ``intel_rdt``, ``virt``, ``ovs_stats``, ``ovs_events`` +.. note:: + Some of the plugins are loaded depending on specific system requirements and can be omitted if + dependency is not met, this is the case for: + * ``hugepages``, ``ipmi``, ``mcelog``, ``intel_rdt``, ``virt``, ``ovs_stats``, ``ovs_events`` List and description of tags used in ansible scripts ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -360,5 +361,5 @@ List of available tags: ``turbostat``, ``uptime``, ``exec``, ``hugepages``, ``ipmi``, ``kafka``, ``logfile``, ``mcelogs``, ``n``etwork``,`` ``pmu``, ``rdt``, ``rrdtool``, ``snmp``, ``syslog``, ``virt``, ``ovs_stats``, ``ovs_events``, ``uuid``, - ``dpdkevents``, ``dpdkstat``. + ``dpdkevents``, ``dpdkstat``, ``dpdk_telemetry``. diff --git a/src/collectd/collectd_sample_configs/dpdk_telemetry.conf b/src/collectd/collectd_sample_configs/dpdk_telemetry.conf new file mode 100644 index 00000000..3bc0dd15 --- /dev/null +++ b/src/collectd/collectd_sample_configs/dpdk_telemetry.conf @@ -0,0 +1,22 @@ +#Copyright 2020 OPNFV and Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + + Interval 1 + + + + ClientSocketPath "/var/run/.client" + DpdkSocketPath "/var/run/dpdk/rte/telemetry" + diff --git a/src/dpdk/Makefile b/src/dpdk/Makefile index f7efa3d1..44da38c9 100644 --- a/src/dpdk/Makefile +++ b/src/dpdk/Makefile @@ -22,6 +22,7 @@ # Martin Klozik, Intel Corporation. # Christian Trautman, Red Hat Inc. # Maryam Tahhan, Intel Corporation. +# Jabir Kanhira Kadavathu, Intel Corporation. include ../mk/master.mk include ../package-list.mk -- cgit 1.2.3-korg