Version information
This version is compatible with:
- Puppet Enterprise 2017.2.x, 2017.1.x, 2016.5.x, 2016.4.x
- Puppet >= 3.8.7 < 5.0.0
- Gentoo, Archlinux , , , , , , , , ,
Start using this module
Add this module to your Puppetfile:
mod 'mugurax-collectd', '5.2.2'
Learn more about managing modules with a PuppetfileDocumentation
Collectd module for Puppet
Description
Puppet module for configuring collectd and plugins.
Usage
The simplest use case is to use all of the configurations in
the default collectd.conf
file shipped with collectd. This can
be done by simply including the class:
include ::collectd
Collectd is most useful when configured with customized plugins.
This is accomplished by removing the default collectd.conf
file
and replacing it with a file that includes all alternative
configurations. Configure a node with the following class
declaration:
class { '::collectd':
purge => true,
recurse => true,
purge_config => true,
minimum_version => '5.4',
}
Set purge
, recurse
, and purge_config
to true
in order to override
the default configurations shipped in collectd.conf
and use
custom configurations stored in conf.d
. From here you can set up
additional plugins as shown below.
Specifying the version
or minimum_version
of collectd as shown above reduces
the need for two puppet runs to converge. See
Puppet needs two runs to correctly write my conf, why?
below.
Hiera example in YAML of passing install_options
to the package resource for
managing the collectd package. This parameter must be an array.
collectd::package_install_options:
- '--nogpgcheck'
Simple Plugins
Example of how to load plugins with no additional configuration:
collectd::plugin { 'battery': }
Where battery
is the name of the plugin.
Note: this should only be done in the case of a class for the plugin not existing in this module.
Repo management
The module will enable a repo by default.
On CentOS that will be EPEL:
On Ubuntu that'll be the CollectD PPA:
CI Packages
Recently, Collectd CI packages are also avaliable from the CI repo
More information is avaliable here:
You can choose the CI repo with the $ci_package_repo
parameter.
$ci_package_repo
has to match '5.4', '5.5', '5.6', '5.7' or 'master' (RC for next release) as
these are the current branches being built in the Collectd CI.
Configurable Plugins
Parameters will vary widely between plugins. See the collectd documentation for each plugin for configurable attributes.
aggregation
(see collectd::plugin::aggregation below)amqp
(see collectd::plugin::amqp below)apache
(see collectd::plugin::apache below)bind
(see collectd::plugin::bind below)ceph
(see collectd::plugin::ceph below)cgroups
(see collectd::plugin::cgroups below)chain
(see collectd::plugin::chain below)conntrack
(see collectd::plugin::conntrack below)cpu
(see collectd::plugin::cpu below)cpufreq
(see collectd::plugin::cpufreq below)csv
(see collectd::plugin::csv below)curl
(see collectd::plugin::curl below)curl_json
(see collectd::plugin::curl_json below)dbi
(see collectd::plugin::dbi below)df
(see collectd::plugin::df below)disk
(see collectd::plugin::disk below)dns
(see collectd::plugin::dns below)entropy
(see collectd::plugin::entropy below)exec
(see collectd::plugin::exec below)ethstat
(see collectd::plugin::ethstat below)fhcount
(see collectd::plugin::fhcount below)filecount
(see collectd::plugin::filecount below)filter
(see collectd::plugin::filter below)genericjmx
(see collectd::plugin::genericjmx below)hddtemp
(see collectd::plugin::hddtemp below)interface
(see collectd::plugin::interface below)ipmi
(see collectd::plugin::ipmi below)iptables
(see collectd::plugin::iptables below)irq
(see collectd::plugin::irq below)java
(see collectd::plugin::java below)load
(see collectd::plugin::load below)logfile
(see collectd::plugin::logfile below)virt
(see collectd::plugin::virt below)lvm
(see collectd::plugin::lvm below)memcached
(see collectd::plugin::memcached below )memory
(see collectd::plugin::memory below )mongodb
(see collectd::plugin::mongodb below )mysql
(see collectd::plugin::mysql below)netlink
(see collectd::plugin::netlink below)network
(see collectd::plugin::network below)nfs
(see collectd::plugin::nfs below)nginx
(see collectd::plugin::nginx below)ntpd
(see collectd::plugin::ntpd below)openldap
(see collectd::plugin::openldap below)openvpn
(see collectd::plugin::openvpn below)perl
(see collectd::plugin::perl below)ping
(see collectd::plugin::ping below)postgresql
(see collectd::plugin::postgresql below)processes
(see collectd::plugin:processes below)protocols
(see collectd::plugin:protocols below)python
(see collectd::plugin::python below)redis
(see collectd::plugin::redis below)rabbitmq
(see collectd-rabbitmq and below for implementation notesrrdcached
(see collectd::plugin::rrdcached below)rrdtool
(see collectd::plugin::rrdtool below)sensors
(see collectd::plugin::sensors below)smart
(see collectd::plugin::smart below)snmp
(see collectd::plugin::snmp below)statsd
(see collectd::plugin::statsd below)swap
(see collectd::plugin::swap below)syslog
(see collectd::plugin::syslog below)tail
(see collectd::plugin::tail below)target_v5upgrade
(see collectd::plugin::target_v5upgrade below)tcpconns
(see collectd::plugin::tcpconns below)thermal
(see collectd::plugin::thermal below)unixsock
(see collectd::plugin::unixsock below)uptime
(see collectd::plugin::uptime below)users
(see collectd::plugin::users below)uuid
(see collectd::plugin::uuid below)varnish
(see collectd::plugin::varnish below)vmem
(see collectd::plugin::vmem below)write_graphite
(see collectd::plugin::write_graphite below)write_http
(see collectd::plugin::write_http below)write_kafka
(see collectd::plugin::write_kafka below)write_log
(see collectd::plugin::write_log below)write_prometheus
(see collectd::plugin::write_prometheus below)write_network
(see collectd::plugin::write_network below)write_riemann
(see collectd::plugin::write_riemann below)write_sensu
(see collectd::plugin::write_sensu below)write_tsdb
(see collectd::plugin::write_tsdb below)zfs_arc
(see collectd::plugin::zfs_arc below)
Class: collectd::plugin::aggregation
collectd::plugin::aggregation::aggregator {
cpu':
plugin => 'cpu',
agg_type => 'cpu',
groupby => ["Host", "TypeInstance",],
calculateaverage => true,
}
You can as well configure this plugin with a parameterized class :
class { 'collectd::plugin::aggregation':
aggregators => {
cpu' => {
plugin => 'cpu',
agg_type => 'cpu',
groupby => ["Host", "TypeInstance",],
calculateaverage => true,
},
},
}
Class: collectd::plugin::amqp
class { 'collectd::plugin::amqp':
amqphost => '127.0.0.1',
amqpvhost => 'myvirtualhost',
graphiteprefix => 'collectdmetrics',
amqppersistent => true,
}
Class: collectd::plugin::apache
class { 'collectd::plugin::apache':
instances => {
'apache80' => {
'url' => 'http://localhost/mod_status?auto',
'user' => 'collectd',
'password' => 'hoh2Coo6'
},
'lighttpd8080' => {
'url' => 'http://localhost:8080/mod_status?auto'
}
},
}
Class: collectd::plugin::bind
class { 'collectd::plugin::bind':
url => 'http://localhost:8053/',
}
Class: collectd::plugin::ceph
class { 'collectd::plugin::ceph':
daemons => [
'[clustername]-osd.0',
'[clustername]-osd.1',
'[clustername]-osd.2',
'[clustername]-mon.[hostname].asok'
],
manage_package => true
}
Class: collectd::plugin::cgroups
See collectd plugin_cgroups documentation for more details.
class { 'collectd::plugin::cgroups':
ignore_selected => true,
cgroups => ['array', 'of', 'paths']
}
Class: collectd::plugin::chain
class { 'collectd::plugin::chain':
chainname => "PostCache",
defaulttarget => "write",
rules => [
{
'match' => {
'type' => 'regex',
'matches' => {
'Plugin' => "^cpu$",
'PluginInstance' => "^[0-9]+$",
},
},
'targets' => [
{
'type' => "write",
'attributes' => {
"Plugin" => "aggregation",
},
},
{
'type' => "stop",
},
],
},
],
}
Class: collectd::plugin::conntrack
class { 'collectd::plugin::conntrack':
}
Class: collectd::plugin::cpu
-
reportbystate
available from collectd version >= 5.5 -
reportbycpu
available from collectd version >= 5.5 -
valuespercentage
available from collectd version >= 5.5 -
reportnumcpu
available from collectd version >= 5.6See collectd plugin_cpu documentation for more details.
class { 'collectd::plugin::cpu':
reportbystate => true,
reportbycpu => true,
valuespercentage => true,
}
Class: collectd::plugin::cpufreq
class { 'collectd::plugin::cpufreq':
}
Class: collectd::plugin::csv
class { 'collectd::plugin::csv':
datadir => '/etc/collectd/var/lib/collectd/csv',
storerates => false,
}
Class: collectd::plugin::curl
collectd::plugin::curl::page {
'stock_quotes':
url => 'http://finance.google.com/finance?q=NYSE%3AAMD',
user => 'foo',
password => 'bar',
matches => [
{
'dstype' => 'GaugeAverage',
'instance' => 'AMD',
'regex' => ']*> *([0-9]*\\.[0-9]+) *',
'type' => 'stock_value',
}],
}
You can as well configure this plugin with a parameterized class :
class { 'collectd::plugin::curl':
pages => {
'stock_GM' => {
url => 'http://finance.google.com/finance?q=NYSE%3AGM',
user => 'foo',
password => 'bar',
matches => [
{
'dstype' => 'GaugeAverage',
'instance' => 'AMD',
'regex' => ']*> *([0-9]*\\.[0-9]+) *',
'type' => 'stock_value',
},
],
},
},
}
Class: collectd::plugin::curl_json
collectd::plugin::curl_json {
'rabbitmq_overview':
url => 'http://localhost:55672/api/overview',
instance => 'rabbitmq_overview',
interval => '300',
keys => {
'message_stats/publish' => {
'type' => 'gauge',
'instance' => 'overview',
},
}
}
Class: collectd::plugin::dbi
collectd::plugin::dbi::database{'monitoring_node1':
driver => 'mysql',
driveroption => {
'host' => 'hostname',
'username' => 'user',
'password' => 'password',
'dbname' => 'monitoring'
},
query => ['log_delay'],
}
collectd::plugin::dbi::query{'log_delay':
statement => 'SELECT * FROM log_delay_repli;',
results => [{
type => 'gauge',
instanceprefix => 'log_delay',
instancesfrom => 'inet_server_port',
valuesfrom => 'log_delay',
}],
}
You can as well configure this plugin as a parameterized class :
class { 'collectd::plugin::dbi':
package => 'libdbd-mysql',
databases => {
'monitoring_node1' => {
driver => 'mysql',
driveroption => {
'host' => 'hostname',
'username' => 'user',
'password' => 'password',
'dbname' => 'monitoring'
},
query => ['log_delay'],
}
},
}
Class: collectd::plugin::df
class { 'collectd::plugin::df':
mountpoints => ['/u'],
fstypes => ['nfs','tmpfs','autofs','gpfs','proc','devpts'],
ignoreselected => true,
}
Class: collectd::plugin::disk
class { 'collectd::plugin::disk':
disks => ['/^dm/'],
ignoreselected => true,
udevnameattr => 'DM_NAME',
}
Class: collectd::plugin::dns
class { 'collectd::plugin::dns':
}
Parameters
See collectd documentation.
ensure
Optional. String that must be 'present' or 'absent'.
- Default: 'present'
ignoresource
Optional. String of IP address to ignore.
- Default: undef
interface
String of interface to use. May be interface identifier such as 'eth0' or 'any'.
- Default: 'any'
interval
Numeric for interval in seconds. Changing this can be a disaster. Consult the documentation.
- Default: undef
manage_package
Boolean to determine if system package for collectd's dns plugin should be managed. If set to true, you must specify the package name for any unsupported OS.
- Default: false
package_name
String for name of package. A value of 'USE_DEFAULTS' will set the value based on the platform. This is necessary when setting manage_package on an unsupported platform.
- Default: 'USE_DEFAULTS'
selectnumericquerytypes
Boolean for SelectNumericQueryTypes configuration option.
- Default: true
Class: collectd::plugin::entropy
class { 'collectd::plugin::entropy':
}
Class: collectd::plugin::exec
collectd::plugin::exec::cmd {
'dummy':
user => nobody,
group => nogroup,
exec => ["/bin/echo", "PUTVAL myhost/foo/gauge-flat N:1"],
}
You can also configure this plugin with a parameterized class:
class { 'collectd::plugin::exec':
commands => {
'dummy1' => {
user => nobody,
group => nogroup,
exec => ["/bin/echo", "PUTVAL myhost/foo/gauge-flat1 N:1"],
},
'dummy2' => {
user => nobody,
group => nogroup,
exec => ["/bin/echo", "PUTVAL myhost/foo/gauge-flat2 N:1"],
},
}
}
Class: collectd::plugin::ethstat
class { 'collectd::plugin::ethstat':
interfaces => [ 'eth0', 'eth1'],
maps => [
'"rx_csum_offload_errors" "if_rx_errors" "checksum_offload"', '"multicast" "if_multicast"'
],
mappedonly => false,
}
Class: collectd::plugin::fhcount
class { 'collectd::plugin::fhcount':
valuesabsolute => true,
valuespercentage => false,
}
Class: collectd::plugin::filecount
collectd::plugin::filecount::directory {'foodir':
path => '/path/to/dir',
pattern => '*.conf',
mtime => '-5m',
recursive => true,
includehidden => false
}
You can also configure this plugin with a parameterized class:
class { 'collectd::plugin::filecount':
directories => {
'foodir' => {
'path' => '/path/to/dir',
'pattern' => '*.conf',
'mtime' => '-5m',
'recursive' => true,
'includehidden' => false
},
},
}
For backwards compatibility:
class { 'collectd::plugin::filecount':
directories => {
'active' => '/var/spool/postfix/active',
'incoming' => '/var/spool/postfix/incoming'
},
}
Class: collectd::plugin::filter
The filter plugin implements the powerful filter configuration of collectd. For further details have a look on the collectd manpage.
Parameters
ensure
("ensure"
,"absent"
): Ob absent it will remove all references of the filter plugins.Note
: The Chain config needs to be purged by the chain define.precachechain
(String): The Name of the default Pre Chain.postcachechain
(String): The Name of the default Post Chain.
Examples
Overwrite default chains
class { 'collectd::plugin::filter':
ensure => 'present',
precachechain => 'PreChain',
postcachechain => 'PostChain',
}
Full Example
This Example will rename the hostname of the mysql plugin.
include collectd::plugin::filter
# define default chains with default target
collectd::plugin::filter::chain { 'PreChain':
target => 'return'
}
collectd::plugin::filter::chain { 'PostChain':
target => 'write'
}
# create a third chain,
$chainname = 'MyAweseomeChain'
collectd::plugin::filter::chain { $chainname:
ensure => present,
target => 'return'
}
# add a new rule to chain
$rulename = 'MyAweseomeRule'
collectd::plugin::filter::rule { $rulename:
chain => $chainname,
}
# add a new match rule, match metrics of the mysql plugin
collectd::plugin::filter::match { "Match mysql plugin":
chain => $chainname,
rule => $rulename,
plugin => 'regex',
options => {
'Plugin' => '^mysql',
}
}
#rewrite hostname
collectd::plugin::filter::target{ "overwrite hostname":
chain => $chainname,
rule => $rulename,
plugin => 'set',
options => {
'Host' => 'hostname.domain',
},
}
# hook the configured chain in the prechain
collectd::plugin::filter::target{ "1_prechain_jump_${chainname}":
chain => 'PreChain',
plugin => 'jump',
options => {
'Chain' => $chainname,
},
}
Define: collectd::plugin::filter::chain
This define will create a new chain, which is required by targets, matches and rules.
Parameters
ensure
("ensure"
,"absent"
): When set to absent it will remove the chain with all assigned rules, targets and matches.target
('notification','replace','set','return','stop','write','jump'
): Optional. Set default target if no target has been applied. Strongly recommend for default chains.target_options
(Hash): If target is specified, pass optional hash to define.
Example
see collectd::plugin::filter above
Define: collectd::plugin::filter::rule
This define will add a new rule to a specific chain
Parameters
chain
(String): Assign to this chain.
Example
see collectd::plugin::filter above
Define: collectd::plugin::filter::target
This define will add a target to a chain or rule.
Parameters
chain
(String): Assign to this chain.plugin
('notification','replace','set','return','stop','write','jump'
): The plugin of the target.options
(Hash): Optional parameters of the target plugin.rule
(String): Optional. Assign to this rule. If not present, target will be applied at the end of chain without rule matching.
Example
see collectd::plugin::filter above
Define: collectd::plugin::filter::match
This define will add a match rule.
Parameters
chain
(String): Assign to this chain.rule
(String): Assign to this rule.plugin
('regex','timediff','value','empty_counter','hashed'
): The plugin of the match.options
(Hash): Optional parameters of the match plugin.
Example
see collectd::plugin::filter above
Class: collectd::plugin::genericjmx
include collectd::plugin::genericjmx
collectd::plugin::genericjmx::mbean {
'garbage_collector':
object_name => 'java.lang:type=GarbageCollector,*',
instance_prefix => 'gc-',
instance_from => 'name',
values => [
{
mbean_type => 'invocations',
table => false,
attribute => 'CollectionCount',
},
{
mbean_type => 'total_time_in_ms',
instance_prefix => 'collection_time',
table => false,
attribute => 'CollectionTime',
},
];
}
collectd::plugin::genericjmx::connection {
'java_app':
host => $fqdn,
service_url => 'service:jmx:rmi:///jndi/rmi://localhost:3637/jmxrmi',
collect => [ 'memory-heap', 'memory-nonheap','garbage_collector' ],
}
Class: collectd::plugin::hddtemp
class { 'collectd::plugin::hddtemp':
host => '127.0.0.1',
port => 7634,
}
Class: collectd::plugin::interface
class { 'collectd::plugin::interface':
interfaces => ['lo'],
ignoreselected => true
}
Class: collectd::plugin::irq
class { 'collectd::plugin::irq':
irqs => ['7', '23'],
ignoreselected => true,
}
Class: collectd::plugin::ipmi
class { 'collectd::plugin::ipmi':
ignore_selected => true,
sensors => ['temperature'],
notify_sensor_add => true,
notify_sensor_remove => true,
notify_sensor_not_present => true,
}
Class: collectd::plugin::iptables
class { 'collectd::plugin::iptables':
chains => {
'nat' => 'In_SSH',
'filter' => 'HTTP'
},
}
Class: collectd::plugin::java
jvmarg options must be declared if declaring loadplugin, as the JVM must be initialized prior to loading collectd java plugins.
class { 'collectd::plugin::java':
jvmarg => ['arg1', 'arg2'],
loadplugin => {"plugin.name" => ["option line 1", "option line 2"]}
}
Class: collectd::plugin::load
class { 'collectd::plugin::load':
}
Class: collectd::plugin::logfile
class { 'collectd::plugin::logfile':
log_level => 'warning',
log_file => '/var/log/collected.log'
}
Class: collectd::plugin::virt
The interface_format parameter was introduced in collectd 5.0 and will therefore be ignored (with a warning) when specified with older versions.
class { 'collectd::plugin::virt':
connection => 'qemu:///system',
interface_format => 'address'
}
Class: collectd::plugin::lvm
class { 'collectd::plugin::lvm': }
Class: collectd::plugin::memcached
The plugin supports multiple instances specified via host+port and socket:
class { 'collectd::plugin::memcached':
instances => {
'sessions1' => {
'host' => '192.168.122.1',
'port' => '11211',
},
'storage1' => {
'host' => '192.168.122.1',
'port' => '11212',
},
'sessions2' => {
'socket' => '/var/run/memcached.sessions.sock',
},
'storage2' => {
'socket' => '/var/run/memcached.storage.sock',
},
}
}
Class: collectd::plugin::memory
class { 'collectd::plugin::memory':
}
Class: collectd::plugin::mysql
collectd::plugin::mysql::database { 'betadase':
host => 'localhost',
username => 'stahmna',
password => 'secret',
port => '3306',
masterstats => true,
}
Class: collectd::plugin::mongodb
class { 'collectd::plugin::mongodb':
db_user => 'admin',
db_pass => 'adminpass',
}
Parameters
ensure
(String): String that must be 'present' or 'absent'. Default: 'present'interval
(String): Number of seconds that collectd pauses between data collection. Default: undefdb_host
(String): String that holds the IP of the MongoDB server. Default: '127.0.0.1'db_user
(String): Required. String that specifies the user name of an account that can log into MongoDBdb_user
(String): Required. String that specifies the password of an account that can log into MongoDBconfigured_dbs
(String): Optional. Array of Strings that lists the databases that should be monitored in addition to the "admin"db_port
(String): Required if the configured_dbs parameter is set. Unused otherwise. Integer that specifies with port MongoDB listens on.
class { 'collectd::plugin::mongodb':
db_host => '127.0.0.1',
db_user => 'foo',
db_pass => 'bar',
db_port => '27017',
configured_dbs => ['database', 'names'],
collectd_dir => '/collectd/module/path',
}
Class: collectd::plugin::netlink
class { 'collectd::plugin::netlink':
interfaces => ['eth0', 'eth1'],
verboseinterfaces => ['ppp0'],
qdiscs => ['"eth0" "pfifo_fast-1:0"', '"ppp0"'],
classes => ['"ppp0" "htb-1:10"'],
filters => ['"ppp0" "u32-1:0"'],
ignoreselected => false,
}
Class: collectd::plugin::network
collectd::plugin::network::server{'hostname':
port => 25826,
}
collectd::plugin::network::listener{'hostname':
port => 25826,
}
You can as well configure this plugin with a parameterized class :
class { 'collectd::plugin::network':
timetolive => '70',
maxpacketsize => '42',
forward => false,
reportstats => true,
servers => { 'hostname' => {
'port' => '25826',
'interface' => 'eth0',
'securitylevel' => '',
'username' => 'foo',
'password' => 'bar',},
},
listeners => { 'hostname' => {
'port' => '25826',
'interface' => 'eth0',
'securitylevel' => '',
'authfile' => '/etc/collectd/passwd',},
},
}
Class: collectd::plugin::nfs
class { 'collectd::plugin::nfs':
}
Class: collectd::plugin::nginx
class { 'collectd::plugin::nginx':
url => 'https://localhost:8433',
user => 'stats',
password => 'uleePi4A',
}
Class: collectd::plugin::ntpd
class { 'collectd::plugin::ntpd':
host => 'localhost',
port => 123,
reverselookups => false,
includeunitid => false,
}
Class: collectd::plugin::openldap
class { 'collectd::plugin::openldap':
instances => {
'foo' => {
'url' => 'ldap://localhost/'
},
'bar' => {
'url' => 'ldaps://localhost/'
}
},
}
Class: collectd::plugin::openvpn
statusfile
(String or Array) Status file(s) to collect data from. (Default/etc/openvpn/openvpn-status.log
)improvednamingschema
(Bool) When enabled, the filename of the status file will be used as plugin instance and the client's "common name" will be used as type instance. This is required when reading multiple status files. (Default:false
)collectcompression
Sets whether or not statistics about the compression used by OpenVPN should be collected. This information is only available in single mode. (Defaulttrue
)collectindividualusers
Sets whether or not traffic information is collected for each connected client individually. If set to false, currently no traffic data is collected at all because aggregating this data in a save manner is tricky. (Defaulttrue
)collectusercount
When enabled, the number of currently connected clients or users is collected. This is especially interesting when CollectIndividualUsers is disabled, but can be configured independently from that option. (Defaultfalse
)
Watch multiple statusfile
s:
class { 'collectd::plugin::openvpn':
statusfile => [
'/etc/openvpn/openvpn-status-tcp.log',
'/etc/openvpn/openvpn-status-udp.log'
],
collectindividualusers => false,
collectusercount => true,
}
Watch the single default statusfile
:
class { 'collectd::plugin::openvpn':
collectindividualusers => false,
collectusercount => true,
}
Class: collectd::plugin::perl
This class has no parameters and will load the actual perl plugin.
It will be automatically included if any perl::plugin
is defined.
Example
include collectd::plugin::perl
Define: collectd::plugin::perl::plugin
This define will load a new perl plugin.
Parameters
module
(String): name of perl module to load (mandatory)enable_debugger
(False or String): whether to load the perl debugger. See collectd-perl manpage for more details.include_dir
(String or Array): directories to add to @INCprovider
("package"
,"cpan"
,"file"
orfalse
): method to get the plugin codesource
(String): this parameter is consumed by the provider to infer the source of the plugin codedestination
(String or false): path to plugin code ifprovider
isfile
. Ignored otherwise.order
(String containing numbers): order in which the plugin should be loaded. Defaults to"00"
config
(Hash): plugin configuration in form of a hash. This will be converted to a suitable structure understood by liboconfig which is the collectd configuration parser. Defaults to{}
Examples
Using a preinstalled plugin
collectd::plugin::perl::plugin { 'foo':
module => 'Collectd::Plugins::Foo',
enable_debugger => "",
include_dir => '/usr/lib/collectd/perl5/lib',
}
Using a plugin from a file from source
collectd::plugin::perl::plugin { 'baz':
module => 'Collectd::Plugins::Baz',
provider => 'file',
source => 'puppet:///modules/myorg/baz_collectd.pm',
destination => '/path/to/my/perl5/modules'
}
Using a plugin from cpan (requires the puppet cpan module)
collectd::plugin::perl::plugin {
'openafs_vos':
module => 'Collectd::Plugins::OpenAFS::VOS',
provider => 'cpan',
source => 'Collectd::Plugins::OpenAFS',
config => {'VosBin' => '/usr/afsws/etc/vos'},
}
Using a plugin from package source
collectd::plugin::perl::plugin {
'bar':
module => 'Collectd::Plugins::Bar',
provider => 'package',
source => 'perl-Collectd-Plugins-Bar',
config => {'foo' => 'bar'},
}
Class: collectd::plugin::ping
collectd::plugin::ping {
'example':
hosts => ['example.com'],
}
Class: collectd::plugin::postgresql
collectd::plugin::postgresql::database{'monitoring_node1':
name => 'monitoring',
port => '5433',
instance => 'node1',
host => 'localhost',
user => 'collectd',
password => 'collectd',
query => 'log_delay',
}
collectd::plugin::postgresql::query{'log_delay':
statement => 'SELECT * FROM log_delay_repli;',
results => [{
type => 'gauge',
instanceprefix => 'log_delay',
instancesfrom => 'inet_server_port',
valuesfrom => 'log_delay',
}],
}
collectd::plugin::postgresql::writer{'sqlstore':
statement => 'SELECT collectd_insert($1, $2, $3, $4, $5, $6, $7, $8, $9);',
storerates => 'true',
}
You can as well configure this plugin as a parameterized class :
class { 'collectd::plugin::postgresql':
databases => {
'postgres' => {
'host' => '/var/run/postgresql/',
'user' => 'postgres',
'password' => 'postgres',
'sslmode' => 'disable',
'query' => [ 'query_plans', 'queries', 'table_states', 'disk_io' ],
},
'devdb' => {
'host' => 'host.example.com',
'port' => '5432',
'user' => 'postgres',
'password' => 'secret',
'sslmode' => 'prefer',
}
}
}
Class: collectd::plugin::processes
You can either specify processes / process matches at once:
class { 'collectd::plugin::processes':
processes => ['process1', 'process2'],
process_matches => [
{ name => 'process-all', regex => 'process.*' }
],
}
Or define single processes / process matches:
collectd::plugin::processes::process { 'collectd' : }
collectd::plugin::processes::processmatch { 'elasticsearch' :
regex => '.*java.*org.elasticsearch.bootstrap.Elasticsearch'
}
Class: collectd::plugin::protocols
-
values
is an array ofProtocol
names,Protocol:ValueName
pairs, or a regex -
see
/proc/net/netstat
and/proc/net/snmp
for a list ofProtocol
targetsSee collectd.conf documentation for details
class { 'collectd::plugin::protocols':
values => ['/^Tcp:*/', '/^Udp:*/', 'Icmp:InErrors' ],
ignoreselected => false,
}
Class: collectd::plugin::python
-
modulepaths
is an array of paths where will be Collectd looking for Python modules, Puppet will ensure that each of specified directories exists and it is owned byroot
(andchmod 0750
). If you don't specify anymodulepaths
a default value for given distribution will be used. -
modules
a Hash containing configuration of Python modules, where the key is the module name -
globals
Unlike most other plugins, this one should setGlobals true
. This will cause collectd to export the name of all objects in the Python interpreter for all plugins to see. If you don't do this or your platform does not support it, the embedded interpreter will start anyway but you won't be able to load certain Python modules, e.g. "time". -
interactive
whentrue
it will launch an interactive Python interpreter that reads from and writes to the terminal (default:false
) -
logtraces
if a Python script throws an exception it will be logged by collectd with the name of the exception and the message (default:false
)See collectd-python documentation for more details.
NOTE: Since v3.4.0
the syntax of this plugin has changed. Make sure to update
your existing configuration. Now you can specify multiple Python modules at once:
class { 'collectd::plugin::python':
modulepaths => ['/usr/share/collectd/python'],
modules => {
'elasticsearch' => {
'script_source' => 'puppet:///modules/myorg/elasticsearch_collectd_python.py',
'config' => [{'Cluster' => 'elasticsearch'},],
},
'another-module' => {
'config' => [{'Verbose' => 'true'},],
}
}
logtraces => true,
interactive => false,
}
When script_source
provided, a file called {module}.py
will be created in $modulepath/$module.py
.
Or define single module:
collectd::plugin::python::module {'zk-collectd':
script_source => 'puppet:///modules/myorg/zk-collectd.py',
config => {
'Hosts' => "localhost:2181"
}
}
Each plugin might use different modulepath
, however make sure that all paths
are included in collectd::plugin::python
variable modulepaths
. If no
modulepath
is specified, OS default will be used.
collectd::plugin::python::module {'my-module':
modulepath => '/var/share/collectd',
script_source => 'puppet:///modules/myorg/my-module.py',
config => {
'Key' => "value"
}
}
Class: collectd::plugin::redis
class { 'collectd::plugin::redis':
nodes => {
'node1' => {
'host' => 'localhost',
},
'node2' => {
'host' => 'node2.example.com',
'port' => '6380',
'timeout' => 3000,
},
'node3' => {
'host' => 'node3.example.com',
'queries' => {
'dbsize' => {
'type' => 'count',
'query' => 'DBSIZE',
},
},
},
}
}
Class: collectd::plugin::rabbitmq
Please note the rabbitmq plugin provides a types.db.custom. You will need to add this to collectd::config::typesdb via hiera or in a manifest. Failure to set the types.db.custom content will result in no metrics from the rabbitmq plugin.
set typesdb to include the collectd-rabbitmq types.db.custom
collectd::config::typesdb:
- /usr/share/collectd/types.db
- /usr/share/collect-rabbitmq/types.db.custom
class { '::collectd::plugin::rabbitmq':
config => {
'Username' => 'admin',
'Password' => $admin_pass,
'Scheme' => 'https',
'Port' => '15671',
'Host' => $::fqdn,
'Realm' => '"RabbitMQ Management"',
},
}
Class: collectd::plugin::rrdcached
class { 'collectd::plugin::rrdcached':
daemonaddress => 'unix:/var/run/rrdcached.sock',
datadir => '/var/lib/rrdcached/db/collectd',
}
Class: collectd::plugin::rrdtool
class { 'collectd::plugin::rrdtool':
datadir => '/var/lib/collectd/rrd',
createfilesasync => false,
rrarows => 1200,
rratimespan => [3600, 86400, 604800, 2678400, 31622400],
xff => 0.1,
cacheflush => 900,
cachetimeout => 120,
writespersecond => 50
}
Class: collectd::plugin::sensors
class {'collectd::plugin::sensors':
ignoreselected => false,
}
Class: collectd::plugin::smart
class { '::collectd::plugin::smart':
disks => ['/^dm/'],
ignoreselected => true,
}
Class: collectd::plugin::snmp
class {'collectd::plugin::snmp':
data => {
amavis_incoming_messages => {
'type' => 'counter',
'table' => false,
'instance' => 'amavis.inMsgs',
'values' => ['AMAVIS-MIB::inMsgs.0'],
'ignore' => [ '00:00', '*IgnoreString' ],
'invert_match' => false,
}
},
hosts => {
debianvm => {
'address' => '127.0.0.1',
'version' => 2,
'community' => 'public',
'collect' => ['amavis_incoming_messages'],
'interval' => 10
}
},
}
Class: collectd::plugin::statsd
class { 'collectd::plugin::statsd':
host => '0.0.0.0',
port => 8125,
deletecounters => false,
deletetimers => false,
deletegauges => false,
deletesets => false,
timerpercentile => ['50','90'],
}
Class: collectd::plugin::swap
class { 'collectd::plugin::swap':
reportbydevice => false,
reportbytes => true
}
Class: collectd::plugin::syslog
class { 'collectd::plugin::syslog':
log_level => 'warning'
}
Class: collectd::plugin::target_v5upgrade
class { 'collectd::plugin::target_v5upgrade':
}
Class: collectd::plugin::tcpconns
class { 'collectd::plugin::tcpconns':
localports => ['25', '12026'],
remoteports => ['25'],
listening => false,
}
Class: collectd::plugin::tail
collectd::plugin::tail::file { 'exim-log':
filename => '/var/log/exim4/mainlog',
instance => 'exim',
matches => [
{
regex => 'S=([1-9][0-9]*)',
dstype => 'CounterAdd',
type => 'ipt_bytes',
instance => 'total',
},
{
regex => '\\<R=local_user\\>',
dstype => 'CounterInc',
type => 'counter',
instance => 'local_user',
}
]
}
####Class: collectd::plugin::thermal
class { '::collectd::plugin::thermal':
devices => ['foo0'],
ignoreselected => false,
}
####Class: collectd::plugin::unixsock
class {'collectd::plugin::unixsock':
socketfile => '/var/run/collectd-sock',
socketgroup => 'nagios',
socketperms => '0770',
deletesocket => false,
}
Class: collectd::plugin::uptime
class {'collectd::plugin::uptime':
}
Class: collectd::plugin::users
class {'collectd::plugin::users':
}
Class: collectd::plugin::uuid
class {'collectd::plugin::uuid':
uuid_file => '/etc/uuid',
}
Class: collectd::plugin::varnish
class { 'collectd::plugin::varnish':
instances => {
'instanceName' => {
'CollectCache' => 'true',
'CollectBackend' => 'true',
'CollectConnections' => 'true',
'CollectSHM' => 'true',
'CollectESI' => 'false',
'CollectFetch' => 'true',
'CollectHCB' => 'false',
'CollectTotals' => 'true',
'CollectWorkers' => 'true',
}
},
}
Class: collectd::plugin::vmem
class { 'collectd::plugin::vmem':
verbose => true,
}
Class: collectd::plugin::write_graphite
The write_graphite
plugin writes data to Graphite, an open-source metrics
storage and graphing project.
collectd::plugin::write_graphite::carbon {'my_graphite':
graphitehost => 'graphite.example.org',
graphiteport => 2003,
graphiteprefix => '',
protocol => 'tcp'
}
You can define multiple Graphite backends where will be metrics send. Each backend should have unique title:
collectd::plugin::write_graphite::carbon {'secondary_graphite':
graphitehost => 'graphite.example.org',
graphiteport => 2004,
graphiteprefix => '',
protocol => 'udp',
escapecharacter => '_',
alwaysappendds => true,
storerates => true,
separateinstances => false,
logsenderrors => true
}
Class: collectd::plugin::write_http
class { 'collectd::plugin::write_http':
urls => {
'collect1.example.org' => { 'format' => 'JSON' },
'collect2.example.org' => {},
}
}
Class: collectd::plugin::write_kafka
- Requires the Apache Kafka C/C++ library
- Available in collectd version >= 5.5.
class { 'collectd::plugin::write_kafka':
kafka_host => 'localhost',
kafka_port => 9092,
topics => {
'mytopic' => { 'format' => 'JSON' },
}
}
Class: collectd::plugin::write_log
class { 'collectd::plugin::write_log':
format => 'JSON',
}
Class: collectd::plugin::write_prometheus
class { 'collectd::plugin::write_prometheus':
port => '9103',
}
Note: Requires collectd 5.7 or later.
Class: collectd::plugin::write_network
Deprecated
class { 'collectd::plugin::write_network':
servers => {
'collect1.example.org' => { 'serverport' => '25826' },
'collect2.example.org' => { 'serverport' => '25826' }
}
}
Class: collectd::plugin::write_riemann
class { 'collectd::plugin::write_riemann':
riemann_host => 'riemann.example.org',
riemann_port => 5555,
tags => ['foo'],
attributes => {'bar' => 'baz'},
}
Class: collectd::plugin::write_sensu
class { 'collectd::plugin::write_sensu':
sensu_host => 'sensu.example.org',
sensu_port => 3030,
}
Class: collectd::plugin::write_tsdb
class { 'collectd::plugin::write_tsdb':
host => 'tsdb.example.org',
port => 4242,
host_tags => ['environment=production', 'colocation=AWS'],
store_rates => false,
always_append_ds => false,
}
Class: collectd::plugin::zfs_arc
class { 'collectd::plugin::zfs_arc':
}
types.db
Collectd needs to know how to handle each collected datapoint.
For this it uses a database file called types.db
Those files can be created using the collectd::typesdb
and collectd::type
define resources.
$db = '/etc/collectd/types.db'
collectd::typesdb { $db: }
collectd::type { "response_size-${db}":
target => $db,
ds_type => 'ABSOLUTE',
min => 0,
max => 10000000,
ds_name => 'value',
}
class { 'collectd':
typesdb => [
'/usr/share/collectd/types.db',
$typesdb,
],
}
Other software may need to read the Collectd types database files. To allow
non-root users to read from a collectd::typesdb
file like so:
$db = '/etc/collectd/types.db'
collectd::typesdb { $db:
mode => '0644',
}
Limitations
See metadata.json for supported platforms
Known issues
Puppet needs two runs to correctly write my conf, why?
Some plugins will need two runs of Puppet to fully generate the configuration
for collectd. See this issue.
This can be avoided by specifying a minimum version ($minimum_version
) for
the collectd class. e.g. Setting this to 1.2.3 will make this module assume on
the first run (when the fact responsible to provide the collectd version is not
yet available) that your systems are running collectd 1.2.3 and generate the
configuration accordingly.
Development
Running tests
This project contains tests for rspec-puppet.
Quickstart:
gem install bundler
bundle install
bundle exec rake lint
bundle exec rake validate
bundle exec rake spec SPEC_OPTS='--format documentation'
Version scoping
Some plugins or some options in plugins are only available for recent versions of collectd.
This module shall not use unsupported configuration directives. Look at templates/loadplugin.conf.erb for a hands-on example.
Please make use of the search by branch/tags on the collectd github to see when a function has been first released.
Reading the collectd.conf.pod file is good, validating the presence of the code in the .c files is even better.
Authors
Puppet-collectd is maintained by VoxPupuli. Before moving to VoxPupuli it was written and maintained by TheCAT in the pdxcat github org.
2016-12-05 Release 5.2.0
- Modulesync with latest Vox Pupuli defaults
- Fix: Enforce collectd.d directory before all Concats
- Fix: Add ability to add files via hiera
- Fix: Don't accidently upgrade collectd while installing plugins
- Fix: Manage EPEL if needed
- Fix: Set correct installation path for plugins
- Feature: Updat kafka plugin
- Feature: Update Ceph plugin to support more cluster types
- Feature: Add SMART plugin
- Feature: Add support for multiple instances for memcached
- Feature: Extend snmp plugin
- Feature: Add hddtemp plugin
- Feature: Add UUID plugin
- Feature: Introduce rspec-puppet-facts to multiple spec tests
- Feature: Add ppa support on Ubuntu
- Feature: Add provider_proxy for pip
- Feature: Add support for Interface plugin option ReportInactive
- Feature: Add support for ReportNumCpu in CPU plugin introduced in collectd 5.6
- Feature: Add thermal plugin
- Feature: Allow multiple python plugin configs
2016-08-18 Release 5.1.0
- Modulesync with latest Vox Pupuli defaults
- Fix: Target replace filter fix to allow identical keys with different values
- Fix: Check $manage_package if not undef
- Fix: Adding has_wordexp variable for template
- Fix: Remove quotes from VerifyPeer and VerifyHost (don't treat bools as strings)
- Feature: Add password parameter to redis plugin
- Feature: Add scale plugin
- Feature: Add a java_home option to javaplugin
2016-05-26 Release 5.0.0
Backwards-incompatible changes:
- The libvirt plugin has been renamed to simply virt, per collectd upstream
New features
- Add plugin::cgroups
- Add plugin::fhcount
- Add plugin::ipmi
- Add plugin::rabbitmq
- Add parameter StoreRates to amqp plugin
- Support for STRICT_VARIABLES=yes
- Add initial OpenBSD support
Bug fixes
- Manage collectd-disk package on collectd >= 5.5 (fix #457)
- fix typo in write_sensu class example
Maintenance
- Add support for puppetlabs-concat 2.x
- Enhance the curl_json plugin
- Improve FreeBSD support
- A lot of new spec tests
- modulesync to latest voxpupuli defaults (0.6.4)
2016-02-01 Release 4.3.0
New features
- Add plugin::dbi (fix #319)
- Add plugin::filter (fix #322)
- Add support for CollectInternalStats (fix #332)
- Add plugin::write_sensu (fix #335)
- Make management of package optional (fix #341)
- Add plugin::dns (fix #356)
- Add install options (fix #357)
- Add plugin::mongodb (fix #372)
- Add plugin::openldap (fix #381)
- Allow changing file mode of collectd.d (fix #384)
- Add support for complex module configs (fix #391)
- Add plugin::ethstat (fix #395)
Bug fixes
- plugin/snmp: Fix typo (fix #338)
- Sort keys of curl_json.conf.erb (fix #342)
- Remove duplicate parameters (fix #345)
- Use correct collectd_version (fix #347)
- plugin/mysql: Remove Master/Slave if statement (fix #355)
- Fix variables for Solaris (fix #360)
- plugin/filecount: Do not emit empty Plugin block (fix #361)
- plugin/mysql: Pin InnodbStats to MySQL >= 5.5 (fix #362)
- plugin/process: Fix startup for Debian/Wheezy (fix #364)
- plugin/ping: Transition from defined type to class (fix #370)
- plugin/dbi: Fix empty database name (fix #382)
2015-09-03 Release 4.2.0
New features
- Add support for types.db
- Add plugin::netlink
- Add collectd::plugin::ceph
- Add support for the new AllPortsSummary option
- plugin/mysql: Add innodbstats and slavenotifications
- plugin/snmp: Remove sorting of Values option in data block
- plugin/snmp: Support InstancePrefix, Scale and Shift options
- plugin/logfile: Add support for PrintSeverity option (fix #317)
- plugin/exec: Exec plugin can also be used with a parameterized class.
Bug fixes
- plugin/snmp: Check if Table option is defined
2015-08-05 Release 4.1.2
Fix .travis.yml so that deploys work, better
2015-08-05 Release 4.1.1
Fix .travis.yml so that deploys work
2015-08-05 Release 4.1.0
This module now lives on the puppet community github organization.
New features
- Add option to not install collectd-iptables on centos 6
- Allow iptables chains parameter to be an array
- Support UdevNameAttr attribute on disk plugin (fixes #300)
2015-07-26 Release 4.0.0
Backwards-incompatible changes:
- Exec plugin was renamed from collectd::plugin::exec to collectd::plugin::exec::cmd to support multiple execs
- Write_graphite was renamed from collectd::plugin::write_graphite to collectd::plugin::write_graphite::carbon to supports multiple carbon backends
New features
- Support for the aggregation, chain, and protocols plugins
- Swap and Memory plugins now support ValuesAbsolute and ValuesPercentage
- OpenVPN plugin now supports multiple statusfiles
Bug fixes
- Fixed bug preventing multiple instances of curl_json
- Fixed write_http plugin on RedHat
2015-06-16 Release 3.4.0
Backwards-incompatible changes:
- Implement support for mupltiple Python modules
Bug fixes
- snmp/host.pp validate_re validate on string
- quote reserved word type in tail.pp
New features
- add new cpu plugin options introduced in collectd 5.5
- Added absent timers for statsd module.
Testing enhancements
- Add ruby 2.2.0 to TravisCI
- Add puppet4 to .travis and update ruby to 2.1.6
- Add metadata-json-lint gem
2015-04-22 Release 3.3.0
Backwards-incompatible changes:
- Drop Ruby 1.8.7 support
- Package collectd-python is no longer available in EPEL
Features:
- Allow disable forwarding in network::server
Bugs/Maint:
- Fix permission on MySQL plugin file
- Only set LogSendErrors option if collectd version >= 5.4.
- CreateFiles/CreateFilesAsync expect boolean values
2015-01-24 Release 3.2.0
Backwards-incompatible changes:
There are no known backwards compat changes, please add them to the CHANGELOG if you find one.
Summary:
The release adds support for 4 new plugins and adds redhat package support to a large number of plugins.
New Plugins:
- collectd::plugin::genericjmx
- collectd::plugin::java
- collectd::plugin::target_v5upgrade
- collectd::plugin::lvm
Features:
- plugin/rrdcached: Add CollectStatistics option
- plugin/ntpd: Add IncludeUnitID option
Bugs/Maint:
- Update metadata for more PE versions
- plugin/perl: changed exec in provider 'false' case
- plugin/varnish: package resouce ensure param passed
- plugin/postgresql: add package for redhat systems
- plugin/write_riemann: add package for redhat systems
- plugin/write_http: add package for redhat systems
- plugin/snmp: add package for redhat systems
- plugin/sensors: add package for redhat systems
- plugin/python: add package for redhat systems
- plugin/ping: add package for redhat systems
- plugin/perl: add package for redhat systems
- plugin/nginx: add package for redhat systems
- plugin/mysql: add package for redhat systems
- plugin/iptables: add package for redhat systems
- plugin/curl_json: add package for redhat systems
- plugin/curl: add package for redhat systems
- plugin/amqp: add package for redhat systems
- plugin/bind: add package for redhat systems
2014-12-26 Release 3.1.0
Backwards-incompatible changes:
There are no known backwards compat changes, please add them to the CHANGELOG if you find one.
Summary:
This release introduces support for 3 new plugins, new parameters for existing plugins, bugfixes, doc improvments and basic acceptance tests with beaker.
New Plugins:
- Add conntrack module
- Add cpufreq plugin
- Add collectd::plugin::zfs_arc
Features:
- filecount: support all options
- plugin::python introduce ensure parameter
- Make plugins passing the $interval parameter
- Support LogSendErrors on the write_graphite plugin
- curl: fix handling of some parameters
- curl_json: Support reading from a unix socket
- Adding support for WriteQueueLimitLow & WriteQueueLimitHigh, which were added in collectd 5.4
Bugs/Maint:
- Lintian fixes
- Ensure variable using 'false' will be interpreted.
- Cleaning the now redundant LoadPlugin declaration
- Uses the LoadPlugin syntax with bracket when supported
- Fix Puppet deprecation warning
- Add "" to Hostname
- Double quote the csv plugin DataDir.
- write_http: StoreRates is a bool, not a string
- curl : 'MeasureResponseTime' needs exactly one boolean argument
- Add collectd-apache package needed on RedHat
- Variables in templates should use @-notation
Tests:
- Basic acceptance test with beaker
- Add rspec test to ensure the bracket syntax is using when available
- Fix travis by using plabs gemfile
Docs:
- Add conntrack to README.md
- Add cpufreq plugin doc
- README.md: Fixed example entropy snippet.
2014-10-04 Release 3.0.1
Backwards-incompatible changes:
none
Summary:
Bug fix release
Features:
- Add support for manually specifying the hostname
Bugs:
- Add dependency for python plugins
- Set default value of chains to be hash
- Sort snmp data and hosts hash
2014-08-25 Release 3.0.0
Backwards-incompatible changes:
- Make sure plugin_conf_dir is not world readable
- Full rewrite of the network plugin
- Rewrite of postgresql module to allow invocation by defined types
Summary:
This release adds multiple new plugins and improvements
Features:
- Varnish plugin improvments
- Add the ability to customize package name.
- Add write_http plugin
- Add statsd plugin
- Add plugin logfile
- Add curl plugin
- Add support for sensors plugin
- Add support for perl plugins
- Allow custom Include directives
- Add valuesabsolute and valuespercentage to df plugin
Bugs:
- Issue 164: syslog plugin needs to be loaded as first plugin
- notify the collectd service when purging plugins
- add collectd-rrdtool package needed for RedHat
- sort python.conf options hash
2014-04-14 Release 2.1.0
Summary:
This release adds Gentoo osfamily support and minor plugin changes
Features:
- adding Gentoo support
- tcpconn plugin: $localports and $remoteports can me left undef if $listening is not set
- unixsock plugin: Implement the "DeleteSocket" option.
- add reportreserved parameter for df plugin
2014-04-14 Release 2.0.1
Summary:
Fix issue with metadata.json preventing Forge uploads
2014-04-14 Release 2.0.0
Summary:
This release adds support for several new plugins and contains some backwards-incompatible code refactors.
Backwards-incompatible changes:
- Storerates=true is now the default for the Graphite plugin
- Deprecate write_network plugin, use network plugin instead
- Make sure plugin configs are not world readable.
- Handle plugin order with collectd::plugin resource type (all collectd plugins config files will be renumbered from 00-$name.conf to 10-$name.conf)
Features:
- New plugins CSV, uptime, users, entropy, varnish, redis, contextswitch, cpu, nfs, vmem, libvirt
- Add socket parameter to mysql plugin
- Add reportbytes to swap plugin
- Add SeparateInstances setting to write_graphite plugin
- Add metadata.json for Forge search support
Bugs:
- Fix port parameter quotes in memcached plugin
- Fix collectd conf dir path parameter assignment
- Fix processes plugin configuration
- Force ReportReserved to true in df plugin
2014-01-18 Release 1.1.0
Summary:
This release adds support for new plugins and fixes multiple bugs in several plugin configurations.
Features:
- Added load plugin
- Added memory plugin
- Added rrdtool plugin
- Added swap plugin
- Initial version of PostgreSQL plugin
- Add protocol paramter to write_graphite plugin
- add tests for network module
- Support pre-4.7 network configs.
Bugs:
- Fix bug that always creates notification in exec on empty params
- fix typo in apache plugin manifest
- Make sure that plugins are always loaded before their configuration
- Add version check around emitting Protocol config
- mysql: use double quotes according to version
- Allow for alphanumeric collectd version numbers
- (gh-85) Fix null versioncmp bug in plugin templates
- (gh-69) Fix package name on RedHat
2013-12-17 Release 1.0.2
Summary:
This release adds the AMQP plugin and a collectd version fact.
Features:
- Add AMQP plugin
- Add class parameter typesdb
- Use collectd::params::root_group instead of fixed group name
- Add collectd version fact
2013-12-04 Release 1.0.1
Summary:
This release introduces Archlinux osfamily support and support for three new plugins ping, rrdcached, and processes.
Features:
- Initial version of rrdcached plugin
- Add configurable processes plugin
- Add quotes for string values in network plugin
- Add ping plugin
- Add support for Archlinux
- Allow to set all write_graphite options.
Bugs:
- Fixed missing double quotes in unixsock plugin template
- Added comma to syntax error in bind.pp
2013-10-20 Release 1.0.0
Summary:
This release breaks some backwards compatibility on some plugins where they improperly used strings instead of booleans parameters. This release also includes osfamily support for SUSE and FreeBSB and support for four new plugins.
Backwards-incompatible changes:
- Plugins that use to accept strings now use booleans for a more consistent interface across the various plugins
- The main collectd config file now only includes *.conf files to allow plugin specific files to be placed in the conf.d directory.
- The mysql plugin now supports multiple databases via the collectd::plugin::mysql::database define. This change breaks backwards compatiblity on the mysql plugin.
Features:
- osfamily support for SUSE
- osfamily support for FreeBSD
- tail plugin
- exec plugin
- python plugin
- write_riemann plugin
2013-09-27 Release 0.1.0
Summary:
Add curl_json and apache plugin
Backwards-incompatible changes:
- The write_network plugin now accepts a hash of servers
Features:
- Add curl_json plugin
- Added collectd package version parameter
- Add apache plugin
0.0.5 - pdxcat/collectd - 2013/09/24
6adca9a add ntpd plugin ab55fb4 Added tcpconns plugin and example for it in README 677ff72 Adding a new generic write_network plugin define 8cdd8b7 Added memcached plugin and example for it in README c3e4a02 Added examples to README for filecount, SNMP and unixsock f798c84 Added support for file count plugin 66f7392 Added support for SNMP and bumped stdlib dependency version to 3.0.0 7118450 Added support for unix socket plugin a062b11 Fixed source URL 1b214a2 Add testing docs to README
0.0.4 - pdxcat/collectd - 2013/08/26
9f3f0f6 Add bind plugin to readme f052087 Add bind plugin fc0c4c1 Add basic rspec-system test 0b2ec92 Fix README formatting issues 71dcad0 Add configurable plugins to the README 72b9f17 Add test for file_line 7eae468 Add buildstatus to the README b2cb208 Add travis.yml file 8cc16a8 Add purge_config enabled test 26683f0 Add spec test for collectd class 3f30650 Add spec helper files 0bee1d7 Add nginx plugin e2d558a Fix network plugin config syntax 79d8a68 Add network plugin c1085d7 Merge pull request #5 from agenticarus/newer-stdlib 88678bf Depend on newer version of stdlib 7dd9aaa added colorz to the README 628ed78 Added configuration for StoreRates and Port.
0.0.3 - pdxcat/collectd - 2013/05/27
f51660f Fixed test for collectd::plugin::irq 3019516 Added default field in selector for making syntax checkers happy. 39859e7 Added stdlib dependency for file_line
0.0.2 - pdxcat/collectd - 2013/05/09
185e16f Modifications for following puppetlabs style guide and add smoke tests for interface, irq and iptables d68275f Added interface, irq and iptables support. Untested though. b8312cc Added use of scope.lookupvar, allow configuration of threads and option to choose between hostname and fqdn
0.0.1 - pdxcat/collectd - 2013/02/06
8c64104 Add interval and timeout parameters e48288d Add redhat support to the collectd module. b6e3649 Add readme, module, and license files to collectd module. fb6b92f Fix bug in collectd::plugin define 4096cca Add purge_config option to collectd class 2a2974c Add purge option to collectd class 8acbef3 Add syslog plugin 137c919 Add ensure option for collectd::plugin 3406430 Fix plugins with wrong metaparams 315af94 Add collectd::plugin define for unconfigured plugins c085ebc Change include plugin file to include conf.d 171bddd Template openvpn plugin and parameterize the class 09c4df5 Add mysql plugin to collectd. 36f3465 Add disk plugin to collectd. 1e27a29 Fix collectd service subscription to conf file. 15f1ea7 Add Solaris collectd parameters c013e73 Add collectd df plugin support 9cac9c4 Add collectd support.
Dependencies
- puppetlabs-apt (>= 2.2.0)
- puppet-yum (>= 0.9.15)
- puppetlabs/concat (>= 1.2.5)
- puppetlabs/stdlib (>= 4.6.0)
Puppet Collectd Module Copyright (C) 2013 Computer Action Team The Computer Action Team can be contacted at: support@cat.pdx.edu Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.