Collect Keystone WSGI logs
Keystone can run as a WSGI application under Apache and the access logs
should be collected.
diff --git a/apache/meta/heka.yml b/apache/meta/heka.yml
new file mode 100644
index 0000000..13a6764
--- /dev/null
+++ b/apache/meta/heka.yml
@@ -0,0 +1,33 @@
+{%- from "apache/map.jinja" import server with context %}
+{%- if server.get('enabled', False) and server.site is defined %}
+
+log_collector:
+ decoder:
+{%- for site_name, site in server.site.iteritems() %}
+{%- if site.type == 'keystone' %}
+ keystone_wsgi:
+ engine: sandbox
+ module_file: /usr/share/lma_collector/decoders/keystone_wsgi_log.lua
+ module_dir: /usr/share/lma_collector/common;/usr/share/heka/lua_modules
+ config:
+ apache_log_pattern: >-
+ {{ site.get('log', {}).get('custom', {}).format|default('vhost_combined') }}
+{%- endif %}
+{%- endfor %}
+
+ input:
+{%- for site_name, site in server.site.iteritems() %}
+{%- if site.type == 'keystone' %}
+{%- set apache_log_file = site.get('log', {}).get('custom', {}).file|default(server.log_dir ~ '/' ~ site_name ~ '.access.log') %}
+ keystone_wsgi_log:
+ engine: logstreamer
+ log_directory: "{{ salt['file.dirname'](apache_log_file) }}"
+ file_match: '{{ salt['file.basename'](apache_log_file)|replace('.', '\.') }}\.?(?P<Seq>\d*)$'
+ differentiator: ['keystone-wsgi']
+ priority: ["^Seq"]
+ decoder: "keystone_wsgi_decoder"
+ splitter: "TokenSplitter"
+{%- endif %}
+{%- endfor %}
+
+{%- endif %}