summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAaron Smith <aasmith@redhat.com>2018-09-10 12:01:36 +0000
committerGerrit Code Review <gerrit@opnfv.org>2018-09-10 12:01:36 +0000
commitb52c942a4fbfc5023780d23954de953b817c6dc0 (patch)
tree5ecef4654e823b8cc151ded4e0234ed72d312c97
parentfbbfee45410a4a0766c61227751621c4463741bb (diff)
parentb20fa77aef9d184afa2dadba619afc12878ae67b (diff)
Merge "Add support for 'collectd-master' container"
-rw-r--r--docker/README_collectd (renamed from docker/barometer-collectd/README)55
-rw-r--r--docker/barometer-collectd-master/Dockerfile29
-rw-r--r--docker/barometer-collectd-master/run_collectd.sh15
-rw-r--r--mibs/LIBVIRT-HYPERVISOR-MIB.txt903
-rw-r--r--src/collectd/Makefile10
-rw-r--r--src/collectd/collectd_sample_configs-master/csv.conf19
-rw-r--r--src/collectd/collectd_sample_configs-master/default_plugins.conf31
-rw-r--r--src/collectd/collectd_sample_configs-master/dpdkevents.conf35
-rw-r--r--src/collectd/collectd_sample_configs-master/dpdkstat.conf23
-rw-r--r--src/collectd/collectd_sample_configs-master/exec.conf20
-rw-r--r--src/collectd/collectd_sample_configs-master/hugepages.conf22
-rw-r--r--src/collectd/collectd_sample_configs-master/intel_pmu.conf23
-rw-r--r--src/collectd/collectd_sample_configs-master/kafka.conf21
-rw-r--r--src/collectd/collectd_sample_configs-master/mcelog.conf24
-rw-r--r--src/collectd/collectd_sample_configs-master/network.conf18
-rw-r--r--src/collectd/collectd_sample_configs-master/ovs_events.conf24
-rwxr-xr-xsrc/collectd/collectd_sample_configs-master/ovs_pmd_stats.sh15
-rw-r--r--src/collectd/collectd_sample_configs-master/ovs_stats.conf23
-rw-r--r--src/collectd/collectd_sample_configs-master/rdt.conf20
-rw-r--r--src/collectd/collectd_sample_configs-master/snmp_agent.conf785
-rw-r--r--src/collectd/collectd_sample_configs-master/virt.conf30
-rwxr-xr-xsrc/collectd/collectd_sample_configs-master/write_notification.sh19
-rwxr-xr-xsrc/collectd/include_config.sh24
-rw-r--r--src/package-list.mk9
24 files changed, 2180 insertions, 17 deletions
diff --git a/docker/barometer-collectd/README b/docker/README_collectd
index 4936ad8c..c922ab64 100644
--- a/docker/barometer-collectd/README
+++ b/docker/README_collectd
@@ -8,13 +8,20 @@ deployment collectd in docker container
Table of content:
1. DESCRIPTION
2. SYSTEM REQUIREMENTS
-3. INSTALLATION NOTES
-4. ADDITIONAL STEPS
+3. INSTALLATION NOTES - barometer-collectd
+4. INSTALLATION NOTES - barometer-collectd-master
+5. ADDITIONAL STEPS
------------------------------------------------------------------------------
1. DESCRIPTION
-This Dockerfile provides instruction for building collect in isolated container
+This Dockerfile provides instruction for building collect in isolated container.
+There are currently two variants of collectd container:
+ - barometer-collectd - it is based on stable collect release
+ - barometer-collectd-master - development container that is based on
+ latest 'master' branch for collectd project. It contains all available
+ collectd plugins and features that are available on 'master' branch but
+ some issues with configuration or stability may occur
------------------------------------------------------------------------------
2. SYSTEM REQUIREMENTS
@@ -22,30 +29,52 @@ This Dockerfile provides instruction for building collect in isolated container
Docker >= 17.06.0-ce
------------------------------------------------------------------------------
-3. INSTALLATION NOTES
+3. INSTALLATION NOTES: barometer-collectd (stable container)
-To build docker container run
-sudo docker build -f ./docker/barometer-collectd/Dockerfile .
+To build docker container, that is based on stable collectd release, run:
+sudo docker build -f ./docker/barometer-collectd/Dockerfile ./docker/barometer-collectd
from barometer folder.
+sudo docker images # get docker image id
+sudo docker run -ti --net=host -v `pwd`/src/collectd/collectd_sample_configs:/opt/collectd/etc/collectd.conf.d \
+-v /var/run:/var/run -v /tmp:/tmp --privileged <image id>
+
+To make some changes run
+sudo docker run -ti --net=host -v `pwd`/src/collectd/collectd_sample_configs:/opt/collectd/etc/collectd.conf.d \
+-v /var/run:/var/run -v /tmp:/tmp --privileged --entrypoint=/bin/bash <image id>
+
+/opt/collectd/sbin/collectd -f
+
+------------------------------------------------------------------------------
+4. INSTALLATION NOTES: barometer-collectd-master (development container)
+
+To build docker barometer-collectd-master container run (it is based on master branch from collectd):
+sudo docker build -f ./docker/barometer-collectd-master/Dockerfile .
+from root barometer folder.
+
To run builded image run
-sudo docker images
-Get docker image id
-sudo docker run -ti --net=host -v `pwd`/../src/collectd_sample_configs:/opt/collectd/etc/collectd.d \
--v /var/run:/var/run -v /tmp:/tmp --privileged <image id> /run_collectd.sh
+sudo docker images # get docker image id
+sudo docker run -ti --net=host -v `pwd`/src/collectd/collectd_sample_configs-master:/opt/collectd/etc/collectd.conf.d \
+-v /var/run:/var/run -v /tmp:/tmp --privileged <image id>
+
+NOTE: barometer-collectd-master container uses a different sample configurations files
+compared to regular barometer-collectd container (src/collectd/collectd_sample_configs-master)
To make some changes run
-sudo docker run -ti --net=host -v `pwd`/../collectd_sample_configs:/opt/collectd/etc/collectd.d \
- -v /var/run:/var/run --privileged <image id> /bin/bash
+sudo docker run -ti --net=host -v `pwd`/src/collectd/collectd_sample_configs-master:/opt/collectd/etc/collectd.conf.d \
+-v /var/run:/var/run -v /tmp:/tmp --privileged --entrypoint=/bin/bash <image id>
/opt/collectd/sbin/collectd -f
------------------------------------------------------------------------------
-4. ADDITIONAL STEPS
+5. ADDITIONAL STEPS
To check if container works properly additional packages should be installed
on host system.
+DEVELOPMENT TOOLS
+sudo yum group install "Development Tools"
+
MCELOG
To simulate mcelog message use instruction in http://artifacts.opnfv.org/barometer/docs/index.html#mcelog-plugin
diff --git a/docker/barometer-collectd-master/Dockerfile b/docker/barometer-collectd-master/Dockerfile
new file mode 100644
index 00000000..a1c957f3
--- /dev/null
+++ b/docker/barometer-collectd-master/Dockerfile
@@ -0,0 +1,29 @@
+FROM centos:7
+RUN yum update -y && \
+ yum install -y which sudo git && \
+ yum clean all && \
+ git config --global http.sslVerify false
+
+ENV DOCKER y
+ENV COLLECTD_USE_MASTER y
+ENV repos_dir /src
+ENV openstack_plugins /src/barometer/src/collectd-openstack-plugins
+
+WORKDIR ${repos_dir}
+RUN mkdir -p ${repos_dir}/barometer
+COPY . ${repos_dir}/barometer
+
+WORKDIR ${repos_dir}/barometer/systems
+RUN sh ./build_base_machine.sh && \
+ useradd -ms /bin/bash collectd_exec && \
+ echo "collectd_exec ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
+
+WORKDIR ${openstack_plugins}
+RUN make && \
+ pip install --upgrade pip && \
+ pip install -r ${openstack_plugins}/collectd-openstack-plugins/requirements.txt
+
+COPY docker/barometer-collectd-master/run_collectd.sh /run_collectd.sh
+RUN chmod +x /run_collectd.sh
+
+ENTRYPOINT ["/run_collectd.sh"]
diff --git a/docker/barometer-collectd-master/run_collectd.sh b/docker/barometer-collectd-master/run_collectd.sh
new file mode 100644
index 00000000..001cce1a
--- /dev/null
+++ b/docker/barometer-collectd-master/run_collectd.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+# 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.
+/opt/collectd/sbin/collectd -f
diff --git a/mibs/LIBVIRT-HYPERVISOR-MIB.txt b/mibs/LIBVIRT-HYPERVISOR-MIB.txt
new file mode 100644
index 00000000..aa71481d
--- /dev/null
+++ b/mibs/LIBVIRT-HYPERVISOR-MIB.txt
@@ -0,0 +1,903 @@
+LIBVIRT-HYPERVISOR-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+ MODULE-IDENTITY, OBJECT-TYPE, Integer32, Unsigned32, Counter64
+ FROM SNMPv2-SMI
+
+ hostAssist
+ FROM Intel-SA-MIB
+
+ DisplayString
+ FROM SNMPv2-TC;
+
+--*****************************************************************************
+--
+-- MODULE IDENTITY AND REVISION GROUP
+--
+--*****************************************************************************
+
+libvirtHypervisor MODULE-IDENTITY
+ LAST-UPDATED "201710061110Z" -- coordinated universal time UTC format is YYMMDDHHmmZ
+ ORGANIZATION "Intel, Server Management Software"
+ CONTACT-INFO
+ ""
+ DESCRIPTION
+ "This SNMP MIB module supports the libvirt SNMP subagent
+ for monitoring information provided by monitoring metrics
+ of virtualized guests, their attached block devices and
+ network interfaces such as performance statistics, domain
+ state, file system information, CPU pinning and CPU
+ utilization, disk errors.
+
+ Version: 1.0 09/08/2017
+
+ Intel copyright information 2017"
+ REVISION
+ "201710061110Z"
+ DESCRIPTION
+ "Fixing types and units in MemoryTable"
+ ::= { hostAssist 6 }
+
+-------------------------------------------------------------------------------
+-- Libvirt Hypervisor Domain Statistics Table
+-------------------------------------------------------------------------------
+
+lvhDomainTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF LvhDomainTableEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "This Group defines the Libvirt Domain Stats Table."
+ ::= { libvirtHypervisor 1 }
+
+lvhDomainTableEntry OBJECT-TYPE
+ SYNTAX LvhDomainTableEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "This Group defines the Libvirt Domain Stats Table Entry."
+ INDEX { lvhDomainName }
+ ::= { lvhDomainTable 1 }
+
+LvhDomainTableEntry ::= SEQUENCE {
+ lvhDomainName DisplayString,
+ lvhDomainStateState INTEGER,
+ lvhDomainStateReason INTEGER,
+ lvhCPUTotalTimeUser Counter64,
+ lvhCPUTotalTimeSystem Counter64,
+ lvhVirtCPUTotal Integer32,
+ lvhMemoryTotal Integer32
+}
+
+lvhDomainName OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..50))
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Textual string containing a VM name."
+ ::= { lvhDomainTableEntry 1 }
+
+lvhDomainStateState OBJECT-TYPE
+ SYNTAX INTEGER {
+ unknown(0),
+ running(1),
+ blocked(2),
+ paused(3),
+ shutdown(4),
+ shutoff(5),
+ crashed(6),
+ pmususpended(7)
+ }
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "State of the VM, returned as number from virDomainState enum."
+ ::= { lvhDomainTableEntry 2 }
+
+lvhDomainStateReason OBJECT-TYPE
+ SYNTAX Integer32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Reason for entering given state, returned as int from
+ virDomain*Reason enum corresponding to given state."
+ ::= { lvhDomainTableEntry 3 }
+
+lvhCPUTotalTimeUser OBJECT-TYPE
+ SYNTAX Counter64
+ UNITS "nanoseconds"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "User CPU time spent in nanoseconds."
+ ::= { lvhDomainTableEntry 4 }
+
+lvhCPUTotalTimeSystem OBJECT-TYPE
+ SYNTAX Counter64
+ UNITS "nanoseconds"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "System CPU time spent in nanoseconds."
+ ::= { lvhDomainTableEntry 5 }
+
+lvhVirtCPUTotal OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "percent"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "CPU utilization in percentage."
+ ::= { lvhDomainTableEntry 6 }
+
+lvhMemoryTotal OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "bytes"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Memory in bytes used by the domain."
+ ::= { lvhDomainTableEntry 7 }
+
+-------------------------------------------------------------------------------
+-- Libvirt Hypervisor Memory Statistics Table
+-------------------------------------------------------------------------------
+
+lvhMemoryTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF LvhMemoryTableEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "This Group defines the Libvirt Hypervisor Memory Table."
+ ::= { libvirtHypervisor 2 }
+
+lvhMemoryTableEntry OBJECT-TYPE
+ SYNTAX LvhMemoryTableEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "This Group defines the Libvirt Hypervisor Memory Table Entry."
+ INDEX { lvhMemoryDomainName }
+ ::= { lvhMemoryTable 1 }
+
+LvhMemoryTableEntry ::= SEQUENCE {
+ lvhMemoryDomainName DisplayString,
+ lvhMemorySwapIn Unsigned32,
+ lvhMemorySwapOut Unsigned32,
+ lvhMemoryMajorFault Unsigned32,
+ lvhMemoryMinorFault Unsigned32,
+ lvhMemoryUnused Unsigned32,
+ lvhMemoryAvailable Unsigned32,
+ lvhMemoryActualBalloon Unsigned32,
+ lvhMemoryRss Unsigned32,
+ lvhMemoryUsable Unsigned32,
+ lvhMemoryLastUpdate Counter64
+}
+
+lvhMemoryDomainName OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..50))
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Textual string containing a VM name."
+ ::= { lvhMemoryTableEntry 1 }
+
+lvhMemorySwapIn OBJECT-TYPE
+ SYNTAX Unsigned32
+ UNITS "bytes"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Amount of data read from swap space."
+ ::= { lvhMemoryTableEntry 2 }
+
+lvhMemorySwapOut OBJECT-TYPE
+ SYNTAX Unsigned32
+ UNITS "bytes"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Amount of memory written out to swap space."
+ ::= { lvhMemoryTableEntry 3 }
+
+lvhMemoryMajorFault OBJECT-TYPE
+ SYNTAX Unsigned32
+ UNITS "in 24h (x1024)"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Number of page faults when disk IO was required."
+ ::= { lvhMemoryTableEntry 4 }
+
+lvhMemoryMinorFault OBJECT-TYPE
+ SYNTAX Unsigned32
+ UNITS "in 24h (x1024)"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Number of other page faults."
+ ::= { lvhMemoryTableEntry 5 }
+
+lvhMemoryUnused OBJECT-TYPE
+ SYNTAX Unsigned32
+ UNITS "bytes"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Amount of memory left unused by the system."
+ ::= { lvhMemoryTableEntry 6 }
+
+lvhMemoryAvailable OBJECT-TYPE
+ SYNTAX Unsigned32
+ UNITS "bytes"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Amount of usable memory as seen by the domain."
+ ::= { lvhMemoryTableEntry 7 }
+
+lvhMemoryActualBalloon OBJECT-TYPE
+ SYNTAX Unsigned32
+ UNITS "bytes"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Memory currently used."
+ ::= { lvhMemoryTableEntry 8 }
+
+lvhMemoryRss OBJECT-TYPE
+ SYNTAX Unsigned32
+ UNITS "bytes"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Resident Set Size of running domain's process."
+ ::= { lvhMemoryTableEntry 9 }
+
+lvhMemoryUsable OBJECT-TYPE
+ SYNTAX Unsigned32
+ UNITS "bytes"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Amount of memory which can be reclaimed by
+ balloon without causing host swapping."
+ ::= { lvhMemoryTableEntry 10 }
+
+lvhMemoryLastUpdate OBJECT-TYPE
+ SYNTAX Counter64
+ UNITS "seconds (x1024)"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Timestamp of the last update of statistics."
+ ::= { lvhMemoryTableEntry 11 }
+
+-------------------------------------------------------------------------------
+-- Libvirt Hypervisor Perf Statistics Table
+-------------------------------------------------------------------------------
+
+lvhPerfTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF LvhPerfTableEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "This Group defines the Libvirt Hypervisor Perf Table."
+ ::= { libvirtHypervisor 3 }
+
+lvhPerfTableEntry OBJECT-TYPE
+ SYNTAX LvhPerfTableEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "This Group defines the Libvirt Hypervisor Perf Table Entry."
+ INDEX { lvhPerfDomainName }
+ ::= { lvhPerfTable 1 }
+
+LvhPerfTableEntry ::= SEQUENCE {
+ lvhPerfDomainName DisplayString,
+ lvhPerfAlignmentFaults Integer32,
+ lvhPerfBranchInstructions Integer32,
+ lvhPerfBranchMisses Integer32,
+ lvhPerfBusCycles Integer32,
+ lvhPerfCacheMisses Integer32,
+ lvhPerfCacheReferences Integer32,
+ lvhPerfCmt Integer32,
+ lvhPerfContextSwitches Integer32,
+ lvhPerfCPUClock Counter64,
+ lvhPerfCPUCycles Counter64,
+ lvhPerfCPUMigrations Integer32,
+ lvhPerfEmulationFaults Integer32,
+ lvhPerfInstructions Integer32,
+ lvhPerfMbml Integer32,
+ lvhPerfMbmt Integer32,
+ lvhPerfPageFaults Integer32,
+ lvhPerfPageFaultsMaj Integer32,
+ lvhPerfPageFaultsMin Integer32,
+ lvhPerfRefCPUCycles Counter64,
+ lvhPerfTaskClock Counter64
+}
+
+lvhPerfDomainName OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..50))
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "Textual string containing a VM name."
+ ::= { lvhPerfTableEntry 1 }
+
+lvhPerfAlignmentFaults OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "in 24h"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "Count of alignment faults."
+ ::= { lvhPerfTableEntry 2 }
+
+lvhPerfBranchInstructions OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "in 24h"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "Count of branch instructions."
+ ::= { lvhPerfTableEntry 3 }
+
+lvhPerfBranchMisses OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "in 24h"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "Count of branch misses."
+ ::= { lvhPerfTableEntry 4 }
+
+lvhPerfBusCycles OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "in 24h"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "Count of bus cycles."
+ ::= { lvhPerfTableEntry 5 }
+
+lvhPerfCacheMisses OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "in 24h"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "Count of cache misses."
+ ::= { lvhPerfTableEntry 6 }
+
+lvhPerfCacheReferences OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "in 24h"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "Count of cache hits."
+ ::= { lvhPerfTableEntry 7 }
+
+lvhPerfCmt OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "bytes"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "Cache usage in bytes."
+ ::= { lvhPerfTableEntry 8 }
+
+lvhPerfContextSwitches OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "in 24h"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "Count of context switches."
+ ::= { lvhPerfTableEntry 9 }
+
+lvhPerfCPUClock OBJECT-TYPE
+ SYNTAX Counter64
+ UNITS "in 24h"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "Count of CPU clock time."
+ ::= { lvhPerfTableEntry 10 }
+
+lvhPerfCPUCycles OBJECT-TYPE
+ SYNTAX Counter64
+ UNITS "in 24h"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "Count of CPU cycles (total/elapsed)."
+ ::= { lvhPerfTableEntry 11 }
+
+lvhPerfCPUMigrations OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "in 24h"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "Count of CPU migrations."
+ ::= { lvhPerfTableEntry 12 }
+
+lvhPerfEmulationFaults OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "in 24h"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "Count of emulation faults."
+ ::= { lvhPerfTableEntry 13 }
+
+lvhPerfInstructions OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "in 24h"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "Count of instructions."
+ ::= { lvhPerfTableEntry 14 }
+
+lvhPerfMbml OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "bytes/s"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "Traffic bandwidth for a memory controller."
+ ::= { lvhPerfTableEntry 15 }
+
+lvhPerfMbmt OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "bytes/s"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "Total system bandwidth from one cache level."
+ ::= { lvhPerfTableEntry 16 }
+
+lvhPerfPageFaults OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "in 24h"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "Count of page faults."
+ ::= { lvhPerfTableEntry 17 }
+
+lvhPerfPageFaultsMaj OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "in 24h"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "Count of major page faults."
+ ::= { lvhPerfTableEntry 18 }
+
+lvhPerfPageFaultsMin OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "in 24h"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "Count of minor page faults."
+ ::= { lvhPerfTableEntry 19 }
+
+lvhPerfRefCPUCycles OBJECT-TYPE
+ SYNTAX Counter64
+ UNITS "in 24h"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "The count of ref CPU cycles."
+ ::= { lvhPerfTableEntry 20 }
+
+lvhPerfTaskClock OBJECT-TYPE
+ SYNTAX Counter64
+ UNITS "in 24h"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "Count of task clock time."
+ ::= { lvhPerfTableEntry 21 }
+
+-------------------------------------------------------------------------------
+-- Libvirt Hypervisor CPUAffinity Table
+-------------------------------------------------------------------------------
+
+lvhCPUAffinityTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF LvhCPUAffinityTableEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "This Group defines the CPUAffinity Table Entry."
+ ::= { libvirtHypervisor 4 }
+
+lvhCPUAffinityTableEntry OBJECT-TYPE
+ SYNTAX LvhCPUAffinityTableEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "This Group defines the Libvirt Hypervisor CPU Affinity Table Entry."
+ INDEX { lvhAffinityDomainName, lvhCPUIndex, lvhVCPUIndex }
+ ::= { lvhCPUAffinityTable 1 }
+
+LvhCPUAffinityTableEntry ::= SEQUENCE {
+ lvhAffinityDomainName DisplayString,
+ lvhCPUIndex Integer32,
+ lvhVCPUIndex Integer32,
+ lvhCPUAffinity Integer32
+}
+
+lvhAffinityDomainName OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..50))
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "Textual string containing the VM name."
+ ::= { lvhCPUAffinityTableEntry 1 }
+
+lvhCPUIndex OBJECT-TYPE
+ SYNTAX Integer32 (0..999)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "CPU index."
+ ::= { lvhCPUAffinityTableEntry 2 }
+
+lvhVCPUIndex OBJECT-TYPE
+ SYNTAX Integer32 (0..999)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "Virtual CPU index."
+ ::= { lvhCPUAffinityTableEntry 3 }
+
+lvhCPUAffinity OBJECT-TYPE
+ SYNTAX Integer32 (0..1)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "Pinning of domain VCPU to host physical CPU."
+ ::= { lvhCPUAffinityTableEntry 4 }
+
+-------------------------------------------------------------------------------
+-- Libvirt Hypervisor VCPU Table
+-------------------------------------------------------------------------------
+
+lvhVirtVCPUTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF LvhVirtVCPUTableEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "This Group defines the VirtVCPU Table Entry."
+ ::= { libvirtHypervisor 5 }
+
+lvhVirtVCPUTableEntry OBJECT-TYPE
+ SYNTAX LvhVirtVCPUTableEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "This Group defines the Libvirt Hypervisor VirtVCPU Table Entry."
+ INDEX { lvhVCPUDomainName, lvhVCPUVCPUIndex }
+ ::= { lvhVirtVCPUTable 1 }
+
+LvhVirtVCPUTableEntry ::= SEQUENCE {
+ lvhVCPUDomainName DisplayString,
+ lvhVCPUVCPUIndex Integer32,
+ lvhVirtVCPU Counter64
+}
+
+lvhVCPUDomainName OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..50))
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "Textual string containing the VM name."
+ ::= { lvhVirtVCPUTableEntry 1 }
+
+lvhVCPUVCPUIndex OBJECT-TYPE
+ SYNTAX Integer32 (0..999)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "Virtual CPU index."
+ ::= { lvhVirtVCPUTableEntry 2 }
+
+lvhVirtVCPU OBJECT-TYPE
+ SYNTAX Counter64
+ UNITS "nanoseconds"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "Time spent by virtual CPU."
+ ::= { lvhVirtVCPUTableEntry 3 }
+
+-------------------------------------------------------------------------------
+-- Libvirt Hypervisor DiskError Table
+-------------------------------------------------------------------------------
+
+lvhDiskErrorTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF LvhDiskErrorTableEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "This Group defines the Libvirt Hypervisor DiskError Table."
+ ::= { libvirtHypervisor 6 }
+
+lvhDiskErrorTableEntry OBJECT-TYPE
+ SYNTAX LvhDiskErrorTableEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "This Group defines the Libvirt Hypervisor DiskEror Table Entry."
+ INDEX { lvhDiskDomainName, lvhDiskName }
+ ::= { lvhDiskErrorTable 1 }
+
+LvhDiskErrorTableEntry ::= SEQUENCE {
+ lvhDiskDomainName DisplayString,
+ lvhDiskName DisplayString,
+ lvhDiskError INTEGER
+}
+
+lvhDiskDomainName OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..50))
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "Textual string containing a VM name."
+ ::= { lvhDiskErrorTableEntry 1 }
+
+lvhDiskName OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..20))
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "Textual string containing a disk name."
+ ::= { lvhDiskErrorTableEntry 2 }
+
+lvhDiskError OBJECT-TYPE
+ SYNTAX INTEGER {
+ none(0),
+ unspec(1),
+ nospace(2)
+ }
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "Disk error code."
+ ::= { lvhDiskErrorTableEntry 3 }
+
+-------------------------------------------------------------------------------
+-- Libvirt Hypervisor Block Device Statistics Table
+-------------------------------------------------------------------------------
+
+lvhBlockDeviceTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF LvhBlockDeviceTableEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "This Group defines the Libvirt Hypervisor Block Device Table."
+ ::= { libvirtHypervisor 7 }
+
+lvhBlockDeviceTableEntry OBJECT-TYPE
+ SYNTAX LvhBlockDeviceTableEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "This Group defines the Libvirt Hypervisor Block Device Table Entry."
+ INDEX { lvhBlockDomainName, lvhBlockDeviceName }
+ ::= { lvhBlockDeviceTable 1 }
+
+LvhBlockDeviceTableEntry ::= SEQUENCE {
+ lvhBlockDomainName DisplayString,
+ lvhBlockDeviceName DisplayString,
+ lvhDiskOpsRead Integer32,
+ lvhDiskOpsWrite Integer32,
+ lvhDiskOctetsRead Integer32,
+ lvhDiskOctetsWrite Integer32,
+ lvhDiskTimeCacheRead Counter64,
+ lvhDiskTimeCacheWrite Counter64
+}
+
+lvhBlockDomainName OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..50))
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "Textual string containing a VM name."
+ ::= { lvhBlockDeviceTableEntry 1 }
+
+lvhBlockDeviceName OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..20))
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "Textual string containing a block device name."
+ ::= { lvhBlockDeviceTableEntry 2 }
+
+lvhDiskOpsRead OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "in 24h"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "Number of read requests."
+ ::= { lvhBlockDeviceTableEntry 3 }
+
+lvhDiskOpsWrite OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "in 24h"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "Number of write requests."
+ ::= { lvhBlockDeviceTableEntry 4 }
+
+lvhDiskOctetsRead OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "in 24h"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "Number of read bytes."
+ ::= { lvhBlockDeviceTableEntry 5 }
+
+lvhDiskOctetsWrite OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "in 24h"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "Number of write bytes."
+ ::= { lvhBlockDeviceTableEntry 6 }
+
+lvhDiskTimeCacheRead OBJECT-TYPE
+ SYNTAX Counter64
+ UNITS "nanoseconds"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "Total time spent on cache reads."
+ ::= { lvhBlockDeviceTableEntry 7 }
+
+lvhDiskTimeCacheWrite OBJECT-TYPE
+ SYNTAX Counter64
+ UNITS "nanoseconds"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "Total times spent on cache writes."
+ ::= { lvhBlockDeviceTableEntry 8 }
+
+-------------------------------------------------------------------------------
+-- Libvirt Hypervisor Block Device Flush Statistics Table
+-------------------------------------------------------------------------------
+
+lvhBlockDevFlushTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF LvhBlockDevFlushTableEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "This Group defines the Libvirt Hypervisor Block Device Table."
+ ::= { libvirtHypervisor 8 }
+
+lvhBlockDevFlushTableEntry OBJECT-TYPE
+ SYNTAX LvhBlockDevFlushTableEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "This Group defines the Libvirt Hypervisor Block Device Table Entry."
+ INDEX { lvhBlockDevFlushDomainName, lvhBlockDevFlushDeviceName }
+ ::= { lvhBlockDevFlushTable 1 }
+
+LvhBlockDevFlushTableEntry ::= SEQUENCE {
+ lvhBlockDevFlushDomainName DisplayString,
+ lvhBlockDevFlushDeviceName DisplayString,
+ lvhTotalRequestsFlush Integer32,
+ lvhTotalTimeInMsFlush Integer32
+}
+
+lvhBlockDevFlushDomainName OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..50))
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "Textual string containing a VM name."
+ ::= { lvhBlockDevFlushTableEntry 1 }
+
+lvhBlockDevFlushDeviceName OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..20))
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "Textual string containing a block device name."
+ ::= { lvhBlockDevFlushTableEntry 2 }
+
+lvhTotalRequestsFlush OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "in 24h"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "Total number of flush requests."
+ ::= { lvhBlockDevFlushTableEntry 3 }
+
+lvhTotalTimeInMsFlush OBJECT-TYPE
+ SYNTAX Integer32
+ UNITS "milliseconds"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "The total time spent on cache flushing."
+ ::= { lvhBlockDevFlushTableEntry 4 }
+
+-------------------------------------------------------------------------------
+-- Libvirt Hypervisor Network Interface Statistics Table
+-------------------------------------------------------------------------------
+
+lvhNetworkIfaceTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF LvhNetworkIfaceTableEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION "This Group defines the Libvirt Hypervisor Network Interface
+ Table."
+ ::= { libvirtHypervisor 9 }
+
+lvhNetworkIfaceTableEntry OBJECT-TYPE
+ SYNTAX LvhNetworkIfaceTableEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "This Group defines the Libvirt Hypervisor Network Interface Table Entry."
+ INDEX { lvhNetIfDomainName, lvhInterfaceName }
+ ::= { lvhNetworkIfaceTable 1 }
+
+LvhNetworkIfaceTableEntry ::= SEQUENCE {
+ lvhNetIfDomainName DisplayString,
+ lvhInterfaceName DisplayString,
+ lvhIfBytesReceived Counter64,
+ lvhIfBytesTransmitted Counter64,
+ lvhIfPacketsReceived Counter64,
+ lvhIfPacketsTransmitted Counter64,
+ lvhIfErrorsReceive Counter64,
+ lvhIfErrorsTransmission Counter64,
+ lvhIfDroppedReceive Counter64,
+ lvhIfDroppedTransmit Counter64
+}
+
+lvhNetIfDomainName OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..50))
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "Textual string containing a VM name."
+ ::= { lvhNetworkIfaceTableEntry 1 }
+
+lvhInterfaceName OBJECT-TYPE
+ SYNTAX DisplayString (SIZE (0..20))
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "Textual string containing a network interface name."
+ ::= { lvhNetworkIfaceTableEntry 2 }
+
+lvhIfBytesReceived OBJECT-TYPE
+ SYNTAX Counter64
+ UNITS "in 24h"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "Number of bytes received."
+ ::= { lvhNetworkIfaceTableEntry 3 }
+
+lvhIfBytesTransmitted OBJECT-TYPE
+ SYNTAX Counter64
+ UNITS "in 24h"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "Number of bytes transmitted."
+ ::= { lvhNetworkIfaceTableEntry 4 }
+
+lvhIfPacketsReceived OBJECT-TYPE
+ SYNTAX Counter64
+ UNITS "in 24h"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "Number of packets received."
+ ::= { lvhNetworkIfaceTableEntry 5 }
+
+lvhIfPacketsTransmitted OBJECT-TYPE
+ SYNTAX Counter64
+ UNITS "in 24h"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "Number of packets transmitted."
+ ::= { lvhNetworkIfaceTableEntry 6 }
+
+lvhIfErrorsReceive OBJECT-TYPE
+ SYNTAX Counter64
+ UNITS "in 24h"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "Number of receive errors."
+ ::= { lvhNetworkIfaceTableEntry 7 }
+
+lvhIfErrorsTransmission OBJECT-TYPE
+ SYNTAX Counter64
+ UNITS "in 24h"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "Number of transmission errors."
+ ::= { lvhNetworkIfaceTableEntry 8 }
+
+lvhIfDroppedReceive OBJECT-TYPE
+ SYNTAX Counter64
+ UNITS "in 24h"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "Number of receive packets dropped."
+ ::= { lvhNetworkIfaceTableEntry 9 }
+
+lvhIfDroppedTransmit OBJECT-TYPE
+ SYNTAX Counter64
+ UNITS "in 24h"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION "Number of transmit packets dropped."
+ ::= { lvhNetworkIfaceTableEntry 10 }
+
+END
diff --git a/src/collectd/Makefile b/src/collectd/Makefile
index 670c14fa..13121700 100644
--- a/src/collectd/Makefile
+++ b/src/collectd/Makefile
@@ -39,6 +39,11 @@ ifeq ($(XDG_CACHE_HOME_DIR),)
XDG_CACHE_HOME_DIR = $(shell echo $$HOME)
endif
+SAMPLE_CONF_VARIANT_NAME = collectd_sample_configs
+ifdef COLLECTD_USE_MASTER
+SAMPLE_CONF_VARIANT_NAME = collectd_sample_configs-master
+endif
+
CONFIG_CMD += --enable-syslog
CONFIG_CMD += --enable-logfile
CONFIG_CMD += --with-libpqos=$(LIBPQOS_DIR)
@@ -82,7 +87,9 @@ ifndef DOCKER
endif
$(AT)sudo ./ovs_pmd_stats_config.sh
$(AT)sudo ./snmp_mib_config.sh
- $(AT)sudo ./include_config.sh
+
+ @echo "Using sample configs: $(SAMPLE_CONF_VARIANT_NAME)"
+ $(AT)sudo ./include_config.sh $(SAMPLE_CONF_VARIANT_NAME)
@echo "Make install done"
install: force_install
@@ -118,6 +125,7 @@ $(WORK_DIR):
$(AT)git clone $(COLLECTD_URL)
$(TAG_DONE_FLAG): $(WORK_DIR)
+ @echo "Checking out collectd from tag: $(COLLECTD_TAG)"
$(AT)cd collectd; git checkout $(COLLECTD_TAG)
ifneq ($(PATCH_FILE),)
$(AT)cd $(WORK_DIR); patch -p1 < ../$(PATCH_FILE)
diff --git a/src/collectd/collectd_sample_configs-master/csv.conf b/src/collectd/collectd_sample_configs-master/csv.conf
new file mode 100644
index 00000000..99a8498d
--- /dev/null
+++ b/src/collectd/collectd_sample_configs-master/csv.conf
@@ -0,0 +1,19 @@
+# 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 csv
+<Plugin csv>
+ DataDir "/tmp/collectd/csv"
+ StoreRates false
+</Plugin>
diff --git a/src/collectd/collectd_sample_configs-master/default_plugins.conf b/src/collectd/collectd_sample_configs-master/default_plugins.conf
new file mode 100644
index 00000000..c96b0076
--- /dev/null
+++ b/src/collectd/collectd_sample_configs-master/default_plugins.conf
@@ -0,0 +1,31 @@
+# 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.
+#Hostname ""
+
+LoadPlugin cpufreq
+LoadPlugin disk
+LoadPlugin ethstat
+LoadPlugin ipc
+LoadPlugin ipmi
+LoadPlugin load
+LoadPlugin memory
+LoadPlugin numa
+LoadPlugin processes
+LoadPlugin df
+LoadPlugin turbostat
+LoadPlugin uptime
+LoadPlugin contextswitch
+LoadPlugin irq
+LoadPlugin df
+LoadPlugin swap
diff --git a/src/collectd/collectd_sample_configs-master/dpdkevents.conf b/src/collectd/collectd_sample_configs-master/dpdkevents.conf
new file mode 100644
index 00000000..fdb6f3db
--- /dev/null
+++ b/src/collectd/collectd_sample_configs-master/dpdkevents.conf
@@ -0,0 +1,35 @@
+# 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-master/dpdkstat.conf b/src/collectd/collectd_sample_configs-master/dpdkstat.conf
new file mode 100644
index 00000000..59906d4e
--- /dev/null
+++ b/src/collectd/collectd_sample_configs-master/dpdkstat.conf
@@ -0,0 +1,23 @@
+# 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-master/exec.conf b/src/collectd/collectd_sample_configs-master/exec.conf
new file mode 100644
index 00000000..0a291bdb
--- /dev/null
+++ b/src/collectd/collectd_sample_configs-master/exec.conf
@@ -0,0 +1,20 @@
+# 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 exec
+
+<Plugin exec>
+ # For OVS PMD stats plugin
+ Exec "collectd_exec" "/opt/collectd/etc/collectd.conf.d/ovs_pmd_stats.sh"
+ NotificationExec "collectd_exec" "/opt/collectd/etc/collectd.conf.d/write_notification.sh"
+</Plugin>
diff --git a/src/collectd/collectd_sample_configs-master/hugepages.conf b/src/collectd/collectd_sample_configs-master/hugepages.conf
new file mode 100644
index 00000000..97cd2d17
--- /dev/null
+++ b/src/collectd/collectd_sample_configs-master/hugepages.conf
@@ -0,0 +1,22 @@
+# 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 hugepages
+
+<Plugin hugepages>
+ ReportPerNodeHP true
+ ReportRootHP true
+ ValuesPages true
+ ValuesBytes false
+ ValuesPercentage false
+</Plugin>
diff --git a/src/collectd/collectd_sample_configs-master/intel_pmu.conf b/src/collectd/collectd_sample_configs-master/intel_pmu.conf
new file mode 100644
index 00000000..959fb8a1
--- /dev/null
+++ b/src/collectd/collectd_sample_configs-master/intel_pmu.conf
@@ -0,0 +1,23 @@
+# 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 intel_pmu
+
+<Plugin intel_pmu>
+ ReportHardwareCacheEvents true
+ ReportKernelPMUEvents true
+ ReportSoftwareEvents true
+# EventList "/var/cache/pmu/GenuineIntel-6-2D-core.json"
+# HardwareEvents "L2_RQSTS.CODE_RD_HIT,L2_RQSTS.CODE_RD_MISS" "L2_RQSTS.ALL_CODE_RD"
+ Cores "[0-4]"
+</Plugin>
diff --git a/src/collectd/collectd_sample_configs-master/kafka.conf b/src/collectd/collectd_sample_configs-master/kafka.conf
new file mode 100644
index 00000000..f81e87fd
--- /dev/null
+++ b/src/collectd/collectd_sample_configs-master/kafka.conf
@@ -0,0 +1,21 @@
+# 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 write_kafka
+
+<Plugin write_kafka>
+ Property "metadata.broker.list" "localhost:9092"
+ <Topic "collectd">
+ Format JSON
+ </Topic>
+</Plugin>
diff --git a/src/collectd/collectd_sample_configs-master/mcelog.conf b/src/collectd/collectd_sample_configs-master/mcelog.conf
new file mode 100644
index 00000000..633a3bcd
--- /dev/null
+++ b/src/collectd/collectd_sample_configs-master/mcelog.conf
@@ -0,0 +1,24 @@
+# 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 mcelog>
+ Interval 1
+</LoadPlugin>
+
+<Plugin mcelog>
+ <Memory>
+ McelogClientSocket "/var/run/mcelog-client"
+ PersistentNotification false
+ </Memory>
+## McelogLogfile "/var/log/mcelog"
+</Plugin>
diff --git a/src/collectd/collectd_sample_configs-master/network.conf b/src/collectd/collectd_sample_configs-master/network.conf
new file mode 100644
index 00000000..4309ed86
--- /dev/null
+++ b/src/collectd/collectd_sample_configs-master/network.conf
@@ -0,0 +1,18 @@
+# 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 network
+<Plugin network>
+ Server "127.0.0.1" "25826"
+</Plugin>
diff --git a/src/collectd/collectd_sample_configs-master/ovs_events.conf b/src/collectd/collectd_sample_configs-master/ovs_events.conf
new file mode 100644
index 00000000..250e1e43
--- /dev/null
+++ b/src/collectd/collectd_sample_configs-master/ovs_events.conf
@@ -0,0 +1,24 @@
+# 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 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-master/ovs_pmd_stats.sh b/src/collectd/collectd_sample_configs-master/ovs_pmd_stats.sh
new file mode 100755
index 00000000..0517717f
--- /dev/null
+++ b/src/collectd/collectd_sample_configs-master/ovs_pmd_stats.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+# 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.
+sudo python /usr/local/src/ovs_pmd_stats.py --socket-pid-file /var/run/openvswitch/ovs-vswitchd.pid
diff --git a/src/collectd/collectd_sample_configs-master/ovs_stats.conf b/src/collectd/collectd_sample_configs-master/ovs_stats.conf
new file mode 100644
index 00000000..2a6d2fb2
--- /dev/null
+++ b/src/collectd/collectd_sample_configs-master/ovs_stats.conf
@@ -0,0 +1,23 @@
+# 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 ovs_stats>
+ Interval 1
+</LoadPlugin>
+<Plugin "ovs_stats">
+# Port "6640"
+# Address "127.0.0.1"
+# Socket "/var/run/openvswitch/db.sock"
+# Bridges "br0"
+</Plugin>
diff --git a/src/collectd/collectd_sample_configs-master/rdt.conf b/src/collectd/collectd_sample_configs-master/rdt.conf
new file mode 100644
index 00000000..ae983dc0
--- /dev/null
+++ b/src/collectd/collectd_sample_configs-master/rdt.conf
@@ -0,0 +1,20 @@
+# 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 intel_rdt>
+ Interval 1
+</LoadPlugin>
+
+<Plugin "intel_rdt">
+ Cores ""
+</Plugin>
diff --git a/src/collectd/collectd_sample_configs-master/snmp_agent.conf b/src/collectd/collectd_sample_configs-master/snmp_agent.conf
new file mode 100644
index 00000000..7cbde816
--- /dev/null
+++ b/src/collectd/collectd_sample_configs-master/snmp_agent.conf
@@ -0,0 +1,785 @@
+# 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 snmp_agent
+<Plugin snmp_agent>
+# Intel PMU MIB
+ <Table "pmuTable">
+ IndexOID "INTEL-PMU-MIB::pmuGroupIndex"
+ <Data "pmuGroupDescr">
+ <IndexKey>
+ Source "PluginInstance"
+ </IndexKey>
+ Plugin "intel_pmu"
+ OIDs "INTEL-PMU-MIB::pmuGroupDescr"
+ </Data>
+ <Data "pmuL1DCacheLoads">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "L1-dcache-loads"
+ OIDs "INTEL-PMU-MIB::pmuL1DCacheLoads"
+ </Data>
+ <Data "pmuL1DCacheLoadMisses">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "L1-dcache-load-misses"
+ OIDs "INTEL-PMU-MIB::pmuL1DCacheLoadMisses"
+ </Data>
+ <Data "pmuL1DCacheStores">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "L1-dcache-stores"
+ OIDs "INTEL-PMU-MIB::pmuL1DCacheStores"
+ </Data>
+ <Data "pmuL1DCacheStoreMisses">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "L1-dcache-store-misses"
+ OIDs "INTEL-PMU-MIB::pmuL1DCacheStoreMisses"
+ </Data>
+ <Data "pmuL1DCachePrefetches">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "L1-dcache-prefetches"
+ OIDs "INTEL-PMU-MIB::pmuL1DCachePrefetches"
+ </Data>
+ <Data "pmuL1DCachePrefetchMisses">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "L1-dcache-prefetch-misses"
+ OIDs "INTEL-PMU-MIB::pmuL1DCachePrefetchMisses"
+ </Data>
+ <Data "pmuL1ICacheLoads">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "L1-icache-loads"
+ OIDs "INTEL-PMU-MIB::pmuL1ICacheLoads"
+ </Data>
+ <Data "pmuL1ICacheLoadMisses">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "L1-icache-load-misses"
+ OIDs "INTEL-PMU-MIB::pmuL1ICacheLoadMisses"
+ </Data>
+ <Data "pmuL1ICachePrefetches">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "L1-icache-prefetches"
+ OIDs "INTEL-PMU-MIB::pmuL1ICachePrefetches"
+ </Data>
+ <Data "pmuL1ICachePrefetchMisses">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "L1-icache-prefetch-misses"
+ OIDs "INTEL-PMU-MIB::pmuL1ICachePrefetchMisses"
+ </Data>
+ <Data "pmuLLCLoads">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "LLC-loads"
+ OIDs "INTEL-PMU-MIB::pmuLLCLoads"
+ </Data>
+ <Data "pmuLLCLoadMisses">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "LLC-load-misses"
+ OIDs "INTEL-PMU-MIB::pmuLLCLoadMisses"
+ </Data>
+ <Data "pmuLLCStores">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "LLC-stores"
+ OIDs "INTEL-PMU-MIB::pmuLLCStores"
+ </Data>
+ <Data "pmuLLCStoreMisses">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "LLC-store-misses"
+ OIDs "INTEL-PMU-MIB::pmuLLCStoreMisses"
+ </Data>
+ <Data "pmuLLCPrefetches">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "LLC-prefetches"
+ OIDs "INTEL-PMU-MIB::pmuLLCPrefetches"
+ </Data>
+ <Data "pmuLLCPrefetchMisses">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "LLC-prefetch-misses"
+ OIDs "INTEL-PMU-MIB::pmuLLCPrefetchMisses"
+ </Data>
+ <Data "pmuDTLBLoads">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "dTLB-loads"
+ OIDs "INTEL-PMU-MIB::pmuDTLBLoads"
+ </Data>
+ <Data "pmuDTLBLoadMisses">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "dTLB-load-misses"
+ OIDs "INTEL-PMU-MIB::pmuDTLBLoadMisses"
+ </Data>
+ <Data "pmuDTLBStores">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "dTLB-stores"
+ OIDs "INTEL-PMU-MIB::pmuDTLBStores"
+ </Data>
+ <Data "pmuDTLBStoreMisses">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "dTLB-store-misses"
+ OIDs "INTEL-PMU-MIB::pmuDTLBStoreMisses"
+ </Data>
+ <Data "pmuDTLBPrefetches">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "dTLB-prefetches"
+ OIDs "INTEL-PMU-MIB::pmuDTLBPrefetches"
+ </Data>
+ <Data "pmuDTLBPrefetchMisses">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "dTLB-prefetch-misses"
+ OIDs "INTEL-PMU-MIB::pmuDTLBPrefetchMisses"
+ </Data>
+ <Data "pmuITLBLoads">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "iTLB-loads"
+ OIDs "INTEL-PMU-MIB::pmuITLBLoads"
+ </Data>
+ <Data "pmuITLBLoadMisses">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "iTLB-load-misses"
+ OIDs "INTEL-PMU-MIB::pmuITLBLoadMisses"
+ </Data>
+ <Data "pmuBranchLoads">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "branch-loads"
+ OIDs "INTEL-PMU-MIB::pmuBranchLoads"
+ </Data>
+ <Data "pmuBranchLoadMisses">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "branch-load-misses"
+ OIDs "INTEL-PMU-MIB::pmuBranchLoadMisses"
+ </Data>
+ <Data "pmuCpuCycles">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "cpu-cycles"
+ OIDs "INTEL-PMU-MIB::pmuCpuCycles"
+ </Data>
+ <Data "pmuInstructions">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "instructions"
+ OIDs "INTEL-PMU-MIB::pmuInstructions"
+ </Data>
+ <Data "pmuCacheReferences">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "cache-references"
+ OIDs "INTEL-PMU-MIB::pmuCacheReferences"
+ </Data>
+ <Data "pmuCacheMisses">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "cache-misses"
+ OIDs "INTEL-PMU-MIB::pmuCacheMisses"
+ </Data>
+ <Data "pmuBranches">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "branches"
+ OIDs "INTEL-PMU-MIB::pmuBranches"
+ </Data>
+ <Data "pmuBranchMisses">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "branch-misses"
+ OIDs "INTEL-PMU-MIB::pmuBranchMisses"
+ </Data>
+ <Data "pmuBusCycles">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "bus-cycles"
+ OIDs "INTEL-PMU-MIB::pmuBusCycles"
+ </Data>
+ <Data "pmuCpuClock">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "cpu-clock"
+ OIDs "INTEL-PMU-MIB::pmuCpuClock"
+ </Data>
+ <Data "pmuTaskClock">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "task-clock"
+ OIDs "INTEL-PMU-MIB::pmuTaskClock"
+ </Data>
+ <Data "pmuContextSwitches">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "context-switches"
+ OIDs "INTEL-PMU-MIB::pmuContextSwitches"
+ </Data>
+ <Data "pmuCpuMigrations">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "cpu-migrations"
+ OIDs "INTEL-PMU-MIB::pmuCpuMigrations"
+ </Data>
+ <Data "pmuPageFaults">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "page-faults"
+ OIDs "INTEL-PMU-MIB::pmuPageFaults"
+ </Data>
+ <Data "pmuMinorFaults">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "minor-faults"
+ OIDs "INTEL-PMU-MIB::pmuMinorFaults"
+ </Data>
+ <Data "pmuMajorFaults">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "major-faults"
+ OIDs "INTEL-PMU-MIB::pmuMajorFaults"
+ </Data>
+ <Data "pmuAlignmentFaults">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "alignment-faults"
+ OIDs "INTEL-PMU-MIB::pmuAlignmentFaults"
+ </Data>
+ <Data "pmuEmulationFaults">
+ Plugin "intel_pmu"
+ Type "counter"
+ TypeInstance "emulation-faults"
+ OIDs "INTEL-PMU-MIB::pmuEmulationFaults"
+ </Data>
+ </Table>
+# Intel RDT MIB
+ <Table "rdtTable">
+ IndexOID "INTEL-RDT-MIB::rdtGroupIndex"
+ SizeOID "INTEL-RDT-MIB::rdtGroupNumber"
+ <Data "rdtGroupDescr">
+ <IndexKey>
+ Source "PluginInstance"
+ </IndexKey>
+ Plugin "intel_rdt"
+ OIDs "INTEL-RDT-MIB::rdtGroupDescr"
+ </Data>
+ <Data "rdtLlc">
+ Plugin "intel_rdt"
+ Type "bytes"
+ TypeInstance "llc"
+ OIDs "INTEL-RDT-MIB::rdtLlc"
+ </Data>
+ <Data "rdtIpc">
+ Plugin "intel_rdt"
+ Type "ipc"
+ OIDs "INTEL-RDT-MIB::rdtIpc"
+ </Data>
+ <Data "rdtMbmRemote">
+ Plugin "intel_rdt"
+ Type "memory_bandwidth"
+ TypeInstance "remote"
+ OIDs "INTEL-RDT-MIB::rdtMbmRemote"
+ </Data>
+ <Data "rdtMbmLocal">
+ Plugin "intel_rdt"
+ Type "memory_bandwidth"
+ TypeInstance "local"
+ OIDs "INTEL-RDT-MIB::rdtMbmLocal"
+ </Data>
+ </Table>
+# Intel Mcelog MIB
+ <Table "mcelogTable">
+ IndexOID "INTEL-MCELOG-MIB::memoryGroupIndex"
+ <Data "memoryGroupDescr">
+ <IndexKey>
+ Source "PluginInstance"
+ </IndexKey>
+ Plugin "mcelog"
+ OIDs "INTEL-MCELOG-MIB::memoryGroupDescr"
+ </Data>
+ <Data "memoryCorrectedErrors">
+ Plugin "mcelog"
+ Type "errors"
+ TypeInstance "corrected_memory_errors"
+ OIDs "INTEL-MCELOG-MIB::memoryCorrectedErrors"
+ </Data>
+ <Data "memoryCorrectedTimedErrors">
+ Plugin "mcelog"
+ Type "errors"
+ TypeInstance "corrected_memory_errors_in_24h"
+ OIDs "INTEL-MCELOG-MIB::memoryCorrectedTimedErrors"
+ </Data>
+ <Data "memoryUncorrectedErrors">
+ Plugin "mcelog"
+ Type "errors"
+ TypeInstance "uncorrected_memory_errors"
+ OIDs "INTEL-MCELOG-MIB::memoryUncorrectedErrors"
+ </Data>
+ <Data "memoryUncorrectedTimedErrors">
+ Plugin "mcelog"
+ Type "errors"
+ TypeInstance "uncorrected_memory_errors_in_24h"
+ OIDs "INTEL-MCELOG-MIB::memoryUncorrectedTimedErrors"
+ </Data>
+ </Table>
+# Hugepages
+ <Table "hugepagesTable">
+ <Data "hugepagesNode">
+ <IndexKey>
+ Source "PluginInstance"
+ </IndexKey>
+ Plugin "hugepages"
+ OIDs "INTEL-HUGEPAGES-MIB::hugepagesNode"
+ </Data>
+ <Data "hugepagesMemoryFree">
+ Plugin "hugepages"
+ Type "memory"
+ TypeInstance "free"
+ OIDs "INTEL-HUGEPAGES-MIB::hugepagesMemoryFree"
+ </Data>
+ <Data "hugepagesMemoryUsed">
+ Plugin "hugepages"
+ Type "memory"
+ TypeInstance "used"
+ OIDs "INTEL-HUGEPAGES-MIB::hugepagesMemoryUsed"
+ </Data>
+ <Data "hugepagesPagesFree">
+ Plugin "hugepages"
+ Type "vmpage_number"
+ TypeInstance "free"
+ OIDs "INTEL-HUGEPAGES-MIB::hugepagesPagesFree"
+ </Data>
+ <Data "hugepagesPagesUsed">
+ Plugin "hugepages"
+ Type "vmpage_number"
+ TypeInstance "used"
+ OIDs "INTEL-HUGEPAGES-MIB::hugepagesPagesUsed"
+ </Data>
+ <Data "hugepagesPercentFree">
+ Plugin "hugepages"
+ Type "percent"
+ TypeInstance "free"
+ OIDs "INTEL-HUGEPAGES-MIB::hugepagesPercentFree"
+ </Data>
+ <Data "hugepagesPercentUsed">
+ Plugin "hugepages"
+ Type "percent"
+ TypeInstance "used"
+ OIDs "INTEL-HUGEPAGES-MIB::hugepagesPercentUsed"
+ </Data>
+ </Table>
+ # Libvirt MIB
+ <Table "lvhDomainTable">
+ <Data "DomainName">
+ <IndexKey>
+ Source "PluginInstance"
+ </IndexKey>
+ Plugin "virt"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhDomainName"
+ </Data>
+ <Data "CPUTotalTime">
+ Plugin "virt"
+ Type "ps_cputime"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhCPUTotalTimeUser" "LIBVIRT-HYPERVISOR-MIB::lvhCPUTotalTimeSystem"
+ </Data>
+ <Data "VirtCPUTotal">
+ Plugin "virt"
+ Type "percent"
+ TypeInstance "virt_cpu_total"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhVirtCPUTotal"
+ </Data>
+ <Data "MemoryTotal">
+ Plugin "virt"
+ Type "memory"
+ TypeInstance "total"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhMemoryTotal"
+ </Data>
+ </Table>
+ <Table "MemoryTable">
+ <Data "MemoryDomainName">
+ <IndexKey>
+ Source "PluginInstance"
+ </IndexKey>
+ Plugin "virt"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhMemoryDomainName"
+ </Data>
+ <Data "MemorySwapIn">
+ Plugin "virt"
+ Type "memory"
+ TypeInstance "swap_in"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhMemorySwapIn"
+ </Data>
+ <Data "MemorySwapOut">
+ Plugin "virt"
+ Type "memory"
+ TypeInstance "swap_out"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhMemorySwapOut"
+ </Data>
+ <Data "MemoryMajorFault">
+ Plugin "virt"
+ Type "memory"
+ TypeInstance "major_fault"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhMemoryMajorFault"
+ </Data>
+ <Data "MemoryMinorFault">
+ Plugin "virt"
+ Type "memory"
+ TypeInstance "minor_fault"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhMemoryMinorFault"
+ </Data>
+ <Data "MemoryUnused">
+ Plugin "virt"
+ Type "memory"
+ TypeInstance "unused"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhMemoryUnused"
+ </Data>
+ <Data "MemoryAvailable">
+ Plugin "virt"
+ Type "memory"
+ TypeInstance "available"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhMemoryAvailable"
+ </Data>
+ <Data "MemoryActualBalloon">
+ Plugin "virt"
+ Type "memory"
+ TypeInstance "actual_balloon"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhMemoryActualBalloon"
+ </Data>
+ <Data "MemoryRss">
+ Plugin "virt"
+ Type "memory"
+ TypeInstance "rss"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhMemoryRss"
+ </Data>
+ <Data "MemoryLastUpdate">
+ Plugin "virt"
+ Type "memory"
+ TypeInstance "last_update"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhMemoryLastUpdate"
+ </Data>
+ </Table>
+ <Table "PerfTable">
+ <Data "PerfDomainName">
+ <IndexKey>
+ Source "PluginInstance"
+ </IndexKey>
+ Plugin "virt"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhPerfDomainName"
+ </Data>
+ <Data "PerfAlignmentFaults">
+ Plugin "virt"
+ Type "perf"
+ TypeInstance "perf_alignment_faults"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhPerfAlignmentFaults"
+ </Data>
+ <Data "PerfBranchInstructions">
+ Plugin "virt"
+ Type "perf"
+ TypeInstance "perf_branch_instructions"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhPerfBranchInstructions"
+ </Data>
+ <Data "PerfBranchMisses">
+ Plugin "virt"
+ Type "perf"
+ TypeInstance "perf_branch_misses"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhPerfBranchMisses"
+ </Data>
+ <Data "PerfBusCycles">
+ Plugin "virt"
+ Type "perf"
+ TypeInstance "perf_bus_cycles"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhPerfBusCycles"
+ </Data>
+ <Data "PerfCacheMisses">
+ Plugin "virt"
+ Type "perf"
+ TypeInstance "perf_cache_misses"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhPerfCacheMisses"
+ </Data>
+ <Data "PerfCacheReferences">
+ Plugin "virt"
+ Type "perf"
+ TypeInstance "perf_cache_references"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhPerfCacheReferences"
+ </Data>
+ <Data "PerfCmt">
+ Plugin "virt"
+ Type "perf"
+ TypeInstance "perf_cmt"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhPerfCmt"
+ </Data>
+ <Data "PerfContextSwitches">
+ Plugin "virt"
+ Type "perf"
+ TypeInstance "perf_context_switches"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhPerfContextSwitches"
+ </Data>
+ <Data "PerfCPUClock">
+ Plugin "virt"
+ Type "perf"
+ TypeInstance "perf_cpu_clock"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhPerfCPUClock"
+ </Data>
+ <Data "PerfCPUCycles">
+ Plugin "virt"
+ Type "perf"
+ TypeInstance "perf_cpu_cycles"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhPerfCPUCycles"
+ </Data>
+ <Data "PerfCPUMigrations">
+ Plugin "virt"
+ Type "perf"
+ TypeInstance "perf_cpu_migrations"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhPerfCPUMigrations"
+ </Data>
+ <Data "PerfEmulationFaults">
+ Plugin "virt"
+ Type "perf"
+ TypeInstance "perf_emulation_faults"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhPerfEmulationFaults"
+ </Data>
+ <Data "PerfInstructions">
+ Plugin "virt"
+ Type "perf"
+ TypeInstance "perf_instructions"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhPerfInstructions"
+ </Data>
+ <Data "PerfMbml">
+ Plugin "virt"
+ Type "perf"
+ TypeInstance "perf_mbml"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhPerfMbml"
+ </Data>
+ <Data "PerfMbmt">
+ Plugin "virt"
+ Type "perf"
+ TypeInstance "perf_mbmt"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhPerfMbmt"
+ </Data>
+ <Data "PerfPageFaults">
+ Plugin "virt"
+ Type "perf"
+ TypeInstance "perf_page_faults"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhPerfPageFaults"
+ </Data>
+ <Data "PerfPageFaultsMaj">
+ Plugin "virt"
+ Type "perf"
+ TypeInstance "perf_page_faults_maj"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhPerfPageFaultsMaj"
+ </Data>
+ <Data "PerfPageFaultsMin">
+ Plugin "virt"
+ Type "perf"
+ TypeInstance "perf_page_faults_min"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhPerfPageFaultsMin"
+ </Data>
+ <Data "PerfRefCPUCycles">
+ Plugin "virt"
+ Type "perf"
+ TypeInstance "perf_ref_cpu_cycles"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhPerfRefCPUCycles"
+ </Data>
+ <Data "PerfTaskClock">
+ Plugin "virt"
+ Type "perf"
+ TypeInstance "perf_task_clock"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhPerfTaskClock"
+ </Data>
+ </Table>
+ <Table "lvhCPUAffinityTable">
+ <Data "DomainName">
+ <IndexKey>
+ Source "PluginInstance"
+ </IndexKey>
+ Plugin "virt"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhAffinityDomainName"
+ </Data>
+ <Data "VCPU">
+ Plugin "virt"
+ <IndexKey>
+ Source "TypeInstance"
+ Regex "^vcpu_([0-9]{1,3})-cpu_[0-9]{1,3}$"
+ Group 1
+ </IndexKey>
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhVCPUIndex"
+ </Data>
+ <Data "CPU">
+ Plugin "virt"
+ <IndexKey>
+ Source "TypeInstance"
+ Regex "^vcpu_[0-9]{1,3}-cpu_([0-9]{1,3})$"
+ Group 1
+ </IndexKey>
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhCPUIndex"
+ </Data>
+ <Data "CPUAffinity">
+ Plugin "virt"
+ Type "cpu_affinity"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhCPUAffinity"
+ </Data>
+ </Table>
+ <Table "VirtVCPUTable">
+ <Data "VCPUDomainName">
+ <IndexKey>
+ Source "PluginInstance"
+ </IndexKey>
+ Plugin "virt"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhVCPUDomainName"
+ </Data>
+ <Data "VCPUVCPUIndex">
+ <IndexKey>
+ Source "TypeInstance"
+ Regex "^([0-9]{1,3})$"
+ Group 1
+ </IndexKey>
+ Plugin "virt"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhVCPUVCPUIndex"
+ </Data>
+ <Data "VirtVCPU">
+ Plugin "virt"
+ Type "virt_vcpu"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhVirtVCPU"
+ </Data>
+ </Table>
+ <Table "DiskErrorTable">
+ <Data "DiskDomainName">
+ <IndexKey>
+ Source "PluginInstance"
+ </IndexKey>
+ Plugin "virt"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhDiskDomainName"
+ </Data>
+ <Data "DiskName">
+ <IndexKey>
+ Source "TypeInstance"
+ </IndexKey>
+ Plugin "virt"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhDiskName"
+ </Data>
+ <Data "DiskError">
+ Plugin "virt"
+ Type "disk_error"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhDiskError"
+ </Data>
+ </Table>
+ <Table "BlockDeviceTable">
+ <Data "BlockDomainName">
+ <IndexKey>
+ Source "PluginInstance"
+ </IndexKey>
+ Plugin "virt"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhBlockDomainName"
+ </Data>
+ <Data "BlockDeviceName">
+ <IndexKey>
+ Source "TypeInstance"
+ </IndexKey>
+ Plugin "virt"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhBlockDeviceName"
+ </Data>
+ <Data "DiskOps">
+ Plugin "virt"
+ Type "disk_ops"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhDiskOpsRead" "LIBVIRT-HYPERVISOR-MIB::lvhDiskOpsWrite"
+ </Data>
+ <Data "DiskOctets">
+ Plugin "virt"
+ Type "disk_octets"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhDiskOctetsRead" "LIBVIRT-HYPERVISOR-MIB::lvhDiskOctetsWrite"
+ </Data>
+ <Data "DiskTimeCache">
+ Plugin "virt"
+ Type "disk_time"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhDiskTimeCacheRead" "LIBVIRT-HYPERVISOR-MIB::lvhDiskTimeCacheWrite"
+ </Data>
+ </Table>
+ <Table "BlockDevFlushTable">
+ <Data "BlockDevFlushDomainName">
+ <IndexKey>
+ Source "PluginInstance"
+ </IndexKey>
+ Plugin "virt"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhBlockDevFlushDomainName"
+ </Data>
+ <Data "BlockDevFlushDeviceName">
+ <IndexKey>
+ Source "TypeInstance"
+ Regex "^flush-(.*)$"
+ Group 1
+ </IndexKey>
+ Plugin "virt"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhBlockDevFlushDeviceName"
+ </Data>
+ <Data "TotalRequestsFlush">
+ Plugin "virt"
+ Type "total_requests"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhTotalRequestsFlush"
+ </Data>
+ <Data "TotalTimeInMsFlush">
+ Plugin "virt"
+ Type "total_time_in_ms"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhTotalTimeInMsFlush"
+ </Data>
+ </Table>
+ <Table "NetworkIfaceTable">
+ <Data "NetIfDomainName">
+ <IndexKey>
+ Source "PluginInstance"
+ </IndexKey>
+ Plugin "virt"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhNetIfDomainName"
+ </Data>
+ <Data "InterfaceName">
+ <IndexKey>
+ Source "TypeInstance"
+ </IndexKey>
+ Plugin "virt"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhInterfaceName"
+ </Data>
+ <Data "IfBytes">
+ Plugin "virt"
+ Type "if_octets"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhIfBytesReceived" "LIBVIRT-HYPERVISOR-MIB::lvhIfBytesTransmitted"
+ </Data>
+ <Data "IfPackets">
+ Plugin "virt"
+ Type "if_packets"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhIfPacketsReceived" "LIBVIRT-HYPERVISOR-MIB::lvhIfPacketsTransmitted"
+ </Data>
+ <Data "lvhIfErrors">
+ Plugin "virt"
+ Type "if_errors"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhIfErrorsReceive" "LIBVIRT-HYPERVISOR-MIB::lvhIfErrorsTransmission"
+ </Data>
+ <Data "IfDroppedReceive">
+ Plugin "virt"
+ Type "if_dropped"
+ OIDs "LIBVIRT-HYPERVISOR-MIB::lvhIfDroppedReceive" "LIBVIRT-HYPERVISOR-MIB::lvhIfDroppedTransmit"
+ </Data>
+ </Table>
+</Plugin>
diff --git a/src/collectd/collectd_sample_configs-master/virt.conf b/src/collectd/collectd_sample_configs-master/virt.conf
new file mode 100644
index 00000000..88229e3c
--- /dev/null
+++ b/src/collectd/collectd_sample_configs-master/virt.conf
@@ -0,0 +1,30 @@
+# 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 virt
+<Plugin virt>
+# Connection "xen:///"
+ RefreshInterval 60
+# Domain "name"
+# BlockDevice "name:device"
+# BlockDeviceFormat target
+# BlockDeviceFormatBasename false
+# InterfaceDevice "name:device"
+# IgnoreSelected false
+# HostnameFormat name
+# InterfaceFormat name
+# PluginInstanceFormat name
+# Instances 1
+ ExtraStats "cpu_util disk disk_err domain_state fs_info job_stats_background pcpu perf vcpupin"
+</Plugin>
diff --git a/src/collectd/collectd_sample_configs-master/write_notification.sh b/src/collectd/collectd_sample_configs-master/write_notification.sh
new file mode 100755
index 00000000..ed6ed9e2
--- /dev/null
+++ b/src/collectd/collectd_sample_configs-master/write_notification.sh
@@ -0,0 +1,19 @@
+#!/bin/bash
+# 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.
+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
index dd20893d..4f91a453 100755
--- a/src/collectd/include_config.sh
+++ b/src/collectd/include_config.sh
@@ -13,12 +13,31 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+# Config file options are changing between releases so we have to store both
+# configurations variants and choose correct one for target collectd version
+
+if [ -z "$1" ]; then
+ echo "Error! Please sample configs variant name as a param!"\
+ "(name of directory with sample-configs)"
+ echo "Usage:"
+ echo "$0 SAMPLE_CONFIGS_VARIANT_NAME"
+ echo "e.g. $0 'collectd_sample_configs'"
+ exit 1
+fi
+
+SAMPLE_CONF_VARIANT="$1"
COLLECTD_CONF_FILE=/opt/collectd/etc/collectd.conf
COLLECTD_CONF_DIR=/opt/collectd/etc/collectd.conf.d
INCLUDE_CONF="<Include \"/opt/collectd/etc/collectd.conf.d\">"
CURR_DIR=`pwd`
HOSTNAME=`hostname`
-SAMPLE_CONF_DIR=$CURR_DIR/collectd_sample_configs/*
+SAMPLE_CONF_DIR=$CURR_DIR/$SAMPLE_CONF_VARIANT
+
+if [ ! -d "$SAMPLE_CONF_DIR" ]; then
+ echo "$SAMPLE_CONF_DIR does not exits!"\
+ "Probably passed bad variant name as a param: $SAMPLE_CONF_VARIANT"
+ exit 1
+fi
function write_include {
echo "Hostname \"$HOSTNAME\"" | sudo tee -a $COLLECTD_CONF_FILE;
@@ -31,7 +50,8 @@ grep -qe '<Include "/opt/collectd/etc/collectd.conf.d">' $COLLECTD_CONF_FILE; [
`mkdir -p $COLLECTD_CONF_DIR`
-for F in $SAMPLE_CONF_DIR; do
+SAMPLE_CONF_FILES=$SAMPLE_CONF_DIR/*
+for F in $SAMPLE_CONF_FILES; do
FILE=$(basename $F)
[ -f $COLLECTD_CONF_DIR/$FILE ] && echo "File $COLLECTD_CONF_DIR/$FILE exists" || cp $F $COLLECTD_CONF_DIR
done
diff --git a/src/package-list.mk b/src/package-list.mk
index 975a79e8..b58e092a 100644
--- a/src/package-list.mk
+++ b/src/package-list.mk
@@ -19,7 +19,14 @@ KAFKA_TAG ?= v0.9.5
# collectd section
COLLECTD_URL ?= https://github.com/collectd/collectd
-COLLECTD_TAG ?= collectd-5.8
+# there are 2 collectd flavors:
+# -"collectd" - based on stable collect release
+# -"collectd-master" - development version, based on master branch
+ifdef COLLECTD_USE_MASTER
+ COLLECTD_TAG ?= master
+else
+ COLLECTD_TAG ?= collectd-5.8
+endif
COLLECTD_OPENSTACK_URL ?= https://github.com/openstack/collectd-openstack-plugins
COLLECTD_OPENSTACK_TAG ?= stable/pike