aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMaryam Tahhan <maryam.tahhan@intel.com>2016-12-02 17:32:22 +0000
committerMaryam Tahhan <maryam.tahhan@intel.com>2016-12-05 13:17:43 +0000
commit843ea84d9da3a4a20a7ad388d94ae8c861380254 (patch)
tree47ee1849d62e4aee406abceeed7e28009ae2cdf0 /src
parent791bf2a756c8d4e7e7b2937481ee2d8d5d95fb97 (diff)
src: build all dependencies and plugins
Build all dependencies and plugins. Provide sample plugin configurations and update user guide. Change-Id: I5170c84529e514e12bb1bd4dc34ecdd93eb764d7 Signed-off-by: Maryam Tahhan <maryam.tahhan@intel.com>
Diffstat (limited to 'src')
-rw-r--r--src/Makefile1
-rw-r--r--src/collectd/Makefile27
-rw-r--r--src/collectd/collectd_sample_configs/csv.conf19
-rw-r--r--src/collectd/collectd_sample_configs/dpdkstat.conf24
-rw-r--r--src/collectd/collectd_sample_configs/exec.conf20
-rw-r--r--src/collectd/collectd_sample_configs/hugepages.conf23
-rw-r--r--src/collectd/collectd_sample_configs/ovs_events.conf25
-rw-r--r--src/collectd/collectd_sample_configs/rdt.conf20
-rwxr-xr-xsrc/collectd/collectd_sample_configs/write_notification.sh19
-rwxr-xr-xsrc/collectd/include_config.sh12
-rwxr-xr-xsrc/install_build_deps.sh74
-rw-r--r--src/libpqos/Makefile77
-rw-r--r--src/package-list.mk5
13 files changed, 342 insertions, 4 deletions
diff --git a/src/Makefile b/src/Makefile
index 73e3508a..48d79e9a 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -35,6 +35,7 @@ export WITH_DPDK
include mk/master.mk
SUBDIRS =
SUBDIRS += dpdk
+SUBDIRS += libpqos
SUBDIRS += collectd
SUBDIRS += collectd-ceilometer-plugin
diff --git a/src/collectd/Makefile b/src/collectd/Makefile
index 1cff9364..0e16cfac 100644
--- a/src/collectd/Makefile
+++ b/src/collectd/Makefile
@@ -24,6 +24,7 @@ include ../mk/master.mk
include ../package-list.mk
WORK_DIR = collectd
+SAMPLE_CONFIG = $(CURDIR)/collectd_sample_configs
TAG_DONE_FLAG = $(WORK_DIR)/.$(COLLECTD_TAG).done
BUILD_CMD = ./build.sh
CONFIG_CMD =
@@ -35,14 +36,25 @@ ifeq ($(DPDK_DIR),)
DPDK_DIR = /usr
endif
+LIBPQOS_DIR = $(shell echo $$LIBPQOS_DIR)
+ifeq ($(LIBPQOS_DIR),)
+LIBPQOS_DIR = /usr
+endif
+
+
CONFIG_CMD += --enable-syslog
CONFIG_CMD += --enable-logfile
CONFIG_CMD += --with-libdpdk=$(DPDK_DIR)
+CONFIG_CMD += --with-libpqos=$(LIBPQOS_DIR)
+CONFIG_CMD += --with-hugepages
+CONFIG_CMD += --enable-exec
+CONFIG_CMD += --enable-python
+CONFIG_CMD += --enable-threshold
.PHONY: install force_install config force_make
# install depends on make
-force_install: force_make
+#force_install: force_make
all: force_make
@echo "Finished making $(WORK_DIR) "
@@ -56,11 +68,20 @@ INSTALL_TARGET = force_install force_make
force_make: $(WORK_DIR)/Makefile
$(AT)cd $(WORK_DIR) && git pull $(COLLECTD_URL) $(COLLECTD_TAG)
@echo "git pull done"
- $(AT)$(MAKE) -C $(WORK_DIR) $(MORE_MAKE_FLAGS)
+ $(AT) $(MAKE) -C $(WORK_DIR) $(MORE_MAKE_FLAGS)
@echo "Make done"
force_install:
- $(AT)sudo $(MAKE) -C $(WORK_DIR) install
+ $(AT)$(MAKE) -C $(WORK_DIR) install
+ $(AT)cp $(WORK_DIR)/contrib/systemd.collectd.service /etc/systemd/system/
+ $(AT)mv /etc/systemd/system/systemd.collectd.service /etc/systemd/system/collectd.service
+ $(AT)chmod +x /etc/systemd/system/collectd.service
+ $(AT)sed -i -e 's/ExecStart=\/usr\/sbin\/collectd/ExecStart=\/opt\/collectd\/sbin\/collectd/g' /etc/systemd/system/collectd.service
+ $(AT)sed -i -e 's/CapabilityBoundingSet=/CapabilityBoundingSet=CAP_SETUID CAP_SETGID/g' /etc/systemd/system/collectd.service
+ $(AT)systemctl daemon-reload
+ $(AT)sudo mkdir -p /opt/collectd/etc/collectd.conf.d
+ $(AT)sudo cp $(SAMPLE_CONFIG)/* /opt/collectd/etc/collectd.conf.d
+ $(AT)sudo ./include_config.sh
install: $(INSTALL_TARGET)
diff --git a/src/collectd/collectd_sample_configs/csv.conf b/src/collectd/collectd_sample_configs/csv.conf
new file mode 100644
index 00000000..e2350039
--- /dev/null
+++ b/src/collectd/collectd_sample_configs/csv.conf
@@ -0,0 +1,19 @@
+# Copyright 2016 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 csv
+<Plugin csv>
+ DataDir "/tmp/collectd/csv"
+ StoreRates false
+</Plugin>
diff --git a/src/collectd/collectd_sample_configs/dpdkstat.conf b/src/collectd/collectd_sample_configs/dpdkstat.conf
new file mode 100644
index 00000000..201f9d37
--- /dev/null
+++ b/src/collectd/collectd_sample_configs/dpdkstat.conf
@@ -0,0 +1,24 @@
+# Copyright 2016 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/exec.conf b/src/collectd/collectd_sample_configs/exec.conf
new file mode 100644
index 00000000..5b11fd94
--- /dev/null
+++ b/src/collectd/collectd_sample_configs/exec.conf
@@ -0,0 +1,20 @@
+# Copyright 2016 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 exec
+<Plugin exec>
+# Exec "user:group" "/path/to/exec"
+ NotificationExec "" "write_notification.sh"
+</Plugin>
diff --git a/src/collectd/collectd_sample_configs/hugepages.conf b/src/collectd/collectd_sample_configs/hugepages.conf
new file mode 100644
index 00000000..4e4d9152
--- /dev/null
+++ b/src/collectd/collectd_sample_configs/hugepages.conf
@@ -0,0 +1,23 @@
+# Copyright 2016 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 hugepages
+
+<Plugin hugepages>
+ ReportPerNodeHP true
+ ReportRootHP true
+ ValuesPages true
+ ValuesBytes false
+ ValuesPercentage false
+</Plugin>
+
diff --git a/src/collectd/collectd_sample_configs/ovs_events.conf b/src/collectd/collectd_sample_configs/ovs_events.conf
new file mode 100644
index 00000000..a52842ca
--- /dev/null
+++ b/src/collectd/collectd_sample_configs/ovs_events.conf
@@ -0,0 +1,25 @@
+# Copyright 2016 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 ovs_events>
+ Interval 1
+</LoadPlugin>
+
+<Plugin ovs_events>
+# Port "6640"
+# Address "127.0.0.1"
+# Socket "/var/run/openvswitch/db.sock"
+# Interfaces "br0" "veth0"
+ SendNotification true
+</Plugin>
diff --git a/src/collectd/collectd_sample_configs/rdt.conf b/src/collectd/collectd_sample_configs/rdt.conf
new file mode 100644
index 00000000..4ff0a77a
--- /dev/null
+++ b/src/collectd/collectd_sample_configs/rdt.conf
@@ -0,0 +1,20 @@
+# Copyright 2016 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 intel_rdt>
+ Interval 1
+</LoadPlugin>
+
+<Plugin "intel_rdt">
+ Cores ""
+</Plugin>
diff --git a/src/collectd/collectd_sample_configs/write_notification.sh b/src/collectd/collectd_sample_configs/write_notification.sh
new file mode 100755
index 00000000..28198f9d
--- /dev/null
+++ b/src/collectd/collectd_sample_configs/write_notification.sh
@@ -0,0 +1,19 @@
+#!/bin/bash
+# Copyright 2016 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.
+rm -f /tmp/notifications
+while read x y
+do
+ echo $x$y >> /tmp/notifications
+done
diff --git a/src/collectd/include_config.sh b/src/collectd/include_config.sh
new file mode 100755
index 00000000..95b052f3
--- /dev/null
+++ b/src/collectd/include_config.sh
@@ -0,0 +1,12 @@
+#!/bin/bash
+COLLECTD_CONF_FILE=/opt/collectd/etc/collectd.conf
+INCLUDE_CONF="<Include \"/opt/collectd/etc/collectd.conf.d\">"
+
+function write_include {
+ echo $INCLUDE_CONF | sudo tee -a $COLLECTD_CONF_FILE;
+ echo " Filter \"*.conf\"" | sudo tee -a $COLLECTD_CONF_FILE;
+ echo -e "</Include>" | sudo tee -a /opt/collectd/etc/collectd.conf
+}
+
+grep -qe '<Include "/opt/collectd/etc/collectd.conf.d">' $COLLECTD_CONF_FILE; [ $? -ne 0 ] && write_include
+
diff --git a/src/install_build_deps.sh b/src/install_build_deps.sh
new file mode 100755
index 00000000..7c6a89a2
--- /dev/null
+++ b/src/install_build_deps.sh
@@ -0,0 +1,74 @@
+#!/bin/bash
+# Copyright 2016 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.
+set -eux
+sudo apt-get -y install build-essential dh-autoreconf fakeroot devscripts dpkg-dev git wget
+
+sudo apt-get -y install \
+ debhelper dpkg-dev po-debconf dh-systemd dh-strip-nondeterminism \
+ bison flex autotools-dev libltdl-dev pkg-config \
+ iptables-dev \
+ javahelper \
+ libatasmart-dev \
+ libcap-dev \
+ libcurl4-gnutls-dev \
+ libdbi0-dev \
+ libesmtp-dev \
+ libganglia1-dev \
+ libgcrypt11-dev \
+ libglib2.0-dev \
+ libgps-dev \
+ libhiredis-dev \
+ libi2c-dev \
+ libldap2-dev \
+ liblua5.3-dev \
+ liblvm2-dev \
+ libmemcached-dev \
+ libmodbus-dev \
+ libmnl-dev \
+ libmosquitto-dev \
+ libmysqlclient-dev \
+ libnotify-dev \
+ libopenipmi-dev \
+ liboping-dev \
+ libow-dev \
+ libpcap0.8-dev \
+ libpcap-dev\
+ libperl-dev \
+ libpq-dev \
+ libprotobuf-c-dev \
+ libriemann-client-dev \
+ librdkafka-dev \
+ librabbitmq-dev \
+ librrd-dev \
+ libsensors4-dev \
+ libsigrok-dev \
+ libsnmp-dev \
+ libsnmp9-dev \
+ perl \
+ libtokyocabinet-dev \
+ libtokyotyrant-dev \
+ libudev-dev \
+ libupsclient-dev \
+ libvarnishapi-dev \
+ libvirt-dev \
+ libxen-dev \
+ libxml2-dev \
+ libyajl-dev \
+ linux-libc-dev \
+ default-jdk \
+ protobuf-c-compiler \
+ python-dev \
+ openvswitch-switch
+
diff --git a/src/libpqos/Makefile b/src/libpqos/Makefile
new file mode 100644
index 00000000..14bb7882
--- /dev/null
+++ b/src/libpqos/Makefile
@@ -0,0 +1,77 @@
+# makefile to manage collectd package
+#
+
+# Copyright 2016 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.
+
+#
+# Contributors:
+# Aihua Li, Huawei Technologies.
+# Maryam Tahhan, Intel Corporation.
+
+include ../mk/master.mk
+include ../package-list.mk
+
+WORK_DIR = intel-cmt-cat
+TAG_DONE_FLAG = $(WORK_DIR)/.$(LIBPQOS_TAG).done
+BUILD_CMD =
+
+.PHONY: install force_install force_make
+
+# install depends on make
+force_install: force_make
+
+all: force_make
+ @echo "Finished making $(WORK_DIR) "
+
+INSTALL_TARGET = force_install force_make
+
+force_make: $(WORK_DIR)
+ $(AT)cd $(WORK_DIR) && git pull $(LIBPQOS_URL) $(LIBPQOS_TAG)
+ @echo "git pull done"
+ $(AT)$(MAKE) -C $(WORK_DIR) $(MORE_MAKE_FLAGS)
+ @echo "Make done"
+
+force_install:
+ $(AT)sudo $(MAKE) -C $(WORK_DIR) install PREFIX=/usr
+ $(AT)sudo modprobe msr
+
+install: $(INSTALL_TARGET)
+
+# hard way to clean and clobber
+clean:
+ $(AT)cd $(WORK_DIR) && git clean -xfd *.o
+clobber:
+ $(AT)rm -rf $(WORK_DIR)
+
+# distclean is for developer who would like to keep the
+# clone git repo, saving time to fetch again from url
+distclean:
+ $(AT)cd $(WORK_DIR) && git clean -xfd && git checkout -f
+
+test:
+ @echo "Make test in $(WORK_DIR) (stub) "
+
+sanity:
+ @echo "Make sanity in $(WORK_DIR) (stub) "
+
+$(WORK_DIR):
+ $(AT)git clone $(LIBPQOS_URL)
+
+$(TAG_DONE_FLAG): $(WORK_DIR)
+ $(AT)cd $(WORK_DIR); git checkout $(LIBPQOS_TAG)
+ifneq ($(PATCH_FILE),)
+ $(AT)cd $(WORK_DIR); patch -p1 < ../$(PATCH_FILE)
+endif
+ $(AT)touch $@
diff --git a/src/package-list.mk b/src/package-list.mk
index a64489da..3ec60210 100644
--- a/src/package-list.mk
+++ b/src/package-list.mk
@@ -6,7 +6,10 @@
# dpdk section
# DPDK_URL ?= git://dpdk.org/dpdk
DPDK_URL ?= http://dpdk.org/git/dpdk
-DPDK_TAG ?= v16.04
+DPDK_TAG ?= v16.07
+
+LIBPQOS_URL ?= https://github.com/01org/intel-cmt-cat.git
+LIBPQOS_TAG ?= master
# collectd section
COLLECTD_URL ?= https://github.com/collectd/collectd