1
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
58
59
60
61
62
63
64
65
66
67
68
69
70
|
# File 'manifests/plugins/docker.pp', line 1
class collectd::plugins::docker (
$modules,
$filter_metrics = false,
$filter_metric_rules = {},
$plugin_template = 'collectd/plugins/docker/10-docker.conf.erb',
$package_name = 'collectd-python',
$package_ensure = present,
$package_required = false
) {
validate_hash($modules)
Exec { path => [ '/bin/', '/sbin/', '/usr/bin/', '/usr/sbin/' ] }
include collectd
if $::osfamily == 'RedHat' {
exec { 'install epel-release':
command => 'yum install -y epel-release',
before => Package['python-pip']
}
}
package { 'python-pip':
ensure => present,
}
exec { 'install docker dependencies':
command => 'pip install py-dateutil && pip install docker-py>=1.0.0 && pip install jsonpath_rw',
require => Package['python-pip']
}
file { ['/usr/share/collectd/docker-collectd-plugin/']:
ensure => directory,
owner => root,
group => 'root',
mode => '0755',
before => File['get dockerplugin.py'],
require => Exec['install docker dependencies']
}
file { 'get dockerplugin.py':
ensure => present,
replace => 'yes',
path => '/usr/share/collectd/docker-collectd-plugin/dockerplugin.py',
owner => root,
group => 'root',
mode => '0755',
content => template('collectd/plugins/docker/dockerplugin.py.erb'),
before => File['get dockerplugin.db'],
}
file { 'get dockerplugin.db':
ensure => present,
replace => 'yes',
path => '/usr/share/collectd/docker-collectd-plugin/dockerplugin.db',
owner => root,
group => 'root',
mode => '0755',
content => template('collectd/plugins/docker/dockerplugin.db.erb'),
}
collectd::plugins::plugin_common { 'docker':
modules => $modules,
filter_metrics => $filter_metrics,
filter_metric_rules => $filter_metric_rules,
package_name => $package_name,
package_ensure => $package_ensure,
package_required => $package_required,
plugin_file_name => '10-docker.conf',
plugin_template => $plugin_template,
}
}
|