| {% set agent = salt['grains.filter_by']({ |
| 'Debian': { |
| 'pkgs': ['telegraf'], |
| 'dir': { |
| 'config': '/etc/telegraf', |
| 'config_d': '/etc/telegraf/telegraf.d' |
| }, |
| }, |
| }, merge=salt['pillar.get']('telegraf:agent')) %} |
| |
| {% set remote_agent = salt['grains.filter_by']({ |
| 'Debian': { |
| 'dir': { |
| 'config': '/srv/volumes/local/telegraf', |
| 'config_d': '/srv/volumes/local/telegraf/telegraf.d' |
| }, |
| }, |
| }, merge=salt['pillar.get']('telegraf:remote_agent')) %} |
| |
| {# Collect configuration from */meta/telegraf.yml #} |
| {%- set telegraf_grains = {'telegraf': {'agent': {'input': {}}, 'remote_agent': {'input':{}}}} %} |
| {%- for service_name, service in pillar.items() %} |
| {%- if service.get('_support', {}).get('telegraf', {}).get('enabled', False) %} |
| {%- set grains_fragment_file = service_name+'/meta/telegraf.yml' %} |
| {%- macro load_grains_file() %}{% include grains_fragment_file ignore missing %}{% endmacro %} |
| {%- set grains_yaml = load_grains_file()|load_yaml %} |
| {%- if grains_yaml is mapping %} |
| {%- set telegraf_grains = salt['grains.filter_by']({'default': telegraf_grains}, merge={'telegraf': grains_yaml}) %} |
| {%- endif %} |
| {%- endif %} |
| {%- endfor %} |
| |
| {# Deep-merge the service configuration with the pillar data #} |
| {%- do salt['defaults.merge'](telegraf_grains, {'telegraf': {'agent': agent, 'remote_agent': remote_agent}}) %} |