Merge "mibs: Add hugepages mib to barometer."
authorMaryam Tahhan <maryam.tahhan@intel.com>
Thu, 27 Apr 2017 10:29:16 +0000 (10:29 +0000)
committerGerrit Code Review <gerrit@opnfv.org>
Thu, 27 Apr 2017 10:29:16 +0000 (10:29 +0000)
ci/build_rpm.sh [new file with mode: 0644]
ci/install_dependencies.sh [new file with mode: 0644]
ci/utility/check_git_repo.sh [new file with mode: 0644]
ci/utility/collectd_build_rpm.sh [new file with mode: 0644]
ci/utility/collectd_get_sources.sh [new file with mode: 0644]
ci/utility/intel_cmt_cat_build_install_rpm.sh [new file with mode: 0644]
ci/utility/package-list.sh [new file with mode: 0644]
docs/release/userguide/feature.userguide.rst

diff --git a/ci/build_rpm.sh b/ci/build_rpm.sh
new file mode 100644 (file)
index 0000000..3ad3b57
--- /dev/null
@@ -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 (file)
index 0000000..3fe1e72
--- /dev/null
@@ -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 (file)
index 0000000..f7ad0a8
--- /dev/null
@@ -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 (file)
index 0000000..d46a73e
--- /dev/null
@@ -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 (file)
index 0000000..69108e4
--- /dev/null
@@ -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 (file)
index 0000000..d0e8954
--- /dev/null
@@ -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 (file)
index 0000000..9f87843
--- /dev/null
@@ -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/
index 2ecc437..c1463e7 100644 (file)
@@ -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