
Currently we generate multiple fluentd configuration files for inputs, filters, formatters and outputs. These are then included from the main td-agent.conf configuration file. With a large number of hosts, this can take a long time to template. Benchmarking of templating is available at [1]. This change switches to a single fluentd configuration file, with the include done locally. For the default template files included with Kolla Ansible we use Jinja includes, but this does not work with templates in a different directory. We therefore use the Ansible template lookup plugin, which has a slightly higher overhead than a jinja include, but far lower than generating multiple templates. This should drastically improve the performance of this task. [1] https://github.com/stackhpc/ansible-scaling/blob/master/doc/template.md Partially-Implements: blueprint performance-improvements Change-Id: Ia8623be0aa861fea3e54d2c9e1c971dfd8e3afa9
50 lines
1.5 KiB
Django/Jinja
50 lines
1.5 KiB
Django/Jinja
{% set fluentd_user = fluentd_binary %}
|
|
{% set fluentd_dir = '/etc/' ~ fluentd_binary %}
|
|
|
|
{% if fluentd_binary == 'fluentd' %}
|
|
{% set fluentd_conf = 'fluent.conf' %}
|
|
{% if kolla_base_distro in ['ubuntu', 'debian'] %}
|
|
{% set fluentd_cmd = '/usr/local/bin/fluentd -c ' ~ fluentd_dir ~ '/' ~ fluentd_conf %}
|
|
{% else %}
|
|
{% set fluentd_cmd = '/usr/bin/fluentd -c ' ~ fluentd_dir ~ '/' ~ fluentd_conf %}
|
|
{% endif %}
|
|
{% elif fluentd_binary == 'td-agent' %}
|
|
{% set fluentd_conf = fluentd_binary ~ '.conf' %}
|
|
{% set fluentd_cmd = '/usr/sbin/td-agent' %}
|
|
{% endif %}
|
|
|
|
{
|
|
"command": "{{ fluentd_cmd }} -o /var/log/kolla/fluentd/fluentd.log",
|
|
"config_files": [
|
|
{
|
|
"source": "{{ container_config_directory }}/td-agent.conf",
|
|
"dest": "{{ fluentd_dir }}/{{ fluentd_conf }}",
|
|
"owner": "{{ fluentd_user }}",
|
|
"perm": "0600"
|
|
}
|
|
],
|
|
"permissions": [
|
|
{
|
|
"path": "/var/log/kolla/fluentd",
|
|
"owner": "{{ fluentd_user }}:{{ fluentd_user }}",
|
|
"recurse": true
|
|
},
|
|
{
|
|
"path": "/var/log/kolla/haproxy",
|
|
"owner": "{{ fluentd_user }}:{{ fluentd_user }}",
|
|
"recurse": true
|
|
},
|
|
{
|
|
"path": "/var/log/kolla/swift",
|
|
"owner": "{{ fluentd_user }}:{{ fluentd_user }}",
|
|
"recurse": true
|
|
},
|
|
{
|
|
"path": "/var/lib/fluentd/data",
|
|
"owner": "{{ fluentd_user }}:{{ fluentd_user }}",
|
|
"recurse": true
|
|
}
|
|
]
|
|
|
|
}
|