Merge pull request #33 from simonpasquier/split-elasticsearch-plugin

Split the Elasticsearch plugin
diff --git a/collectd/files/backend/http.conf b/collectd/files/backend/http.conf
index 752df40..8787dbc 100644
--- a/collectd/files/backend/http.conf
+++ b/collectd/files/backend/http.conf
@@ -6,5 +6,8 @@
   <URL "http://{{ backend.host }}:{{ backend.port }}">
     Format "{{ backend.get('format', 'json')|upper }}"
     StoreRates {{ backend.get('store_rates', True)|lower }}
+{%- if backend.timeout is defined %}
+    Timeout {{ backend.timeout }}
+{%- endif %}
   </URL>
 </Plugin>
diff --git a/collectd/files/collectd.conf b/collectd/files/collectd.conf
index d815eb1..0a64b0f 100644
--- a/collectd/files/collectd.conf
+++ b/collectd/files/collectd.conf
@@ -36,6 +36,9 @@
 
 #Timeout 2
 #ReadThreads 5
+{%- if client.read_threads is defined %}
+ReadThreads {{ client.read_threads }}
+{%- endif %}
 
 ##############################################################################
 # Logging                                                                    #
diff --git a/collectd/files/plugin/collectd_vrrp.py b/collectd/files/plugin/collectd_vrrp.py
index b020ec2..6c10ae1 100644
--- a/collectd/files/plugin/collectd_vrrp.py
+++ b/collectd/files/plugin/collectd_vrrp.py
@@ -14,11 +14,11 @@
 # limitations under the License.
 
 import collectd
+from pyroute2 import IPRoute
+import socket
 
 import collectd_base as base
 
-from pyroute2 import IPRoute
-
 NAME = 'vrrp'
 
 
@@ -62,8 +62,10 @@
             self.logger.error("vrrp: Missing 'IPAddress' parameter")
 
     def itermetrics(self):
+        local_addresses = [i.get_attr('IFA_LOCAL') for i in
+                           self.ipr.get_addr(family=socket.AF_INET)]
         for ip_address in self.ip_addresses:
-            v = 1 if self.ipr.get_addr(address=ip_address['address']) else 0
+            v = 1 if ip_address['address'] in local_addresses else 0
             data = {'values': v, 'meta': {'ip_address': ip_address['address']}}
             if 'label' in ip_address:
                 data['meta']['label'] = ip_address['label']
diff --git a/collectd/meta/sphinx.yml b/collectd/meta/sphinx.yml
index e7fa0cb..218ad6b 100644
--- a/collectd/meta/sphinx.yml
+++ b/collectd/meta/sphinx.yml
@@ -5,8 +5,10 @@
 {%- set grains_fragment_file = service_name+'/meta/collectd.yml' %}
 {%- macro load_grains_file() %}{% include grains_fragment_file %}{% endmacro %}
 {%- set grains_yaml = load_grains_file()|load_yaml %}
+{%- if grains_yaml is mapping %}
 {%- do service_grains.collectd.local_plugin.update(grains_yaml.get('local_plugin', {})) %}
 {%- endif %}
+{%- endif %}
 {%- endfor %}
 doc:
   name: collectd
@@ -21,4 +23,6 @@
           value: {{ backend.host }}:{{ backend.port }}
 {%- endfor %}
         plugins:
-          value: {% for plugin_name, plugin in service_grains.collectd.local_plugin.iteritems() %} {{ plugin_name }}{% endfor %}
+          value:
+            {% for plugin_name, plugin in service_grains.collectd.local_plugin.iteritems() %}
+            - {{ plugin_name }}{% endfor %}
diff --git a/metadata/service/remote_client/cluster.yml b/metadata/service/remote_client/cluster.yml
index b340e79..b1d8d34 100644
--- a/metadata/service/remote_client/cluster.yml
+++ b/metadata/service/remote_client/cluster.yml
@@ -7,5 +7,6 @@
     remote_client:
       enabled: true
       read_interval: 10
+      read_threads: 10
       use_fqdn: false
       automatic_starting: false
diff --git a/metadata/service/remote_client/single.yml b/metadata/service/remote_client/single.yml
index 81062b4..297912a 100644
--- a/metadata/service/remote_client/single.yml
+++ b/metadata/service/remote_client/single.yml
@@ -7,5 +7,6 @@
     remote_client:
       enabled: true
       read_interval: 10
+      read_threads: 10
       use_fqdn: false
       automatic_starting: true