Merge pull request #54 from simonpasquier/add-galera-log-decoder

Add a log decoder for Galera
diff --git a/heka/_service.sls b/heka/_service.sls
index d2574b2..5749b2d 100644
--- a/heka/_service.sls
+++ b/heka/_service.sls
@@ -1,8 +1,6 @@
 {%- macro load_grains_file(grains_fragment_file) %}{% include grains_fragment_file ignore missing %}{% endmacro %}
 
-{%- set server = salt['pillar.get']('heka:'+service_name) %}
-
-{%- if server.enabled %}
+{%- if server.enabled is defined and server.enabled %}
 
 heka_{{ service_name }}_log_file:
   file.managed:
@@ -193,6 +191,7 @@
   - group: heka
   - defaults:
     service_name: {{ service_name }}
+    poolsize: {{ server.poolsize }}
   - require:
     - file: heka_{{ service_name }}_conf_dir
   - require_in:
diff --git a/heka/aggregator.sls b/heka/aggregator.sls
index c53d8e7..dda138c 100644
--- a/heka/aggregator.sls
+++ b/heka/aggregator.sls
@@ -3,6 +3,8 @@
 include:
 - heka._common
 
+{%- from "heka/map.jinja" import aggregator with context %}
+{%- set server = aggregator %}
 {%- set service_name = "aggregator" %}
 
 {%- include "heka/_service.sls" %}
diff --git a/heka/files/lua/filters/gse_cluster_filter.lua b/heka/files/lua/filters/gse_cluster_filter.lua
index 5b6402c..d1fef2b 100644
--- a/heka/files/lua/filters/gse_cluster_filter.lua
+++ b/heka/files/lua/filters/gse_cluster_filter.lua
@@ -64,6 +64,10 @@
         return -1, "Cannot find alarms in the AFD/GSE message"
     end
 
+    -- "hostname" is nil here when the input message is a GSE message, so nil
+    -- is not an error condition here
+    local hostname = afd.get_entity_name('hostname')
+
     local cluster_ids = gse.find_cluster_memberships(member_id)
 
     -- update all clusters that depend on this entity
diff --git a/heka/files/toml/global.toml b/heka/files/toml/global.toml
index 40aaf3b..30d460d 100644
--- a/heka/files/toml/global.toml
+++ b/heka/files/toml/global.toml
@@ -9,4 +9,4 @@
 max_message_size = 262144
 max_process_inject = 1
 max_timer_inject = 10
-poolsize = 100
+poolsize = {{ poolsize }}
diff --git a/heka/log_collector.sls b/heka/log_collector.sls
index a50e6d2..9ee007c 100644
--- a/heka/log_collector.sls
+++ b/heka/log_collector.sls
@@ -3,6 +3,8 @@
 include:
 - heka._common
 
+{%- from "heka/map.jinja" import log_collector with context %}
+{%- set server = log_collector %}
 {%- set service_name = "log_collector" %}
 
 {%- include "heka/_service.sls" %}
diff --git a/heka/map.jinja b/heka/map.jinja
index 00291d0..8b74f9d 100644
--- a/heka/map.jinja
+++ b/heka/map.jinja
@@ -41,6 +41,7 @@
 {% set log_collector = salt['grains.filter_by']({
   'default': {
     'elasticsearch_port': default_elasticsearch_port,
+    'poolsize': 100,
   }
 }, merge=salt['pillar.get']('heka:log_collector')) %}
 
@@ -51,6 +52,7 @@
     'influxdb_timeout': default_influxdb_timeout,
     'aggregator_port': default_aggregator_port,
     'nagios_port': default_nagios_port,
+    'poolsize': 100,
   }
 }, merge=salt['pillar.get']('heka:metric_collector')) %}
 
@@ -60,6 +62,7 @@
     'influxdb_time_precision': default_influxdb_time_precision,
     'influxdb_timeout': default_influxdb_timeout,
     'aggregator_port': default_aggregator_port,
+    'poolsize': 100,
   }
 }, merge=salt['pillar.get']('heka:remote_collector')) %}
 
@@ -70,5 +73,6 @@
     'influxdb_timeout': default_influxdb_timeout,
     'nagios_port': default_nagios_port,
     'nagios_host_alarm_clusters': default_nagios_host_alarm_clusters,
+    'poolsize': 100,
   }
 }, merge=salt['pillar.get']('heka:aggregator')) %}
diff --git a/heka/metric_collector.sls b/heka/metric_collector.sls
index 9684c1b..7b28a7c 100644
--- a/heka/metric_collector.sls
+++ b/heka/metric_collector.sls
@@ -3,6 +3,8 @@
 include:
 - heka._common
 
+{%- from "heka/map.jinja" import metric_collector with context %}
+{%- set server = metric_collector %}
 {%- set service_name = "metric_collector" %}
 
 {%- include "heka/_service.sls" %}
diff --git a/heka/remote_collector.sls b/heka/remote_collector.sls
index 961587d..35533c3 100644
--- a/heka/remote_collector.sls
+++ b/heka/remote_collector.sls
@@ -3,6 +3,8 @@
 include:
 - heka._common
 
+{%- from "heka/map.jinja" import remote_collector with context %}
+{%- set server = remote_collector %}
 {%- set service_name = "remote_collector" %}
 
 {%- include "heka/_service.sls" %}
diff --git a/metadata/service/aggregator/single.yml b/metadata/service/aggregator/single.yml
index 9db8b69..7e814c5 100644
--- a/metadata/service/aggregator/single.yml
+++ b/metadata/service/aggregator/single.yml
@@ -3,7 +3,10 @@
 classes:
 - service.heka.support
 parameters:
+  _param:
+    aggregator_poolsize: 100
   heka:
     aggregator:
       enabled: true
       influxdb_time_precision: ms
+      poolsize: ${_param:aggregator_poolsize}
diff --git a/metadata/service/log_collector/single.yml b/metadata/service/log_collector/single.yml
index f857da5..5160c35 100644
--- a/metadata/service/log_collector/single.yml
+++ b/metadata/service/log_collector/single.yml
@@ -3,6 +3,9 @@
 classes:
 - service.heka.support
 parameters:
+  _param:
+    log_collector_poolsize: 100
   heka:
     log_collector:
       enabled: true
+      poolsize: ${_param:log_collector_poolsize}
diff --git a/metadata/service/metric_collector/single.yml b/metadata/service/metric_collector/single.yml
index 1d1a62a..ad183a2 100644
--- a/metadata/service/metric_collector/single.yml
+++ b/metadata/service/metric_collector/single.yml
@@ -3,7 +3,10 @@
 classes:
 - service.heka.support
 parameters:
+  _param:
+    metric_collector_poolsize: 100
   heka:
     metric_collector:
       enabled: true
       influxdb_time_precision: ms
+      poolsize: ${_param:metric_collector_poolsize}
diff --git a/metadata/service/remote_collector/single.yml b/metadata/service/remote_collector/single.yml
index e141799..120414c 100644
--- a/metadata/service/remote_collector/single.yml
+++ b/metadata/service/remote_collector/single.yml
@@ -3,7 +3,10 @@
 classes:
 - service.heka.support
 parameters:
+  _param:
+    remote_collector_poolsize: 100
   heka:
     remote_collector:
       enabled: true
       influxdb_time_precision: ms
+      poolsize: ${_param:remote_collector_poolsize}