PUTVAL command: Fix memory leaks and duplicate frees.
[collectd.git] / README
diff --git a/README b/README
index 1a41562..bb72ac2 100644 (file)
--- a/README
+++ b/README
@@ -67,6 +67,9 @@ Features
     - cpufreq
       CPU frequency (For laptops with speed step or a similar technology)
 
     - cpufreq
       CPU frequency (For laptops with speed step or a similar technology)
 
+    - cpusleep
+      CPU sleep: Time spent in suspend (For mobile devices which enter suspend automatically)
+
     - curl
       Parse statistics from websites using regular expressions.
 
     - curl
       Parse statistics from websites using regular expressions.
 
@@ -125,12 +128,20 @@ Features
     - gmond
       Receive multicast traffic from Ganglia instances.
 
     - gmond
       Receive multicast traffic from Ganglia instances.
 
+    - gps
+      Monitor gps related data through gpsd.
+
     - grpc
     - grpc
-      Receive values over the network using the gRPC framework.
+      Send and receive values over the network using the gRPC framework.
 
     - hddtemp
       Hard disk temperatures using hddtempd.
 
 
     - hddtemp
       Hard disk temperatures using hddtempd.
 
+    - hugepages
+      Report the number of used and free hugepages. More info on
+      hugepages can be found here:
+      https://www.kernel.org/doc/Documentation/vm/hugetlbpage.txt.
+
     - interface
       Interface traffic: Number of octets, packets and errors for each
       interface.
     - interface
       Interface traffic: Number of octets, packets and errors for each
       interface.
@@ -165,6 +176,12 @@ Features
       Detailed CPU statistics of the “Logical Partitions” virtualization
       technique built into IBM's POWER processors.
 
       Detailed CPU statistics of the “Logical Partitions” virtualization
       technique built into IBM's POWER processors.
 
+    - lua
+      The Lua plugin implements a Lua interpreter into collectd. This
+      makes it possible to write plugins in Lua which are executed by
+      collectd without the need to start a heavy interpreter every interval.
+      See collectd-lua(5) for details.
+
     - lvm
       Size of “Logical Volumes” (LV) and “Volume Groups” (VG) of Linux'
       “Logical Volume Manager” (LVM).
     - lvm
       Size of “Logical Volumes” (LV) and “Volume Groups” (VG) of Linux'
       “Logical Volume Manager” (LVM).
@@ -419,6 +436,10 @@ Features
       diskspace but is extremely portable and can be analysed with almost
       every program that can analyse anything. Even Microsoft's Excel..
 
       diskspace but is extremely portable and can be analysed with almost
       every program that can analyse anything. Even Microsoft's Excel..
 
+    - lua
+      It's possible to implement write plugins in Lua using the Lua
+      plugin. See collectd-lua(5) for details.
+
     - network
       Send the data to a remote host to save the data somehow. This is useful
       for large setups where the data should be saved by a dedicated machine.
     - network
       Send the data to a remote host to save the data somehow. This is useful
       for large setups where the data should be saved by a dedicated machine.
@@ -700,6 +721,10 @@ Prerequisites
     Used by the `network' plugin for encryption and authentication.
     <http://www.gnupg.org/>
 
     Used by the `network' plugin for encryption and authentication.
     <http://www.gnupg.org/>
 
+  * libgps (optional)
+    Used by the `gps' plugin.
+    <http://developer.berlios.de/projects/gpsd/>
+
   * libhal (optional)
     If present, the `uuid' plugin will check for UUID from HAL.
     <http://hal.freedesktop.org/>
   * libhal (optional)
     If present, the `uuid' plugin will check for UUID from HAL.
     <http://hal.freedesktop.org/>
@@ -722,6 +747,10 @@ Prerequisites
     Used by the `openldap' plugin.
     <http://www.openldap.org/>
 
     Used by the `openldap' plugin.
     <http://www.openldap.org/>
 
+  * liblua (optional)
+    Used by the `lua' plugin. Currently, Lua 5.1 and later are supported.
+    <https://www.lua.org/>
+
   * liblvm2 (optional)
     Used by the `lvm' plugin.
     <ftp://sources.redhat.com/pub/lvm2/>
   * liblvm2 (optional)
     Used by the `lvm' plugin.
     <ftp://sources.redhat.com/pub/lvm2/>
@@ -796,7 +825,7 @@ Prerequisites
     <http://code.google.com/p/protobuf-c/>
 
   * libpython (optional)
     <http://code.google.com/p/protobuf-c/>
 
   * libpython (optional)
-    Used by the `python' plugin. Currently, Python 2.3 and later and Python 3
+    Used by the `python' plugin. Currently, Python 2.6 and later and Python 3
     are supported.
     <http://www.python.org/>
 
     are supported.
     <http://www.python.org/>
 
@@ -994,9 +1023,19 @@ Crosscompiling
 Configuring with DPDK
 ---------------------
 
 Configuring with DPDK
 ---------------------
 
-Note: DPDK 16.04 is the minimum version of DPDK required for the dpdkstat
-plugin. This is to allow the plugin to take advantage of functions added to
-detect if the DPDK primary process is alive.
+Note: DPDK 16.04 is the minimum version and currently supported version of DPDK
+required for the dpdkstat plugin. This is to allow the plugin to take advantage
+of functions added to detect if the DPDK primary process is alive.
+
+Note: For Ubuntu, GCC 4.9 is the minimum version required to build collectd
+with DPDK. Ubuntu 14.04, for example, has GCC 4.8 by default and will require
+an upgrade:
+  $ sudo add-apt-repository ppa:ubuntu-toolchain-r/test
+  $ sudo apt-get update
+  $ sudo apt-get install gcc-4.9
+Alternatively, if you know that the platform that you wish to run collectd
+on supports the SSSE3 instruction set, you can run make as follows:
+  $ make -j CFLAGS+='-mssse3'
 
 Build DPDK for use with collectd:
   To compile DPDK for use with collectd dpdkstat start by:
 
 Build DPDK for use with collectd:
   To compile DPDK for use with collectd dpdkstat start by:
@@ -1061,14 +1100,43 @@ Build DPDK for use with collectd:
              booted at system startup time.
      - Run ldconfig to update the shared library cache.
 
              booted at system startup time.
      - Run ldconfig to update the shared library cache.
 
+  Build static DPDK library for use with collectd:
+     - To configure DPDK to build the combined static library libdpdk.a
+       ensure that CONFIG_RTE_BUILD_SHARED_LIB is set to n in
+       config/common_base in your DPDK as follows:
+       #
+       # Compile to share library
+       #
+       CONFIG_RTE_BUILD_SHARED_LIB=n
+     - Prepare the configuration for the appropriate target as specified at:
+       http://dpdk.org/doc/guides/linux_gsg/build_dpdk.html.
+       For example:
+          $ make config T=x86_64-native-linuxapp-gcc
+     - Build the target using -fPIC:
+          $ make EXTRA_CFLAGS=-fPIC -j
+     - Install DPDK to /usr
+          $ sudo make install prefix=/usr
+
 Configure collectd with DPDK:
 Configure collectd with DPDK:
+NOTE: The Address-Space Layout Randomization (ASLR) security feature in Linux should
+       be disabled, in order for the same hugepage memory mappings to be present in all
+       DPDK multi-process applications. Note that this has security implications.
+       To disable ASLR:
+               $ echo 0 > /proc/sys/kernel/randomize_va_space
+       To fully enable ASLR:
+               $ echo 2 > /proc/sys/kernel/randomize_va_space
+       See http://dpdk.org/doc/guides/prog_guide/multi_proc_support.html
+
     - Generate the build script as specified below. (i.e. run `build.sh').
     - Generate the build script as specified below. (i.e. run `build.sh').
-    - Configure collectd with the DPDK library:
+    - Configure collectd with the DPDK shared library:
        ./configure --with-libdpdk=/usr
        ./configure --with-libdpdk=/usr
+      NOTE: To configure collectd with the DPDK static library:
+       ./configure --with-libdpdk=/usr CFLAGS=" -lpthread -Wl,--whole-archive
+        -Wl,-ldpdk -Wl,-lm -Wl,-lrt -Wl,-lpcap -Wl,-ldl -Wl,--no-whole-archive"
 
        Libraries:
        ...
 
        Libraries:
        ...
-       dpdk  . . . . . . . . yes
+       libdpdk  . . . . . . . . yes
 
        Modules:
        ...
 
        Modules:
        ...
@@ -1079,8 +1147,9 @@ Configure collectd with DPDK:
 
     - Build collectd:
           $ make -j && make -j install.
 
     - Build collectd:
           $ make -j && make -j install.
-      NOTE: If you are building on Ubuntu 14.04 you need to use:
-          $  make -j CFLAGS+='-mavx' && make -j install
+      NOTE: As mentioned above, if you are building on Ubuntu 14.04 with GCC <= 4.8.X,
+        you need to use:
+          $  make -j CFLAGS+='-mssse3' && make -j install
 
 Usage of dpdkstat:
     - The same PCI device configuration should be passed to the primary process
 
 Usage of dpdkstat:
     - The same PCI device configuration should be passed to the primary process
@@ -1105,6 +1174,5 @@ Author
   Sebastian tokkee Harl <sh at tokkee.org>,
   and many contributors (see `AUTHORS').
 
   Sebastian tokkee Harl <sh at tokkee.org>,
   and many contributors (see `AUTHORS').
 
-  Please send bug reports and patches to the mailing list, see `Contact'
-  above.
-
+  Please use GitHub reporting bugs and submitting pull requests.
+  See CONTRIBUTING.md for details.