aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEmma Foley <efoley@redhat.com>2021-04-21 14:37:13 +0100
committerEmma Foley <efoley@redhat.com>2021-06-03 13:28:36 +0100
commitd49c6ba0cc7f5892c65c67afdaa1ee77ce3aa182 (patch)
tree15a032995fcad631b8733c2394938de61bcf5e2b
parent28517f841a3261987114869e04624cdd686c31a5 (diff)
[docker] Add collectd-6
* Add instruction to docs/ for using docker/barometer-collectd-experimental/Dockerfile to build collectd version 6 * Add a new COLLECTD_FLAVOR to src/collectd/Makefile to configure tags for a collectd 6 build. * Allow passing COLLECTD_CONFIG_CMD_ARGS to the collectd build For testing with new plugins for collectd-6, as un-ported plugins are disabled by default. This new option lets the ./configure command be run with extra args, e.g. --enable-cpu --enable-<my-newly-ported-plugin>, which means that plugin can be enabled for the PR that is being tested. * Update flavor_image_name selection to include collectd-6 Change-Id: I55ee0bbcb5d89357b1ef11ab17c5b029603ecdf7 Signed-off-by: Emma Foley <efoley@redhat.com>
-rw-r--r--docker/ansible/roles/run_collectd/vars/main.yml5
-rw-r--r--docs/release/userguide/installguide.docker.rst38
-rw-r--r--src/collectd/Makefile189
-rw-r--r--src/package-list.mk24
4 files changed, 245 insertions, 11 deletions
diff --git a/docker/ansible/roles/run_collectd/vars/main.yml b/docker/ansible/roles/run_collectd/vars/main.yml
index cebd0f47..ddfec146 100644
--- a/docker/ansible/roles/run_collectd/vars/main.yml
+++ b/docker/ansible/roles/run_collectd/vars/main.yml
@@ -15,7 +15,8 @@
default_flavor: "{{ flavor|default('stable')|string }}"
flavor_image_name: "{{
- 'barometer-collectd-master' if (default_flavor == 'master') else
- 'barometer-collectd-experimental' if (default_flavor == 'experimental')
+ 'barometer-collectd-latest' if (default_flavor == 'master' or default_flavor == 'latest') else
+ 'barometer-collectd-experimental' if (default_flavor == 'experimental') else
+ 'barometer-collectd-6' if (default_flavor == 'collectd-6')
else 'barometer-collectd' }}"
collectd_image_name: "{{ 'opnfv/' + flavor_image_name }}"
diff --git a/docs/release/userguide/installguide.docker.rst b/docs/release/userguide/installguide.docker.rst
index ca113c65..f44ac994 100644
--- a/docs/release/userguide/installguide.docker.rst
+++ b/docs/release/userguide/installguide.docker.rst
@@ -382,6 +382,44 @@ COLLECTD_PULL_REQUESTS should be a comma-delimited string of pull request IDs.
proxy parameters should be passed only if system is behind an HTTP or HTTPS
proxy server (same as for stable collectd container)
+Build collectd-6
+^^^^^^^^^^^^^^^^
+
+The barometer-collectd-experimental Dockerfile can be used to build
+collectd-6.0, which is currently under development. In order to do this, the
+``COLLECTD_FLAVOR`` build arg can be passed to the docker build command.
+The optional ``COLLECTD_PULL_REQUESTS`` arg can be passed as well, to test
+proposed patches to collectd.
+
+.. code:: bash
+
+ $ cd <BAROMETER_REPO_DIR>
+ $ sudo docker build -t opnfv/barometer-collectd-6 \
+ --build-arg COLLECTD_FLAVOR=collectd-6 \
+ --build-arg COLLECTD_PULL_REQUESTS=1234,5678 \
+ --network=host -f docker/barometer-collectd-experimental/Dockerfile .
+
+The instructions for running the collectd-6 container are the same as for the
+collectd-experimental container.
+
+There are a few useful build args that can be used to further customise the
+collectd-6 build::
+
+* COLLECTD_CONFIG_CMD_ARGS
+ For testing with new plugins for collectd-6, as un-ported plugins are
+ disabled by default.
+ This new option lets the ./configure command be run with extra args,
+ e.g. --enable-cpu --enable-<my-newly-ported-plugin>, which means that
+ plugin can be enabled for the PR that is being tested.
+
+* COLLECTD_TAG
+ This overrides the default tag selected by the flavors, and allows checking
+ out out an arbitrary branch (e.g. PR branch instead of using the
+ ``COLLECTD_PULL_REQUESTS`` arg, which rebases each PR on top of the
+ nominal branch.
+ To check out a PR, use the following args with the docker build command:
+ ``--build-arg COLLECTD_TAG=pull/<PR_ID>/head``
+
Run the collectd stable docker image
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. code:: bash
diff --git a/src/collectd/Makefile b/src/collectd/Makefile
index ec45f941..785614d5 100644
--- a/src/collectd/Makefile
+++ b/src/collectd/Makefile
@@ -1,7 +1,8 @@
# makefile to manage collectd package
#
-# Copyright 2016-2019 Intel Corporation and OPNFV. All rights reserved.
+# Copyright 2016-2021 Intel Corporation, Anuket and others.
+# All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -15,18 +16,18 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-
#
# Contributors:
# Aihua Li, Huawei Technologies.
# Maryam Tahhan, Intel Corporation.
+# Emma Foley, Red Hat.
include ../mk/master.mk
include ../package-list.mk
WORK_DIR = collectd
# $COLLECTD_TAG can contain "/", which is being replaced with "-" here
-TAG_DONE_FLAG := $(WORK_DIR)/.$(subst /,-,"$(COLLECTD_TAG)").done
+TAG_DONE_FLAG := $(WORK_DIR)/.$(subst /,-,$(COLLECTD_TAG)).done
BUILD_CMD = ./build.sh
CONFIG_CMD =
CONFIG_CMD += ./configure
@@ -41,6 +42,183 @@ ifeq ($(XDG_CACHE_HOME_DIR),)
XDG_CACHE_HOME_DIR = $(shell echo $$HOME)
endif
+ifeq ($(COLLECTD_FLAVOR),collectd-6)
+CONFIG_CMD += --enable-cpu
+CONFIG_CMD += --enable-interface
+CONFIG_CMD += --enable-memory
+CONFIG_CMD += --enable-ping
+CONFIG_CMD += --enable-uptime
+
+CONFIG_CMD += --disable-aggregation
+CONFIG_CMD += --disable-amqp
+CONFIG_CMD += --disable-amqp1
+#CONFIG_CMD += --disable-apache
+#CONFIG_CMD += --disable-apcups
+#CONFIG_CMD += --disable-apple_sensors
+#CONFIG_CMD += --disable-aquaero
+CONFIG_CMD += --disable-barometer
+#CONFIG_CMD += --disable-battery
+#CONFIG_CMD += --disable-bind
+#CONFIG_CMD += --disable-buddyinfo
+#CONFIG_CMD += --disable-capabilities
+#CONFIG_CMD += --disable-ceph
+#CONFIG_CMD += --disable-cgroups
+#CONFIG_CMD += --disable-chrony
+CONFIG_CMD += --disable-check_uptime
+#CONFIG_CMD += --disable-connectivity
+#CONFIG_CMD += --disable-conntrack
+#CONFIG_CMD += --disable-contextswitch
+#CONFIG_CMD += --disable-cpufreq
+#CONFIG_CMD += --disable-cpusleep
+CONFIG_CMD += --disable-csv
+#CONFIG_CMD += --disable-curl
+#CONFIG_CMD += --disable-curl_json
+CONFIG_CMD += --disable-curl_xml
+#CONFIG_CMD += --disable-dbi
+#CONFIG_CMD += --disable-dcpmm
+#CONFIG_CMD += --disable-df
+#CONFIG_CMD += --disable-disk
+#CONFIG_CMD += --disable-dns
+#CONFIG_CMD += --disable-dpdkevents
+#CONFIG_CMD += --disable-dpdkstat
+#CONFIG_CMD += --disable-dpdk_telemetry
+#CONFIG_CMD += --disable-drbd
+#CONFIG_CMD += --disable-email
+#CONFIG_CMD += --disable-entropy
+#CONFIG_CMD += --disable-ethstat
+#CONFIG_CMD += --disable-exec
+#CONFIG_CMD += --disable-fhcount
+#CONFIG_CMD += --disable-filecount
+#CONFIG_CMD += --disable-fscache
+CONFIG_CMD += --disable-gmond
+#CONFIG_CMD += --disable-gps
+#CONFIG_CMD += --disable-gpu_nvidia
+CONFIG_CMD += --disable-grpc
+#CONFIG_CMD += --disable-hddtemp
+#CONFIG_CMD += --disable-hugepages
+#CONFIG_CMD += --disable-infiniband
+#CONFIG_CMD += --disable-intel_pmu
+#CONFIG_CMD += --disable-intel_rdt
+#CONFIG_CMD += --disable-ipc
+#CONFIG_CMD += --disable-ipmi
+#CONFIG_CMD += --disable-iptables
+#CONFIG_CMD += --disable-ipstats
+#CONFIG_CMD += --disable-ipvs
+#CONFIG_CMD += --disable-irq
+CONFIG_CMD += --disable-java
+#CONFIG_CMD += --disable-load
+#CONFIG_CMD += --disable-log_logstash
+#CONFIG_CMD += --disable-logfile
+#CONFIG_CMD += --disable-logparser
+#CONFIG_CMD += --disable-lpar
+CONFIG_CMD += --disable-lua
+#CONFIG_CMD += --disable-madwifi
+CONFIG_CMD += --disable-match_empty_counter
+CONFIG_CMD += --disable-match_hashed
+CONFIG_CMD += --disable-match_regex
+CONFIG_CMD += --disable-match_timediff
+CONFIG_CMD += --disable-match_value
+#CONFIG_CMD += --disable-mbmon
+#CONFIG_CMD += --disable-mcelog
+#CONFIG_CMD += --disable-md
+#CONFIG_CMD += --disable-mdevents
+#CONFIG_CMD += --disable-memcachec
+#CONFIG_CMD += --disable-memcached
+#CONFIG_CMD += --disable-mic
+CONFIG_CMD += --disable-modbus
+CONFIG_CMD += --disable-mqtt
+#CONFIG_CMD += --disable-multimeter
+#CONFIG_CMD += --disable-mysql
+#CONFIG_CMD += --disable-netapp
+#CONFIG_CMD += --disable-netlink
+#CONFIG_CMD += --disable-netstat_udp
+CONFIG_CMD += --disable-network
+#CONFIG_CMD += --disable-nfs
+#CONFIG_CMD += --disable-nginx
+#CONFIG_CMD += --disable-notify_desktop
+#CONFIG_CMD += --disable-notify_email
+#CONFIG_CMD += --disable-notify_nagios
+#CONFIG_CMD += --disable-ntpd
+#CONFIG_CMD += --disable-numa
+#CONFIG_CMD += --disable-nut
+#CONFIG_CMD += --disable-olsrd
+#CONFIG_CMD += --disable-onewire
+CONFIG_CMD += --disable-openldap
+#CONFIG_CMD += --disable-openvpn
+#CONFIG_CMD += --disable-oracle
+#CONFIG_CMD += --disable-ovs_events
+#CONFIG_CMD += --disable-ovs_stats
+#CONFIG_CMD += --disable-pcie_errors
+CONFIG_CMD += --disable-perl
+#CONFIG_CMD += --disable-pf
+#CONFIG_CMD += --disable-pinba
+CONFIG_CMD += --disable-postgresql
+#CONFIG_CMD += --disable-powerdns
+#CONFIG_CMD += --disable-processes
+#CONFIG_CMD += --disable-procevent
+#CONFIG_CMD += --disable-protocols
+CONFIG_CMD += --disable-python
+#CONFIG_CMD += --disable-redfish
+CONFIG_CMD += --disable-redis
+#CONFIG_CMD += --disable-routeros
+CONFIG_CMD += --disable-rrdcached
+CONFIG_CMD += --disable-rrdtool
+#CONFIG_CMD += --disable-sensors
+#CONFIG_CMD += --disable-serial
+#CONFIG_CMD += --disable-sigrok
+#CONFIG_CMD += --disable-slurm
+#CONFIG_CMD += --disable-smart
+CONFIG_CMD += --disable-snmp
+CONFIG_CMD += --disable-snmp_agent
+CONFIG_CMD += --disable-statsd
+#CONFIG_CMD += --disable-swap
+#CONFIG_CMD += --disable-synproxy
+#CONFIG_CMD += --disable-sysevent
+#CONFIG_CMD += --disable-syslog
+#CONFIG_CMD += --disable-table
+#CONFIG_CMD += --disable-tail
+#CONFIG_CMD += --disable-tail_csv
+#CONFIG_CMD += --disable-tape
+CONFIG_CMD += --disable-target_notification
+CONFIG_CMD += --disable-target_replace
+CONFIG_CMD += --disable-target_scale
+CONFIG_CMD += --disable-target_set
+CONFIG_CMD += --disable-target_v5upgrade
+#CONFIG_CMD += --disable-tcpconns
+#CONFIG_CMD += --disable-teamspeak2
+#CONFIG_CMD += --disable-ted
+#CONFIG_CMD += --disable-thermal
+CONFIG_CMD += --disable-threshold
+#CONFIG_CMD += --disable-tokyotyrant
+#CONFIG_CMD += --disable-turbostat
+#CONFIG_CMD += --disable-ubi
+#CONFIG_CMD += --disable-unixsock
+#CONFIG_CMD += --disable-users
+#CONFIG_CMD += --disable-uuid
+#CONFIG_CMD += --disable-varnish
+#CONFIG_CMD += --disable-virt
+#CONFIG_CMD += --disable-vmem
+#CONFIG_CMD += --disable-vserver
+#CONFIG_CMD += --disable-wireless
+CONFIG_CMD += --disable-write_graphite
+#CONFIG_CMD += --disable-write_http
+CONFIG_CMD += --disable-write_influxdb_udp
+CONFIG_CMD += --disable-write_kafka
+#CONFIG_CMD += --disable-write_log
+CONFIG_CMD += --disable-write_mongodb
+CONFIG_CMD += --disable-write_prometheus
+CONFIG_CMD += --disable-write_redis
+CONFIG_CMD += --disable-write_riemann
+CONFIG_CMD += --disable-write_sensu
+#CONFIG_CMD += --disable-write_stackdriver
+CONFIG_CMD += --disable-write_syslog
+CONFIG_CMD += --disable-write_tsdb
+#CONFIG_CMD += --disable-xencpu
+#CONFIG_CMD += --disable-zfs_arc
+#CONFIG_CMD += --disable-zone
+#CONFIG_CMD += --disable-zookeeper
+CONFIG_CMD += --enable-debug
+else
CONFIG_CMD += --enable-syslog
CONFIG_CMD += --enable-logfile
CONFIG_CMD += --with-libpqos=$(LIBPQOS_DIR)
@@ -53,10 +231,14 @@ CONFIG_CMD += --enable-write_redis
CONFIG_CMD += --disable-perl
CONFIG_CMD += --with-librdkafka=/usr
CONFIG_CMD += --disable-lvm
+endif
+
ifdef WITH_DPDK
CONFIG_CMD += LIBDPDK_CFLAGS='-mssse3'
endif
+CONFIG_CMD += $(COLLECTD_CONFIG_CMD_ARGS)
+
.PHONY: install force_install config force_make
# install depends on make
@@ -66,6 +248,7 @@ all: force_make
@echo "Finished making $(WORK_DIR)"
config $(WORK_DIR)/Makefile: $(WORK_DIR)/configure
+ @echo "Configuring with: " $(CONFIG_CMD)
$(AT)cd $(WORK_DIR); $(CONFIG_CMD)
@echo "Configure done"
diff --git a/src/package-list.mk b/src/package-list.mk
index 59e9a0a2..b27cd575 100644
--- a/src/package-list.mk
+++ b/src/package-list.mk
@@ -20,23 +20,35 @@ KAFKA_TAG ?= v1.5.2
# collectd section
COLLECTD_URL ?= https://github.com/collectd/collectd
-# there are 3 collectd flavors:
+# there are 4 collectd flavors:
# -"stable" - based on stable collectd release
# -"latest" - development version, based on main branch
# -"experimental" - it is based on main branch as above and includes
# set pull requests with experimental features
+# -"collectd-6" - based on the collectd 6.0 branch
ifeq ($(COLLECTD_FLAVOR), stable)
-# using latest stable release
+# using the most recent stable release
COLLECTD_TAG ?= collectd-5.12
SAMPLE_CONF_VARIANT_NAME = collectd_sample_configs
-else
-# 'latest' and 'experimental' collectd flavors are both using
-# code from main branch
+endif
+ifeq ($(COLLECTD_FLAVOR), latest)
+# collectd code from main branch
COLLECTD_TAG ?= main
SAMPLE_CONF_VARIANT_NAME = collectd_sample_configs-latest
+endif
ifeq ($(COLLECTD_FLAVOR), experimental)
# 'experimental' flavor is using additional Pull Requests that
# are put on top of main release
+ COLLECTD_TAG ?= main
+ SAMPLE_CONF_VARIANT_NAME = collectd_sample_configs-latest
COLLECTD_USE_EXPERIMENTAL_PR ?= y
endif #end of experimental-branch handling
-endif
+ifeq ($(COLLECTD_FLAVOR), collectd-6)
+# 'collectd-6' flavor is using collectd-6.0 branch
+ COLLECTD_TAG ?= collectd-6.0
+ SAMPLE_CONF_VARIANT_NAME = collectd_sample_configs-latest
+ COLLECTD_USE_EXPERIMENTAL_PR ?= y
+endif #end of collectd-6.0-branch handling
+
+@echo "Using COLLECTD_TAG: $(COLLECTD_TAG)"
+@echo "Using SAMPLE_CONF_VARIANT_NAME: $(SAMPLE_CONF_VARIANT_NAME)"