From 29a6a0540f8fdc56f623d0382058dd1c5ec1e27b Mon Sep 17 00:00:00 2001 From: "Dustin C. Hatch" Date: Thu, 21 Jul 2022 12:18:43 -0500 Subject: [PATCH] r/collectd: Better control over enabled plugins Instead of a simple list of disabled plugins, hosts and host groups can now control whether plugins are enabled or disabled using the `collectd_plugins` map. The map keys are plugin names, and the values are booleans indicating if the plugin is enabled. Using this mechanism, some plugins can be disabled by default (e.g. the *md* plugin), and enabling them per host or per host group is simpler. --- roles/collectd/defaults/main.yml | 5 ++++- roles/collectd/templates/collectd.conf.j2 | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/roles/collectd/defaults/main.yml b/roles/collectd/defaults/main.yml index 071845c..2b5f168 100644 --- a/roles/collectd/defaults/main.yml +++ b/roles/collectd/defaults/main.yml @@ -3,7 +3,10 @@ collectd_load_network_plugin: false collectd_network_servers: [] collectd_network_listen: [] -collectd_disable_plugins: [] +collectd_plugins: {} + +collectd_plugins_defaults: + md: false collectd_df: {} diff --git a/roles/collectd/templates/collectd.conf.j2 b/roles/collectd/templates/collectd.conf.j2 index 27ea1c7..ea02ff0 100644 --- a/roles/collectd/templates/collectd.conf.j2 +++ b/roles/collectd/templates/collectd.conf.j2 @@ -90,9 +90,9 @@ LoadPlugin syslog ############################################################################## {% macro load_plugin(name) %} -{% if name in collectd_disable_plugins %} +{% if (collectd_plugins_defaults | combine(collectd_plugins)).get(name, true) | bool is false %} #LoadPlugin {{ name }} -{% else %} +{%- else %} LoadPlugin {{ name }} {%- endif -%} {% endmacro %}