aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ci/build_rpm.sh20
-rw-r--r--ci/install_dependencies.sh36
-rw-r--r--ci/utility/check_git_repo.sh50
-rw-r--r--ci/utility/collectd_build_rpm.sh39
-rw-r--r--ci/utility/collectd_get_sources.sh29
-rw-r--r--ci/utility/intel_cmt_cat_build_install_rpm.sh50
-rw-r--r--ci/utility/package-list.sh28
-rw-r--r--docs/release/userguide/feature.userguide.rst37
8 files changed, 289 insertions, 0 deletions
diff --git a/ci/build_rpm.sh b/ci/build_rpm.sh
new file mode 100644
index 00000000..3ad3b57b
--- /dev/null
+++ b/ci/build_rpm.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+# Copyright 2017 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.
+
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+
+sh $DIR/utility/collectd_get_sources.sh
+sh $DIR/utility/intel_cmt_cat_build_install_rpm.sh
+sh $DIR/utility/collectd_build_rpm.sh
diff --git a/ci/install_dependencies.sh b/ci/install_dependencies.sh
new file mode 100644
index 00000000..3fe1e725
--- /dev/null
+++ b/ci/install_dependencies.sh
@@ -0,0 +1,36 @@
+#!/bin/bash
+# Copyright 2017 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.
+
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+source $DIR/utility/package-list.sh
+
+# For collectd
+sudo yum install -y yum-utils
+sudo yum install -y epel-release
+sudo yum-builddep -y collectd
+
+sudo yum -y install autoconf automake flex bison libtool pkg-config
+
+sudo yum -y install git
+
+sudo yum -y install rpm-build \
+ libcap-devel xfsprogs-devel iptables-devel \
+ libmemcached-devel gtk2-devel libvirt-devel
+
+# For intel-cmt-cat
+sudo yum -y install wget
+
+# For RPM build
+mkdir -p $RPM_WORKDIR/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
diff --git a/ci/utility/check_git_repo.sh b/ci/utility/check_git_repo.sh
new file mode 100644
index 00000000..f7ad0a8f
--- /dev/null
+++ b/ci/utility/check_git_repo.sh
@@ -0,0 +1,50 @@
+#!/bin/bash
+# Copyright 2017 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.
+
+TARGET_DIR=$1
+REPO=$2
+
+if [[ ! $1 ]]
+then
+ echo "Test if target dir contains the given git repository"
+ echo "Usage: $0 <TARGET_DIR> <REPO_ADDRESS>"
+ exit 254
+fi
+
+cd $TARGET_DIR
+if [[ $? != 0 ]]
+then
+ echo "Directory is not existing"
+ exit 1
+fi
+
+git status &>/dev/null
+if [[ $? != 0 ]]
+then
+ echo "Not a git repo"
+ exit 2
+else
+ REMOTE=`git remote -vv | sed -e "2d" -r -e 's|^\S+\s(\S+)\s\S+$|\1|'`
+ if [[ "$REMOTE" == "$REPO" ]]
+ then
+ echo "YEP"
+ exit 0
+ else
+ echo "Wrong repo"
+ exit 3
+ fi
+fi
+
+exit 255
diff --git a/ci/utility/collectd_build_rpm.sh b/ci/utility/collectd_build_rpm.sh
new file mode 100644
index 00000000..d46a73e6
--- /dev/null
+++ b/ci/utility/collectd_build_rpm.sh
@@ -0,0 +1,39 @@
+#!/bin/bash
+# Copyright 2017 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.
+
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+source $DIR/package-list.sh
+
+VERSION="VERSION_NOT_SET"
+
+cd $COLLECTD_DIR
+VERSION=$( $COLLECTD_DIR/version-gen.sh | sed "s/\W$//g" )
+$COLLECTD_DIR/build.sh
+$COLLECTD_DIR/configure
+make dist
+
+cp $COLLECTD_DIR/collectd-$VERSION.tar.bz2 $RPM_WORKDIR/SOURCES/
+
+sed --regexp-extended \
+ --in-place=".bak" \
+ --expression="s/Version:\s+\S+$/Version: $VERSION/g" \
+ $COLLECTD_DIR/contrib/redhat/collectd.spec
+
+sed --regexp-extended \
+ --in-place \
+ --expression="s/without_intel_rdt:[0-9]/without_intel_rdt:1/g" \
+ $COLLECTD_DIR/contrib/redhat/collectd.spec
+
+rpmbuild --define "_topdir $RPM_WORKDIR" -bb $COLLECTD_DIR/contrib/redhat/collectd.spec
diff --git a/ci/utility/collectd_get_sources.sh b/ci/utility/collectd_get_sources.sh
new file mode 100644
index 00000000..69108e4f
--- /dev/null
+++ b/ci/utility/collectd_get_sources.sh
@@ -0,0 +1,29 @@
+#!/bin/bash
+# Copyright 2017 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.
+
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+source $DIR/package-list.sh
+
+bash $DIR/check_git_repo.sh $COLLECTD_DIR $COLLECTD_REPO
+if [[ $? != 0 ]]
+then
+ rm -rf $COLLECTD_DIR
+ git clone --branch $COLLECTD_BRANCH $COLLECTD_REPO $COLLECTD_DIR
+else
+ cd $COLLECTD_DIR
+ git reset HEAD --hard
+ git pull
+ git checkout -f $COLLECTD_BRANCH
+fi
diff --git a/ci/utility/intel_cmt_cat_build_install_rpm.sh b/ci/utility/intel_cmt_cat_build_install_rpm.sh
new file mode 100644
index 00000000..d0e8954e
--- /dev/null
+++ b/ci/utility/intel_cmt_cat_build_install_rpm.sh
@@ -0,0 +1,50 @@
+#!/bin/bash
+# Copyright 2017 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.
+
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+source $DIR/package-list.sh
+
+VERSION="v0.1.5-1"
+
+bash $DIR/check_git_repo.sh $CMTCAT_DIR $CMTCAT_REPO
+if [[ $? != 0 ]]
+then
+ rm -rf $CMTCAT_DIR
+ git clone --branch $CMTCAT_BRANCH $CMTCAT_REPO $CMTCAT_DIR
+else
+ cd $CMTCAT_DIR
+ git reset HEAD --hard
+ git pull
+ git checkout -f $CMTCAT_BRANCH
+fi
+
+cd $CMTCAT_DIR
+make
+sudo make install
+
+wget https://github.com/01org/intel-cmt-cat/archive/${VERSION}.tar.gz --directory-prefix=$CMTCAT_DIR
+
+mv $CMTCAT_DIR/${VERSION}.tar.gz $RPM_WORKDIR/SOURCES/
+
+rpmbuild --define "_topdir $RPM_WORKDIR" -bb $CMTCAT_DIR/rpm/intel-cmt-cat.spec
+
+rpm -q intel-cmt-cat
+if [ $? -eq 0 ]
+then
+ echo "*** intel-cmt-cat is already installed"
+else
+ RPM_NAME=`ls -1 $RPM_DIR | grep -E "cmt-cat-[0-9]"`
+ rpm -ivf $RPM_DIR/$RPM_NAME
+fi
diff --git a/ci/utility/package-list.sh b/ci/utility/package-list.sh
new file mode 100644
index 00000000..9f878431
--- /dev/null
+++ b/ci/utility/package-list.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+# Copyright 2017 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.
+
+WORKSPACE=${WORKSPACE:-`cd && pwd`}
+
+COLLECTD_DIR=$WORKSPACE/collectd
+CMTCAT_DIR=$WORKSPACE/intel-cmt-cat
+RPM_WORKDIR=$WORKSPACE/rpmbuild
+
+CMTCAT_REPO=https://github.com/01org/intel-cmt-cat.git
+CMTCAT_BRANCH=master
+COLLECTD_REPO=https://github.com/collectd/collectd.git
+COLLECTD_BRANCH=master
+
+# Here rpms built could be taken from
+RPM_DIR=$RPM_WORKDIR/RPMS/x86_64/
diff --git a/docs/release/userguide/feature.userguide.rst b/docs/release/userguide/feature.userguide.rst
index 2ecc4376..c1463e73 100644
--- a/docs/release/userguide/feature.userguide.rst
+++ b/docs/release/userguide/feature.userguide.rst
@@ -230,6 +230,17 @@ include:
</Event>
</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).
+
For more information on the plugin parameters, please see:
https://github.com/collectd/collectd/blob/master/src/collectd.conf.pod
@@ -262,6 +273,24 @@ To fully enable ASLR:
For more information on multi-process support, please see:
http://dpdk.org/doc/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 addition work is
+ required to be done to support DPDK ports and statistics.
+
Hugepages Plugin
^^^^^^^^^^^^^^^^^
Repo: https://github.com/collectd/collectd
@@ -843,6 +872,14 @@ memAvailReal OID to value represented as free memory type of memory plugin:
</Data>
</Plugin>
+**Limitations**
+
+* Object instance with Counter64 type is not supported in SNMPv1. When GetNext
+ request is received, Counter64 type objects will be skipped. When Get
+ request is received for Counter64 type object, the error will be returned.
+* Interfaces that are not visible to Linux like DPDK interfaces cannot be
+ retreived using standard IF-MIB tables.
+
For more information on the plugin parameters, please see:
https://github.com/maryamtahhan/collectd/blob/feat_snmp/src/collectd.conf.pod