2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
# File 'manifests/plugin/rrdtool.pp', line 2
class collectd::plugin::rrdtool (
$ensure = 'present',
$manage_package = undef,
$datadir = '/var/lib/collectd/rrd',
$createfilesasync = false,
$interval = undef,
$rrarows = 1200,
$rratimespan = [3600, 86400, 604800, 2678400, 31622400],
$xff = 0.1,
$cacheflush = 900,
$cachetimeout = 120,
$writespersecond = 50
) {
include ::collectd
$_manage_package = pick($manage_package, $::collectd::manage_package)
validate_string($datadir)
validate_array($rratimespan)
validate_bool($createfilesasync)
if $rrarows and ! is_integer($rrarows) {
fail('rrarows must be an integer!')
}
if $xff and ! is_float($xff) {
fail('xff must be a float!')
}
if $cacheflush and ! is_integer($cacheflush) {
fail('cacheflush must be an integer!')
}
if $cachetimeout and ! is_integer($cachetimeout) {
fail('cachetimeout must be an integer!')
}
if $writespersecond and ! is_integer($writespersecond) {
fail('writespersecond must be an integer!')
}
if $::osfamily == 'RedHat' {
if $_manage_package {
package { 'collectd-rrdtool':
ensure => $ensure,
}
}
}
collectd::plugin { 'rrdtool':
ensure => $ensure,
content => template('collectd/plugin/rrdtool.conf.erb'),
interval => $interval,
}
}
|