Add process checks for Ceilometer

Process checks for Ceilometer.

Regarding ceilometer-agent-central, the actual process name in this
case appears to be 'ceilometer-polling', hence the replacement.

Change-Id: I282217454a51d49a1ae34770af5b023a9ed307a9
diff --git a/ceilometer/meta/collectd.yml b/ceilometer/meta/collectd.yml
new file mode 100644
index 0000000..26a9711
--- /dev/null
+++ b/ceilometer/meta/collectd.yml
@@ -0,0 +1,11 @@
+{%- from "ceilometer/map.jinja" import server with context %}
+{%- if server.get('enabled', False) %}
+local_plugin:
+  collectd_processes:
+    process:
+      {%- for proc in server.services %}
+      {%- set proc = 'ceilometer-polling' if proc == 'ceilometer-agent-central' else proc %}
+      {{ proc }}:
+        match: 'python.*{{ proc }}'
+      {%- endfor %}
+{%- endif %}
diff --git a/ceilometer/meta/heka.yml b/ceilometer/meta/heka.yml
new file mode 100644
index 0000000..d8697a6
--- /dev/null
+++ b/ceilometer/meta/heka.yml
@@ -0,0 +1,59 @@
+{%- from "ceilometer/map.jinja" import server with context %}
+{%- if server.get('enabled', False) %}
+{%- set procs = [] %}
+{%- for s in server.services %}
+{%- do procs.append('ceilometer-polling' if s == 'ceilometer-agent-central' else s) %}
+{%- endfor %}
+metric_collector:
+  trigger:
+    {%- for proc in procs %}
+    {{ proc|replace("-", "_") }}:
+      description: "There is no {{ proc }} process running."
+      severity: down
+      rules:
+      - metric: process_processes
+        field:
+          service: {{ proc }}
+        relational_operator: '=='
+        threshold: 0
+        window: 60
+        periods: 0
+        function: last
+    {%- endfor %}
+  alarm:
+    {%- for proc in procs %}
+    {{ proc|replace("-", "_") }}:
+      alerting: enabled
+      triggers:
+      - {{ proc|replace("-", "_") }}
+      dimension:
+        process: {{ proc }}
+    {%- endfor %}
+aggregator:
+  alarm_cluster:
+    {%- for proc in procs %}
+    {{ proc|replace("-", "_") }}:
+      policy: status_of_members
+      alerting: enabled
+      group_by: hostname
+      match:
+        process: {{ proc }}
+      members:
+      - {{ proc|replace("-", "_") }}
+      dimension:
+        service: ceilometer-control
+        nagios_host: 01-service-clusters
+    {%- endfor %}
+    ceilometer_control:
+      policy: highest_severity
+      alerting: enabled_with_notification
+      match:
+        service: ceilometer-control
+      members:
+      {%- for proc in procs %}
+      - {{ proc|replace("-", "_") }}
+      {%- endfor %}
+      dimension:
+        cluster_name: ceilometer-control
+        nagios_host: 00-top-clusters
+{%- endif %}
diff --git a/metadata/service/support.yml b/metadata/service/support.yml
index 556e589..24f09b4 100644
--- a/metadata/service/support.yml
+++ b/metadata/service/support.yml
@@ -2,7 +2,7 @@
   ceilometer:
     _support:
       collectd:
-        enabled: false
+        enabled: true
       heka:
         enabled: true
       sensu: