Collectd network configuration

Process values from network_servers and apply
these fields to collectd network plugin configuration.

For IPv6 brackets around IP must be removed to make it work in Collectd.

For every configured host, an entry with the following
format will be added:

Server "HostN" "PortN"

Story: 2009018
Task: 42875
Depends-On: https://review.opendev.org/c/starlingx/config/+/799470

Signed-off-by: Fernando Theirs <Fernando.Theirs@windriver.com>
Change-Id: I248d0ddab58fce09d54b7befa9d6ac212d071487
This commit is contained in:
Fernando Theirs 2021-07-22 10:36:54 -03:00
parent 571e0799a9
commit 5d20ad632c
3 changed files with 30 additions and 6 deletions

View File

@ -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

View File

@ -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,

View File

@ -81,12 +81,15 @@ WriteQueueLimitLow <%= @write_queue_limit_low %>
# LogLevel info
#</Plugin>
<% if @server_ips != [] -%>
# Have collectd send to these servers on server_port
<Plugin network>
<%- @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 -%>
</Plugin>
<% end -%>
LoadPlugin python
<Plugin python>