Add OVS logstreamer
Change-Id: I8a5692e169fc0939b63ea45eab59a7e4dee04f68
diff --git a/neutron/meta/heka.yml b/neutron/meta/heka.yml
index 98b4d4f..195f44c 100644
--- a/neutron/meta/heka.yml
+++ b/neutron/meta/heka.yml
@@ -1,10 +1,12 @@
{%- from "neutron/map.jinja" import server with context %}
-{%- if server.backend.engine == "ml2" %}
+{%- if server.get('backend', {}).engine is defined and server.backend.engine == "ml2" %}
{% set neutron_agents = ('l3', 'dhcp', 'metadata', 'openvswitch') %}
{%- else %}
{% set neutron_agents = () %}
{%- endif %}
+{% set ovs_support = pillar.neutron.get('compute', {}).get('enabled', False) or pillar.neutron.get('gateway', {}).get('enabled', False) %}
+
log_collector:
decoder:
neutron:
@@ -12,6 +14,12 @@
module_file: /usr/share/lma_collector/decoders/openstack_log.lua
module_dir: /usr/share/lma_collector/common;/usr/share/heka/lua_modules
adjust_timezone: true
+{%- if ovs_support %}
+ ovs:
+ engine: sandbox
+ module_file: /usr/share/lma_collector/decoders/ovs_log.lua
+ module_dir: /usr/share/lma_collector/common;/usr/share/heka/lua_modules
+{%- endif %}
splitter:
neutron:
engine: token
@@ -25,7 +33,16 @@
priority: ["^Seq"]
decoder: "neutron_decoder"
splitter: "neutron_splitter"
-{%- if pillar.neutron.server is defined %}
+{%- if ovs_support %}
+ ovs_log:
+ engine: logstreamer
+ log_directory: "/var/log/openvswitch"
+ file_match: '(?P<Service>ovs\-vswitchd|ovsdb\-server|ovs\-ctl)\.log$'
+ differentiator: ['Service']
+ priority: ["^Seq"]
+ decoder: "ovs_decoder"
+ splitter: "TokenSplitter"
+{%- endif %}
metric_collector:
trigger:
neutron_logs_error:
@@ -42,6 +59,7 @@
window: 70
periods: 0
function: max
+{%- if pillar.neutron.server is defined %}
neutron_api_local_endpoint:
description: 'Neutron API is locally down'
severity: down
@@ -54,19 +72,28 @@
window: 60
periods: 0
function: last
+{%- endif %}
alarm:
- neutron_logs:
+{%- if pillar.neutron.server is defined %}
+ neutron_logs_control:
alerting: enabled
triggers:
- neutron_logs_error
dimension:
- service: neutron-logs
+ service: neutron-logs-control
neutron_api_endpoint:
alerting: enabled
triggers:
- neutron_api_local_endpoint
dimension:
service: neutron-api-endpoint
+{%- else %}
+ neutron_logs_data:
+ alerting: enabled
+ triggers:
+ - neutron_logs_error
+ dimension:
+ service: neutron-logs-data
{%- endif %}
{%- if pillar.neutron.server is defined %}
remote_collector:
@@ -83,7 +110,7 @@
window: 60
periods: 0
function: last
- {%- for agent in neutron_agents %}
+{%- for agent in neutron_agents %}
neutron_{{ agent }}_two_up:
description: 'Some Neutron {{ agent }} agents are down'
severity: warning
@@ -143,14 +170,14 @@
window: 60
periods: 0
function: last
- {%- endfor %}
+{%- endfor %}
alarm:
neutron_api_check:
triggers:
- neutron_api_check_failed
dimension:
service: neutron-api-check
- {%- for agent in neutron_agents %}
+{%- for agent in neutron_agents %}
neutron_{{ agent }}:
alerting: enabled
triggers:
@@ -159,18 +186,19 @@
- neutron_{{ agent }}_two_up
dimension:
service: neutron-{{ agent }}
- {%- endfor %}
+{%- endfor %}
{%- endif %}
aggregator:
alarm_cluster:
- neutron_logs:
+{%- if pillar.neutron.server is defined %}
+ neutron_logs_control:
policy: status_of_members
alerting: enabled
group_by: hostname
match:
- service: neutron-logs
+ service: neutron-logs-control
members:
- - neutron_logs
+ - neutron_logs_control
dimension:
service: neutron-control
nagios_host: 01-service-clusters
@@ -201,13 +229,13 @@
match:
service: neutron-control
members:
- - neutron_logs
+ - neutron_logs_control
- neutron_api_endpoint
- neutron_api_check
dimension:
cluster_name: neutron-control
nagios_host: 00-top-clusters
- {%- for agent in neutron_agents %}
+{%- for agent in neutron_agents %}
neutron_{{ agent }}:
policy: highest_severity
alerting: enabled
@@ -218,7 +246,7 @@
dimension:
service: neutron-data
nagios_host: 01-service-clusters
- {%- endfor %}
+{%- endfor %}
{%- if neutron_agents|length > 0 %}
neutron_data:
policy: highest_severity
@@ -226,10 +254,24 @@
match:
service: neutron-data
members:
- {%- for agent in neutron_agents %}
+ - neutron_logs_data
+{%- for agent in neutron_agents %}
- neutron_{{ agent }}
- {%- endfor %}
+{%- endfor %}
dimension:
cluster_name: neutron-data
nagios_host: 00-top-clusters
{%- endif %}
+{%- else %}
+ neutron_logs_data:
+ policy: status_of_members
+ alerting: enabled
+ group_by: hostname
+ match:
+ service: neutron-logs-data
+ members:
+ - neutron_logs_data
+ dimension:
+ service: neutron-data
+ nagios_host: 01-service-clusters
+{%- endif %}