diff --git a/puppet-manifests/src/hieradata/global.yaml b/puppet-manifests/src/hieradata/global.yaml index 3ebdbb39..82537e79 100644 --- a/puppet-manifests/src/hieradata/global.yaml +++ b/puppet-manifests/src/hieradata/global.yaml @@ -32,8 +32,7 @@ platform::collectd::params::write_threads: 1 platform::collectd::params::max_read_interval: 86400 platform::collectd::params::write_queue_limit_high: 1000000 platform::collectd::params::write_queue_limit_low: 800000 -platform::collectd::params::server_addrs: [] -platform::collectd::params::server_port: 25826 +platform::collectd::params::default_server_port: 25826 platform::collectd::params::collectd_d_dir: '/etc/collectd.d/starlingx' # collectd: module named plugins diff --git a/puppet-manifests/src/modules/platform/manifests/collectd.pp b/puppet-manifests/src/modules/platform/manifests/collectd.pp index 41aa2ce3..16f28df6 100644 --- a/puppet-manifests/src/modules/platform/manifests/collectd.pp +++ b/puppet-manifests/src/modules/platform/manifests/collectd.pp @@ -5,10 +5,11 @@ class platform::collectd::params ( $write_threads = undef, $write_queue_limit_high = undef, $write_queue_limit_low = undef, - $server_addrs = [], - $server_port = undef, $max_read_interval = undef, + $network_servers = [], + $default_server_port = undef, + # python plugin controls $module_path = undef, $plugins = [], @@ -22,6 +23,27 @@ class platform::collectd::params ( class platform::collectd inherits ::platform::collectd::params { + #Get port or set default one + $server_ports = $network_servers.map |$elem| { + if(split($elem, ':').size() > 2) { + if(']:' in $elem) { + split($elem, ':')[-1] + } else { + $default_server_port + } + } else { + if(':' in $elem) { + split($elem, ':')[-1] + } else { + $default_server_port + } + } + } + #Get address + $server_ips = $network_servers.map | $i, $elem| { + $address = regsubst($elem.delete(":${server_ports[$i]}"),'[\[\]]','','G') + } + file { '/etc/collectd.conf': ensure => 'present', replace => true, diff --git a/puppet-manifests/src/modules/platform/templates/collectd.conf.erb b/puppet-manifests/src/modules/platform/templates/collectd.conf.erb index cb833ef2..ee3bc933 100644 --- a/puppet-manifests/src/modules/platform/templates/collectd.conf.erb +++ b/puppet-manifests/src/modules/platform/templates/collectd.conf.erb @@ -81,12 +81,15 @@ WriteQueueLimitLow <%= @write_queue_limit_low %> # LogLevel info # +<% if @server_ips != [] -%> # Have collectd send to these servers on server_port -<%- @server_addrs.each do |server_addr| -%> - Server "<%= server_addr %>" "<%= @server_port %>" +<%- @server_ips.each_with_index do |ip, index| -%> + Server "<%= ip %>" "<%= @server_ports[index] %>" <%- end -%> +<% end -%> + LoadPlugin python