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: