aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEmma Foley <efoley@redhat.com>2021-08-26 16:25:42 +0100
committerEmma Foley <efoley@redhat.com>2021-08-30 17:49:54 +0100
commit1eb39b6ffa209688b65a1d6b5694b6f9bc9a8ce4 (patch)
tree25d14defc4e2ecf8d76ac298a7cee02cdd878435
parent6f31a4b549de47be5d3941e1013b698f7c8801e7 (diff)
[dpdk] Remove dpdkstats and dpdkevents plugins
Remove old dpdk plugins, since they are superceeded by dpdk_telemetry plugin. JIRA: https://jira.anuket.io/browse/BAROMETER-183 Change-Id: Ie4abf2b1fe37a2197d9d5dd01820ac8b0d01df6d Signed-off-by: Emma Foley <efoley@redhat.com>
-rw-r--r--docker/ansible/roles/config_files/tasks/dpdk.yml18
-rw-r--r--docker/ansible/roles/config_files/templates/dpdkevents.conf.j236
-rw-r--r--docker/ansible/roles/config_files/templates/dpdkstat.conf.j225
-rw-r--r--docs/release/release-notes/notes/remove_dpdk_stats_events_plugins-59f366855f6e4261.yaml8
-rw-r--r--docs/release/userguide/feature.userguide.rst108
-rw-r--r--docs/release/userguide/installguide.docker.rst3
-rw-r--r--docs/release/userguide/installguide.oneclick.rst11
-rw-r--r--src/collectd/collectd_sample_configs-latest/dpdkevents.conf35
-rw-r--r--src/collectd/collectd_sample_configs-latest/dpdkstat.conf23
-rw-r--r--src/collectd/collectd_sample_configs/dpdkevents.conf35
-rw-r--r--src/collectd/collectd_sample_configs/dpdkstat.conf24
11 files changed, 39 insertions, 287 deletions
diff --git a/docker/ansible/roles/config_files/tasks/dpdk.yml b/docker/ansible/roles/config_files/tasks/dpdk.yml
index a022de9e..2be146b0 100644
--- a/docker/ansible/roles/config_files/tasks/dpdk.yml
+++ b/docker/ansible/roles/config_files/tasks/dpdk.yml
@@ -12,24 +12,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
---
-
-- name: enable dpdkstat plugin
- template:
- src: dpdkstat.conf.j2
- dest: "{{ config_file_dir }}/dpdkstat.conf"
- tags:
- # require this to be explicitly enabled
- - never
- - dpdkstat
-
-- name: enable dpdkevents plugin
- template:
- src: dpdkevents.conf.j2
- dest: "{{ config_file_dir }}/dpdkevents.conf"
- tags:
- - never
- - dpdkevents
-
- name: enable dpdk_telemetry plugin
set_fact:
collectd_plugins: "{{ collectd_plugins | union(['dpdk_telemetry']) | unique }}"
diff --git a/docker/ansible/roles/config_files/templates/dpdkevents.conf.j2 b/docker/ansible/roles/config_files/templates/dpdkevents.conf.j2
deleted file mode 100644
index 60bdb3e2..00000000
--- a/docker/ansible/roles/config_files/templates/dpdkevents.conf.j2
+++ /dev/null
@@ -1,36 +0,0 @@
-#Copyright 2018 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 dpdkevents>
- Interval 1
-</LoadPlugin>
-
-<Plugin "dpdkevents">
-# <EAL>
-# Coremask "0x1"
-# MemoryChannels "4"
-# FilePrefix "rte"
-# </EAL>
- <Event "link_status">
- SendEventsOnUpdate false
- EnabledPortMask 0xffff
- SendNotification true
- </Event>
-# <Event "keep_alive">
-# SendEventsOnUpdate false
-# LCoreMask "0xf"
-# KeepAliveShmName "/dpdk_keepalive_shm_name"
-# SendNotification true
-# </Event>
-</Plugin>
diff --git a/docker/ansible/roles/config_files/templates/dpdkstat.conf.j2 b/docker/ansible/roles/config_files/templates/dpdkstat.conf.j2
deleted file mode 100644
index 738fb4d0..00000000
--- a/docker/ansible/roles/config_files/templates/dpdkstat.conf.j2
+++ /dev/null
@@ -1,25 +0,0 @@
-#Copyright 2018 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 dpdkstat
-
-<Plugin dpdkstat>
-# Coremask "0xf"
-# ProcessType "secondary"
-# FilePrefix "rte"
- EnabledPortMask 0xffff
-# PortName "interface1"
-# PortName "interface2"
-</Plugin>
-
diff --git a/docs/release/release-notes/notes/remove_dpdk_stats_events_plugins-59f366855f6e4261.yaml b/docs/release/release-notes/notes/remove_dpdk_stats_events_plugins-59f366855f6e4261.yaml
new file mode 100644
index 00000000..78ab1c4c
--- /dev/null
+++ b/docs/release/release-notes/notes/remove_dpdk_stats_events_plugins-59f366855f6e4261.yaml
@@ -0,0 +1,8 @@
+---
+release_summary: >
+ Remove dpdkstats and dpdkevents from Barometer.
+deprecations:
+ - |
+ The dpdkstats and dpdkevents plugins were removed from Barometer. These
+ plugins are still available in collectd, however, will not be deployed by
+ Barometer. It is recommended that the DPDK telemetry plugin be used instead.
diff --git a/docs/release/userguide/feature.userguide.rst b/docs/release/userguide/feature.userguide.rst
index 02f8bdaa..2750bd8d 100644
--- a/docs/release/userguide/feature.userguide.rst
+++ b/docs/release/userguide/feature.userguide.rst
@@ -22,26 +22,15 @@ to support thresholding and notification.
Barometer has enabled the following collectd plugins:
-* *dpdkstat plugin*: A read plugin that retrieves stats from the DPDK extended
- NIC stats API.
-
-* *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.
+ application or global stats from dpdk telemetry library. The ``dpdk_telemetry``
+ plugin provides both DPDK NIC Stats and DPDK application stats.
+ This plugin doesn't deal with dpdk events.
+ 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).
-
+ The ``dpdk_telemetry`` plugin 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
@@ -175,15 +164,15 @@ collectd, check out the `collectd-openstack-plugins GSG`_.
Below is the per plugin installation and configuration guide, if you only want
to install some/particular plugins.
-DPDK plugins
-^^^^^^^^^^^^^
+DPDK telemetry plugin
+^^^^^^^^^^^^^^^^^^^^^
Repo: https://github.com/collectd/collectd
Branch: main
-Dependencies: `DPDK <https://www.dpdk.org/>`_
+Dependencies: `DPDK <https://www.dpdk.org/>`_ (runtime), libjansson (compile-time)
-.. note:: DPDK statistics plugin requires DPDK version 16.04 or later.
+.. note:: DPDK telemetry plugin requires DPDK version 19.08 or later.
To build and install DPDK to /usr please see:
https://github.com/collectd/collectd/blob/main/docs/BUILD.dpdkstat.md
@@ -199,53 +188,35 @@ Building and installing collectd:
$ make
$ sudo make install
-.. note:: If DPDK was installed in a non standard location you will need to
- specify paths to the header files and libraries using *LIBDPDK_CPPFLAGS* and
- *LIBDPDK_LDFLAGS*. You will also need to add the DPDK library symbols to the
- shared library path using *ldconfig*. Note that this update to the shared
- library path is not persistant (i.e. it will not survive a reboot).
-
-Example of specifying custom paths to DPDK headers and libraries:
-
-.. code:: bash
-
- $ ./configure LIBDPDK_CPPFLAGS="path to DPDK header files" LIBDPDK_LDFLAGS="path to DPDK libraries"
-
This will install collectd to default folder ``/opt/collectd``. The collectd
configuration file (``collectd.conf``) can be found at ``/opt/collectd/etc``.
-To configure the dpdkstats plugin you need to modify the configuration file to
-include (uncomment lines as appropriate):
-.. literalinclude:: ../../../src/collectd/collectd_sample_configs/dpdkstat.conf
- :start-at: LoadPlugin
- :language: bash
+To configure the dpdk_telemetry plugin you need to modify the configuration file to
+include:
-To configure the dpdkevents plugin you need to modify the configuration file to
-include (uncomment lines as appropriate):
+.. code:: bash
-.. literalinclude:: ../../../src/collectd/collectd_sample_configs/dpdkevents.conf
- :start-at: LoadPlugin
- :language: bash
+ LoadPlugin dpdk_telemetry
+ <Plugin dpdk_telemetry>
+ #ClientSocketPath "/var/run/.client"
+ #DpdkSocketPath "/var/run/dpdk/rte/telemetry"
+ </Plugin>
-.. note:: Currently, the DPDK library doesn’t support API to de-initialize
- the DPDK resources allocated on the initialization. It means, the collectd
- plugin will not be able to release the allocated DPDK resources
- (locks/memory/pci bindings etc.) correctly on collectd shutdown or reinitialize
- the DPDK library if primary DPDK process is restarted. The only way to release
- those resources is to terminate the process itself. For this reason, the plugin
- forks off a separate collectd process. This child process becomes a secondary
- DPDK process which can be run on specific CPU cores configured by user through
- collectd configuration file (“Coremask” EAL configuration option, the
- hexadecimal bitmask of the cores to run on).
+The plugin uses default values (as shown) for the socket paths, if you use different values,
+uncomment and update ``ClientSocketPath`` and ``DpdkSocketPath`` as required.
For more information on the plugin parameters, please see:
https://github.com/collectd/collectd/blob/main/src/collectd.conf.pod
-.. note:: dpdkstat plugin initialization time depends on read interval. It
- requires 5 read cycles to set up internal buffers and states, during that time
- no statistics are submitted. Also, if plugin is running and the number of DPDK
- ports is increased, internal buffers are resized. That requires 3 read cycles
- and no port statistics are submitted during that time.
+.. note::
+
+ To gather metrics from a DPDK application, telemetry needs to be enabled.
+ This can be done by setting the ``CONFIG_RTE_LIBRTE_TELEMETRY=y`` config flag.
+ The application then needs to be run with the ``--telemetry`` EAL option, e.g.
+ ::
+ $dpdk/app/testpmd --telemetry -l 2,3,4 -n 4
+
+For more information on the ``dpdk_telemetry`` plugin, see the `anuket wiki <https://wiki.anuket.io/display/HOME/DPDK+Telemetry+Plugin>`_.
The Address-Space Layout Randomization (ASLR) security feature in Linux should be
disabled, in order for the same hugepage memory mappings to be present in all
@@ -270,27 +241,6 @@ To fully enable ASLR:
For more information on multi-process support, please see:
https://doc.dpdk.org/guides/prog_guide/multi_proc_support.html
-**DPDK stats plugin limitations:**
-
-1. The DPDK primary process application should use the same version of DPDK
- that collectd DPDK plugin is using;
-
-2. L2 statistics are only supported;
-
-3. The plugin has been tested on Intel NIC’s only.
-
-**DPDK stats known issues:**
-
-* DPDK port visibility
-
- When network port controlled by Linux is bound to DPDK driver, the port
- will not be available in the OS. It affects the SNMP write plugin as those
- 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 to https://wiki.anuket.io/display/HOME/DPDK+Telemetry+Plugin
Hugepages Plugin
^^^^^^^^^^^^^^^^^
diff --git a/docs/release/userguide/installguide.docker.rst b/docs/release/userguide/installguide.docker.rst
index 38d467a4..a00d5ac7 100644
--- a/docs/release/userguide/installguide.docker.rst
+++ b/docs/release/userguide/installguide.docker.rst
@@ -450,8 +450,7 @@ Run the collectd stable docker image
files should be removed from shared configuration directory
(`<BAROMETER_REPO_DIR>/src/collectd/collectd_sample_configs/`) prior
to starting barometer-collectd container. By example: in case of missing
- `DPDK` functionality on the host, `dpdkstat.conf` and `dpdkevents.conf`
- should be removed.
+ `DPDK` functionality on the host, `dpdk_telemetry.conf` should be removed.
Sample configurations can be found at:
https://github.com/opnfv/barometer/tree/master/src/collectd/collectd_sample_configs
diff --git a/docs/release/userguide/installguide.oneclick.rst b/docs/release/userguide/installguide.oneclick.rst
index d236b5b1..a1fc0821 100644
--- a/docs/release/userguide/installguide.oneclick.rst
+++ b/docs/release/userguide/installguide.oneclick.rst
@@ -330,15 +330,6 @@ the following plugins:
For instructions on how to disable certain plugins see the `List and description of tags used in ansible scripts`_ section.
-.. note::
- The ``dpdkstat`` and ``dpdkevents`` plugins are disabled by default (in
- favour of the ``dpdk_telemetry`` plugin) and need to be explicitly enabled
- in order to use them:
-
- .. code:: bash
-
- $ sudo ansible-playbook -i default.inv collectd_service.yml --tags "all,dpdkstats,dpdkevents"
-
List and description of tags used in ansible scripts
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -384,5 +375,5 @@ List of available tags:
``turbostat``, ``uptime``, ``exec``, ``hugepages``, ``ipmi``, ``kafka``,
``logfile``, ``mcelog``, ``network``, ``pmu``, ``rdt``, ``rrdtool``,
``snmp``, ``syslog``, ``unixsock``, ``virt``, ``ovs_stats``, ``ovs_events``,
- ``uuid``, ``dpdkevents``, ``dpdkstat``, ``dpdk_telemetry``.
+ ``uuid``, ``dpdk_telemetry``.
diff --git a/src/collectd/collectd_sample_configs-latest/dpdkevents.conf b/src/collectd/collectd_sample_configs-latest/dpdkevents.conf
deleted file mode 100644
index fdb6f3db..00000000
--- a/src/collectd/collectd_sample_configs-latest/dpdkevents.conf
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright 2017 OPNFV
-#
-# 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 dpdkevents>
- Interval 1
-</LoadPlugin>
-
-<Plugin "dpdkevents">
- <EAL>
-# Coremask "0x1"
-# MemoryChannels "4"
-# FilePrefix "rte"
- </EAL>
- <Event "link_status">
- SendEventsOnUpdate false
- EnabledPortMask 0xffff
- SendNotification true
- </Event>
- <Event "keep_alive">
- SendEventsOnUpdate false
- LCoreMask "0xf"
- KeepAliveShmName "/dpdk_keepalive_shm_name"
- SendNotification true
- </Event>
-</Plugin>
diff --git a/src/collectd/collectd_sample_configs-latest/dpdkstat.conf b/src/collectd/collectd_sample_configs-latest/dpdkstat.conf
deleted file mode 100644
index 59906d4e..00000000
--- a/src/collectd/collectd_sample_configs-latest/dpdkstat.conf
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 2017 OPNFV
-#
-# 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 dpdkstat
-
-<Plugin dpdkstat>
-# Coremask "0xf"
-# ProcessType "secondary"
-# FilePrefix "rte"
- EnabledPortMask 0xffff
-# PortName "interface1"
-# PortName "interface2"
-</Plugin>
diff --git a/src/collectd/collectd_sample_configs/dpdkevents.conf b/src/collectd/collectd_sample_configs/dpdkevents.conf
deleted file mode 100644
index fdb6f3db..00000000
--- a/src/collectd/collectd_sample_configs/dpdkevents.conf
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright 2017 OPNFV
-#
-# 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 dpdkevents>
- Interval 1
-</LoadPlugin>
-
-<Plugin "dpdkevents">
- <EAL>
-# Coremask "0x1"
-# MemoryChannels "4"
-# FilePrefix "rte"
- </EAL>
- <Event "link_status">
- SendEventsOnUpdate false
- EnabledPortMask 0xffff
- SendNotification true
- </Event>
- <Event "keep_alive">
- SendEventsOnUpdate false
- LCoreMask "0xf"
- KeepAliveShmName "/dpdk_keepalive_shm_name"
- SendNotification true
- </Event>
-</Plugin>
diff --git a/src/collectd/collectd_sample_configs/dpdkstat.conf b/src/collectd/collectd_sample_configs/dpdkstat.conf
deleted file mode 100644
index 919e6e6e..00000000
--- a/src/collectd/collectd_sample_configs/dpdkstat.conf
+++ /dev/null
@@ -1,24 +0,0 @@
-# Copyright 2017 OPNFV
-#
-# 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 dpdkstat
-
-<Plugin dpdkstat>
-# Coremask "0xf"
-# ProcessType "secondary"
-# FilePrefix "rte"
- EnabledPortMask 0xffff
-# PortName "interface1"
-# PortName "interface2"
-</Plugin>
-