1 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
2 .. http://creativecommons.org/licenses/by/4.0
3 .. (c) OPNFV, Intel Corporation and others.
7 The Barometer repository contains a python based write plugin for VES.
9 The plugin currently supports pushing platform relevant metrics through the
10 additional measurements field for VES.
12 **Please note**: Hardcoded configuration values will be modified so that they
13 are configurable through the configuration file.
15 Installation Instructions:
16 --------------------------
22 $ sudo apt-get install collectd
24 3. Modify the collectd configuration script: `/etc/collectd/collectd.conf`
33 ModulePath "/path/to/your/python/modules"
38 # VES plugin configuration (see next section below)
42 where "/path/to/your/python/modules" is the path to where you cloned this repo
44 VES python plugin configuration description:
45 --------------------------------------------
47 **Note** Details of the Vendor Event Listener REST service
49 REST resources are defined with respect to a ServerRoot:
53 ServerRoot = https://{Domain}:{Port}/{optionalRoutingPath}
55 REST resources are of the form:
59 {ServerRoot}/eventListener/v{apiVersion}`
60 {ServerRoot}/eventListener/v{apiVersion}/{topicName}`
61 {ServerRoot}/eventListener/v{apiVersion}/eventBatch`
65 * VES domain name. It can be IP address or hostname of VES collector
66 (default: `127.0.0.1`)
69 * VES port (default: `30000`)
72 * Used as the "optionalRoutingPath" element in the REST path (default: `empty`)
75 * Used as the "topicName" element in the REST path (default: `empty`)
77 **UseHttps** *true|false*
78 * Allow plugin to use HTTPS instead of HTTP (default: `false`)
80 **Username** *"username"*
81 * VES collector user name (default: `empty`)
83 **Password** *"passwd"*
84 * VES collector password (default: `empty`)
86 **FunctionalRole** *"role"*
87 * Used as the 'functionalRole' field of 'commonEventHeader' event (default:
90 **GuestRunning** *true|false*
91 * This option is used if the collectd is running on a guest machine, e.g this
92 option should be set to `true` in this case. Defaults to `false`.
94 Other collectd.conf configurations
95 ----------------------------------
96 Please ensure that FQDNLookup is set to false
103 Please ensure that the virt plugin is enabled and configured as follows. This configuration
104 is is required only on a host side ('GuestRunning' = false).
111 Connection "qemu:///system"
116 Please ensure that the cpu plugin is enabled and configured as follows
124 ValuesPercentage true
127 Please ensure that the aggregation plugin is enabled and configured as follows
131 LoadPlugin aggregation
138 GroupBy "TypeInstance"
139 SetPlugin "cpu-aggregation"
140 CalculateAverage true
144 If plugin is running on a guest side, it is important to enable uuid plugin
145 too. In this case the hostname in event message will be represented as UUID
146 instead of system host name.
150 If custom UUID needs to be provided, the following configuration is required in collectd.conf
159 Where "/etc/uuid" is a file containing custom UUID.
161 Please also ensure that the following plugins are enabled:
169 VES plugin notification example
170 -------------------------------
172 A good example of collectD notification is monitoring of CPU load on a host or guest using
173 'threshold' plugin. The following configuration will setup VES plugin to send 'Fault'
174 event every time a CPU idle value is out of range (e.g.: WARNING: CPU-IDLE < 50%, CRITICAL:
175 CPU-IDLE < 30%) and send 'Fault' NORMAL event if CPU idle value is back to normal.
182 <Plugin "cpu-aggregation">
194 More detailed information on how to configure collectD thresholds(memory, cpu
195 etc.) can be found here at
196 https://collectd.org/documentation/manpages/collectd-threshold.5.shtml