Giter Club home page Giter Club logo

puppet-collectd's Issues

Dependency cycle with collectd-ping

Error: Could not apply complete catalog: Found 1 dependency cycle:
(Package[collectd-ping] => Collectd::Plugin::Ping[gateway] => Package[collectd-ping])
Try the '--graph' option and opening the resulting '.dot' file in OmniGraffle or GraphViz

write-graphite module: Invalid configuration option: LogSendErrors

Hello,

I just upgraded this module from 2.1.0 to 3.2.0 and running it on Debian Wheezy. I use the graphite module with a configuration like

class { 'collectd::plugin::write_graphite':
    graphitehost    => 'xxx.xxx.xxx.xxx',
    graphiteport    => '2003',
    graphiteprefix  => 'servers.',
}

This configuration worked before and seems to still work but it raises an error when running collectd:

collectd[3910]: write_graphite plugin: Invalid configuration option: LogSendErrors.

I tried to set this option to true or false and I got the same error, only removing this option resolves it. Collectd version on Debian 7 is 5.1.0

Cannot configure multiple "Import" modules with Python plugin

I have a need to instantiate several Python modules and IIUC this isn't supported by the current Puppet manifest.

Ideally it should be possible to generate this configuration:

 <Plugin python>
    ModulePath "/path/to/your/python/modules"
    Import "foo"
    Import "bar"

    <Module foo>
      some_param 1
    </Module>
    <Module bar>
      other_param 1
    </Module>
  </Plugin>

Allow ensure => absent

Sometimes I'd like to remove collectd but leave the rest of the node as it is. It'd be nice to be able to purge it using the module.

Request: Varnish plugin

Example plugin config for Varnish v3

<Plugin varnish>
   <Instance>
      CollectCache true
      CollectBackend true
      CollectConnections true
      CollectSHM true
      CollectESI false
      CollectFetch true
      CollectHCB false
      #CollectSMA true
      #CollectSMS true
      #CollectSM true
      CollectTotals true
      CollectWorkers true
   </Instance>
</Plugin>

private method `scan' called for nil:NilClass at /etc/puppet/modules/collectd/manifests/plugin/network.pp:34

This may not be an issue specific to this module due to it working on some machines but not others, but I figured I would give it a shot.

I get the following error with this module on some machines:

Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Failed to parse template collectd/network.conf.erb:
  Filepath: /usr/lib/ruby/site_ruby/1.8/puppet/util/package.rb
  Line: 4
  Detail: private method `scan' called for nil:NilClass
 at /etc/puppet/modules/collectd/manifests/plugin/network.pp:34 on node puppet-test.domain.com
Warning: Not using cache on failed catalog
Error: Could not retrieve catalog; skipping run

I can provide you with the exact puppet, facter and ruby packages I have installed, but I have compared the list to a working node and they are exactly the same. puppetlabs-stdlib is installed.

I've looked at the facter collectd_version.rb file and even hardcoded the version number to 5.3.1 to debug at the recommendation of someone in puppet IRC. I've also tried to remove calls to the scope lookup in the template to no avail.

Any ideas on how to debug this would be great; my Ruby skills are very limited.

Support types.db?

Hi,

Maybe I'm missing this. Is there support somewhere in here for specifying custom types? I see the line in the generated config:

TypesDB "/usr/share/collectd/types.db" "/etc/collectd/my_types.db"

But no way to actually enable/change it. Where is that on the roadmap (if I'm not missing it)? Obviously you can edit the template and manage the file directly, but I didn't know if you were considering anything further.

Thanks!

plugin dir missing

For some plugins (e.g. python ones) I'd have to provide a plugin file.
However the path to store those files isn't defined in the module.

I'd like to add it but I need some additional information where to store those files.
This is what I have so far:

Archlinux:
Debian: /var/lib/collectd
FreeBSD:
Gentoo:
Redhat: 
  32bit: /usr/lib/collectd
  63bit: /usr/lib64/collectd
Solaris:
Suse:
default: /var/lib/collectd

Anyone know how to fill in the blanks?

redhat package name does not work with version

Hi,

I have to specify the version of collectd so in hiera I put 'collectd::version: 5.4.0-1.el6'.

Puppet then tries to run: yum -d 0 -e 0 -y install collectd.x86_64-5.4.0-1.el6

This because ${::architecture} is part of the name as a result of params.pp:
'Redhat': {
$package = "collectd.${::architecture}"

using just $package = "collectd" works fine.

Thanks,
Frank

Support puppet 4

I started testing against puppet 4

As of today stdlib does not support puppet4. It will be supported with the release of stdlib 5.0. current master branch of stdlib does not even tests on travis against puppet 4, and I got a bunch of errors that seems to come from stdlib

Some errors in the code

I use Geppetto and it shows all the errors that are present in the module.
I submitted a pull request with some easy fixes, but there are other present, which I am not sure what the intent was.

  1. $ensure is absent
    For example in curl_json.pp
  if $::osfamily == 'Redhat' {
    package { 'collectd-curl_json':
      ensure => $ensure,
    }
  }

Same issue in mysql.pp and ping.pp
2. In collectd::plugin::perl::plugin $collectd::plugin::perl::filename doesn't exist
3. In postgresql.pp , concat call has ensure attribute, but it was added to concat module just recently, it doesn't exist in any released modules
4. in collectd::plugin::write_network

  class { 'collectd::plugin::network':
    server     => $servername,
    serverport => $serverport,
  }

neither server nor serverport attributes don't exist

Cheers,
Vadym

Send data to multiple servers

Currently we're using the following to send data to two servers:

<Plugin network>
    Server "collect1.xxx.xx"
    Server "collect2.xxx.xx"
</Plugin>

I'm thinking of reworking the write_network manifest/template to handle multiple servers, maybe by using a hash with servers and ports or something like that. What's the best way in your opinion?

syslog plugin needs to be loaded as first plugin

If the syslog plugin is not initialized as first plugin, other plugins won't be able to log their startup/fail output at load time.

commit a35e39e658e233faba16d7a2a24562d9620b3ae6
Author: Bernd Zeimetz 
Date:   Tue Jul 29 10:27:40 2014 +0200

    Syslog needs to be loaded first.
    
    Otherwise startup messages from other plugins might be missing.

diff --git a/manifests/plugin/syslog.pp b/manifests/plugin/syslog.pp
index 898f0f1..8bcface 100644
--- a/manifests/plugin/syslog.pp
+++ b/manifests/plugin/syslog.pp
@@ -7,5 +7,6 @@ class collectd::plugin::syslog (
   collectd::plugin {'syslog':
     ensure  => $ensure,
     content => template('collectd/plugin/syslog.conf.erb'),
+    order   => '00'
   }
 }

Wrong format in python plugin configuration

Issue description

After upgrading to pdxcat/collectd 3.4.0 I get wrong formatting in the python plugin configuration.

  • puppet code:
    collectd::plugin::python::module {'rabbitmq':
      modulepath    => '/usr/lib64/collectd',
      script_source => 'file:///usr/lib64/collectd/rabbitmq.py',
      config        => {
        'Username'    => 'uuu',
        'Password'    => 'ppp',
        'Realm'       => 'RabbitMQ Management',
        'Host'        => 'localhost',
        'Port'        => '15672',
        'PrefixVhost' => true,
      }
    }
  • generated configuration file:
# cat /etc/collectd.d/python-config.conf 
# Generated by Puppet
<Plugin "python">
  ModulePath "/usr/lib64/collectd"
  LogTraces false
  Interactive false

  Import "rabbitmq"

  <Module "rabbitmq">
      Host localhost      Password ppp      Port 15672      PrefixVhost true      Realm RabbitMQ Management      Username uuu  
  </Module>

</Plugin>
  • I think the <Module "rabbitmq"> block should be formatted like this:
  <Module "rabbitmq">
      Host "localhost"    
      Password "ppp"
      Port "15672"    
      PrefixVhost true
      Realm "RabbitMQ Management"
      Username "uuu"
  </Module>

Environment

# puppet --version
3.7.4
# ruby -v
ruby 1.8.7 (2013-06-27 patchlevel 374) [x86_64-linux]
# cat /etc/redhat-release 
CentOS release 6.6 (Final)

Suggested cahnges

  • add new line after each param
  • add double quotes for values that are strings (but not for numbers and booleans)

I will try to submit a PR with this change.

Collectd network plugin requires two puppet runs

https://github.com/pdxcat/puppet-module-collectd/blob/master/templates/plugin/network.conf.erb#L3

This depends on collectd_version. The fact is being evaluated at catalog compile time which is before collectd is installed. So it probably ends up as nil, so the SecurityLevel isn't set.

Then on a second run when it detects collectd 5 is installed then it adds the SecurityLevel

Not sure what a good solution to this problem is though. Maybe the fact could work out what version is going to be installed? Something like

apt-cache madison collectd | grep Packages | head -1 | awk -F\| '{print $2}' | sed -e 's/-.*//'

Under Debian, does not update `collectd-core` when require => 'latest'

If you're trying to perform an upgrade on an existing collectd installation and set require => 'latest', collectd-core does not get updated.

I would argue that this is more of an issue on the Debian side not specifying version requirements for collectd-core but it'd be great if this module would abstract this problem away.

Packaging results in wrong permissions

When you deploy this package from the Forge, it gets installed with all the wrong permissions, leading to obscure "cannot find class" errors.

Directories need to be set 775 and files need to be set to 644.

Setting FQDNLookup to false has no effect on CentOS

My manifest contains:

class { '::collectd':                                                         
     purge        => true,                                                       
     recurse      => true,                                                       
    purge_config => true,                                                       
    fqdnlookup   => false,                                                      
}                                                                             

The generated collectd.conf file contains:

Hostname node-10
FQDNLookup false

But the hostname in the collectd messages is still the fully-qualified name (eg node-10.example.com).

When I edit the collectd configuration to add double quotes then it works as expected:

Hostname "node-10"
FQDNLookup false

Small issue with tcpconns plugin

Hi,

In it's current state you have to always provide either localports or remoteports, otherwise it will fail. However, according to the official documentation:

ListeningPorts true|false
If this option is set to true, statistics for all local ports for which a listening socket exists are collected. The default depends on LocalPort and RemotePort (see below): If no port at all is specifically selected, the default is to collect listening ports. If specific ports (no matter if local or remote ports) are selected, this option defaults to false, i. e. only the selected ports will be collected unless this option is set to true specifically.

So as long as ListeningPorts is set to true, you don't need to specify any ports and it will collect data automatically from all listening ports. I find that kinda handy :)
This behavior can be added by applying the following very small patch:

$ diff ~/Downloads/tmp2/tcpconns.pp tcpconns.pp
9c9
<   if ! $localports and ! $remoteports and ! $listening {

---
>   if ! $localports and ! $remoteports {

The erb template does not need to be modified for this.

I'm hoping you will apply this patch. Thanks!

Guus

Yo-yo effect using genericjmx

First puppet run creates the genericjmx resources, second removes it and so it continues into infinity.

First run:

[root@vagrant ~]# puppet apply --verbose --modulepath=/tmp/vagrant-puppet-1/modules-0 /tmp/vagrant-puppet-1/manifests/site.pp
Info: Loading facts
Info: Loading facts
Warning: Config file /etc/puppet/hiera.yaml not found, using Hiera defaults
Notice: Compiled catalog for vagrant.swe1.unibet.com in environment production in 1.90 seconds
Warning: The package type's allow_virtual parameter will be changing its default value from false to true in a future release. If you do not want to allow virtual packages, please explicitly set allow_virtual to false.
   (at /usr/lib/ruby/site_ruby/1.8/puppet/type/package.rb:430:in `default')
Info: Applying configuration version '1434373462'
Notice: /Stage[main]/Collectd::Plugin::Genericjmx/Concat[/etc/collectd.d/15-genericjmx.conf]/File[/etc/collectd.d/15-genericjmx.conf]/ensure: defined content as '{md5}a5592d5f304a154b01c46e66f6761a67'
Info: Concat[/etc/collectd.d/15-genericjmx.conf]: Scheduling refresh of Service[collectd]
Notice: /Stage[main]/Collectd/Service[collectd]: Triggered 'refresh' from 1 events
Notice: Finished catalog run in 0.64 seconds

Second run:

[root@vagrant ~]# puppet apply --verbose --modulepath=/tmp/vagrant-puppet-1/modules-0 /tmp/vagrant-puppet-1/manifests/site.pp
Info: Loading facts
Info: Loading facts
Warning: Config file /etc/puppet/hiera.yaml not found, using Hiera defaults
Notice: Compiled catalog for vagrant.swe1.unibet.com in environment production in 1.79 seconds
Warning: The package type's allow_virtual parameter will be changing its default value from false to true in a future release. If you do not want to allow virtual packages, please explicitly set allow_virtual to false.
   (at /usr/lib/ruby/site_ruby/1.8/puppet/type/package.rb:430:in `default')
Info: Applying configuration version '1434373468'
Info: Computing checksum on file /etc/collectd.d/15-genericjmx.conf
Info: FileBucket got a duplicate file {md5}a5592d5f304a154b01c46e66f6761a67
Info: /Stage[main]/Collectd/File[/etc/collectd.d/15-genericjmx.conf]: Filebucketed /etc/collectd.d/15-genericjmx.conf to puppet with sum a5592d5f304a154b01c46e66f6761a67
Notice: /Stage[main]/Collectd/File[/etc/collectd.d/15-genericjmx.conf]/ensure: removed
Info: collectd.d: Scheduling refresh of Service[collectd]
Notice: /Stage[main]/Collectd/Service[collectd]: Triggered 'refresh' from 1 events
Warning: collectd.d: appears to have a negative number of dependencies
Warning: /etc/collectd.d/15-genericjmx.conf: appears to have a negative number of dependencies
Warning: Concat[/etc/collectd.d/15-genericjmx.conf]: appears to have a negative number of dependencies
Warning: /Stage[main]/Collectd/Service[collectd]: appears to have a negative number of dependencies
Warning: Class[Collectd::Plugin::Genericjmx]: appears to have a negative number of dependencies
Notice: /Stage[main]/Collectd/Service[collectd]: Triggered 'refresh' from 1 events
Warning: Class[Collectd]: appears to have a negative number of dependencies
Info: collectd.d: Scheduling refresh of Service[collectd]
Warning: /Stage[main]/Collectd::Plugin::Java/Collectd::Plugin[java]/File[older_java.load]: appears to have a negative number of dependencies
Warning: /Stage[main]/Collectd::Plugin::Write_graphite/Collectd::Plugin[write_graphite]/File[write_graphite.load]: appears to have a negative number of dependencies
Warning: /Stage[main]/Collectd::Plugin::Write_graphite/Collectd::Plugin[write_graphite]/File[old_write_graphite.load]: appears to have a negative number of dependencies
Warning: Class[Collectd]: appears to have a negative number of dependencies
Warning: /Stage[main]/Collectd/Service[collectd]: appears to have a negative number of dependencies
Warning: /Stage[main]/Collectd::Plugin::Java/Collectd::Plugin[java]/File[old_java.load]: appears to have a negative number of dependencies
Warning: /Stage[main]/Collectd::Plugin::Write_graphite/Collectd::Plugin[write_graphite]/File[older_write_graphite.load]: appears to have a negative number of dependencies
Warning: /Stage[main]/Collectd::Plugin::Java/Collectd::Plugin[java]/File[java.load]: appears to have a negative number of dependencies
Warning: /Stage[main]/Collectd/Service[collectd]: appears to have a negative number of dependencies
Warning: Collectd::Plugin[write_graphite]: appears to have a negative number of dependencies
Notice: /Stage[main]/Collectd/Service[collectd]: Triggered 'refresh' from 2 events
Warning: Class[Collectd]: appears to have a negative number of dependencies
Warning: /Stage[main]/Collectd/Service[collectd]: appears to have a negative number of dependencies
Warning: Collectd::Plugin[write_graphite]: appears to have a negative number of dependencies
Notice: /Stage[main]/Collectd/Service[collectd]: Triggered 'refresh' from 2 events
Warning: Class[Collectd]: appears to have a negative number of dependencies
Warning: /Stage[main]/Collectd/Service[collectd]: appears to have a negative number of dependencies
Warning: Collectd::Plugin[java]: appears to have a negative number of dependencies
Notice: /Stage[main]/Collectd/Service[collectd]: Triggered 'refresh' from 2 events
Warning: Class[Collectd]: appears to have a negative number of dependencies
Warning: Class[Collectd::Plugin::Java]: appears to have a negative number of dependencies
Warning: /Stage[main]/Collectd/Service[collectd]: appears to have a negative number of dependencies
Warning: Collectd::Plugin[java]: appears to have a negative number of dependencies
Notice: /Stage[main]/Collectd/Service[collectd]: Triggered 'refresh' from 2 events
Warning: Class[Collectd]: appears to have a negative number of dependencies
Warning: Class[Collectd::Plugin::Java]: appears to have a negative number of dependencies
Warning: /Stage[main]/Collectd/Service[collectd]: appears to have a negative number of dependencies
Warning: Collectd::Plugin[java]: appears to have a negative number of dependencies
Notice: /Stage[main]/Collectd/Service[collectd]: Triggered 'refresh' from 2 events
Warning: Class[Collectd]: appears to have a negative number of dependencies
Warning: Class[Collectd::Plugin::Java]: appears to have a negative number of dependencies
Warning: /Stage[main]/Collectd/Service[collectd]: appears to have a negative number of dependencies
Warning: Collectd::Plugin[write_graphite]: appears to have a negative number of dependencies
Notice: /Stage[main]/Collectd/Service[collectd]: Triggered 'refresh' from 2 events
Warning: Class[Collectd]: appears to have a negative number of dependencies
Warning: Stage[main]: appears to have a negative number of dependencies
Warning: Class[Collectd::Plugin::Write_graphite]: appears to have a negative number of dependencies
Warning: Stage[main]: appears to have a negative number of dependencies
Warning: Stage[main]: appears to have a negative number of dependencies
Notice: Finished catalog run in 2.47 seconds

Manifest:

class { '::collectd':
  purge        => true,
  recurse      => true,
  purge_config => true,
}

class { 'collectd::plugin::write_graphite':
  graphitehost => 'influxdb',
}

include collectd::plugin::genericjmx

collectd::plugin::genericjmx::mbean {
  'garbage_collector':
    object_name     => 'java.lang:type=GarbageCollector,*',
    instance_prefix => 'gc-',
    instance_from   => 'name',
    values          => [
      {
        type      => 'invocations',
        table     => false,
        attribute => 'CollectionCount',
      },
      {
        type            => 'total_time_in_ms',
        instance_prefix => 'collection_time',
        table           => false,
        attribute       => 'CollectionTime',
      },
    ];
}

collectd::plugin::genericjmx::mbean {
  'memory-heap':
    object_name => 'java.lang:type=Memory',
    instance_prefix => 'memory-heap',
    values          => [
      {
        type          => 'jmx_memory',
        table         => true,
        attribute     => 'HeapMemoryUsage'
      }
    ]
}

collectd::plugin::genericjmx::mbean {
  'memory-nonheap':
    object_name => 'java.lang:type=Memory',
    instance_prefix => 'memory-nonheap',
    values          => [
      {
        type          => 'jmx_memory',
        table         => true,
        attribute     => 'NonHeapMemoryUsage'
      }
    ]
}

collectd::plugin::genericjmx::mbean {
  'memory-permgen':
    object_name => 'java.lang:type=MemoryPool,name=*Perm Gen',
    instance_prefix => 'memory-permgen',
    values  => [
      {
        type  => 'jmx_memory',
        table => true,
        attribute => "Usage"
      }
    ]
}

collectd::plugin::genericjmx::mbean {
  'websessions':
    object_name => 'amx:pp=/mon/server-mon[server],type=session-mon,name=web/session',
    instance_prefix => 'websessions',
    values => [
      {
        table     => false,
        instance_prefix => 'sessionstotal',
        attribute => 'sessionstotal.count',
        type      => 'counter'
      },
      {
        table => false,
        instance_prefix => 'activesessionscurrent',
        attribute => 'activesessionscurrent.current',
        type => 'current_sessions'
      },
      {
        table => false,
        instance_prefix => 'expiredsessionstotal',
        attribute => 'expiredsessionstotal.count',
        type => 'counter'
      },
      {
        table => false,
        instance_prefix => 'persistedsessionstotal',
        attribute => 'persistedsessionstotal.count',
        type => 'counter'
      },
      {
        table => false,
        instance_prefix => 'rejectedsessionstotal',
        attribute => 'rejectedsessionstotal.count',
        type => 'counter'
      },
      {
        table => false,
        instance_prefix => 'activatedsessionstotal',
        attribute => 'activatedsessionstotal.count',
        type => 'counter'
      },
      {
        table => false,
        instance_prefix => 'passivatedsessionstotal',
        attribute => 'passivatedsessionstotal.count',
        type => 'counter'
      }
    ]
}

collectd::plugin::genericjmx::connection {
  'java_app':
    host            => $fqdn,
    service_url     => 'service:jmx:rmi:///jndi/rmi://localhost:11286/jmxrmi',
    collect         => [ 'memory-heap', 'memory-nonheap','garbage_collector', 'memory-permgen', 'sessions' ],
    instance_prefix => 'myapp.',
    user            => '***',
    password        => '***'
}

Puppet version: 3.7.1
Puppet modules:

[root@vagrant ~]# puppet module list --modulepath /tmp/vagrant-puppet-1/modules-0
/tmp/vagrant-puppet-1/modules-0
├── jdowning-statsd (v2.4.0)
├── pdxcat-collectd (v3.3.0)
├── puppetlabs-concat (v2.0.0)
├── puppetlabs-stdlib (v4.6.0)
└── stahnma-epel (v1.0.2)

Install from source?

Your plugin seems very complete, but it actually uses the default distribution package. However some debian & ubuntu LTS are still using the deprecated 4.x branch.

I wrote my own collectd manifests to install it from source, however it is quiet simple and does not handle plugin configuration.

I am wondering if it could make sense to either always build from source or provide an option to do not use the default package installation.

Any thoughts?

Wrong file permissions when installing from forge

A lot of the files have permission 0600 instead of 0644 when installing from forge or puppet-librarian. As a result, if the repository owner is not puppet, then puppet master fails to read the files causing breakage.

config options in python.conf.erb

Hi,

Just a quick bug to report.
In the python.conf.erb, the loop over the hash entries is not sorted, so the options are liable to switch order, causing subsequent puppet runs to rewrite the file.

<% @config.each do |key,value| -%>
<%= key -%> "<%= value -%>"
<% end -%>

I've fixed it on my own copy with the following:

<% @config.sort.each do |key,value| -%>
<%= key -%> "<%= value -%>"
<% end -%>

Apart from this small issue, the module is great btw :)

Support multiple exec statements

Current implementation does not support complete definition of exec plugin (from wiki):

<Plugin exec>
  Exec "myuser:mygroup" "myprog"
  Exec "otheruser" "/path/to/another/binary" "arg0" "arg1"
  NotificationExec "user" "/usr/lib/collectd/exec/handle_notification"
</Plugin>

Only one Exec statement could be defined.

Moreover there's a missing space between arguments (see line 6)

<% @exec.each do |exec| -%>"<%= exec %>"<% end -%>

collectd-write_http package doesn't always exist for RedHat derivatives

A few months ago, there's been a change (a334b6e) that installed the collectd-write_http package for RedHat platforms. Unfortunately this package doesn't always exist depending on the repository. For instance, Fedora and EPEL repos have no such package [1] since the write_http plugin is included in the core collectd package.

I suggest to revert the commit (a334b6e) since it is always possible to install the package outside of the collectd manifest.

[1] https://apps.fedoraproject.org/packages/collectd/overview/

Create consistent interface to plugins

I don't care if we just cram a hash in for every one. But the plugins should have similar parameters and should absolutely not have the same paramter doing different things.

Target: 2.0 release since it will break compat and we're trying to symver.

MySQL plugin does not install required packages

Declaring:

collectd::plugin::mysql::database { 'test':
    host        => 'localhost',
    username    => 'root',
    password    => '123456',
    port        => '3306',
    masterstats => true,
  }

Does not install the required packages to operate; in my case, collectd-mysql RHEL package.

Setting collectd::plugin::nginx params does not work for booleans

Setting the nginx plugin parameters via hiera:

collectd::plugin::nginx:
  url:        "https://%{::fqdn}/nginx_status"
  verifypeer: 'false'
  verifyhost: 'false'

Doesn't work because the template

<% if @verifypeer -%>
  VerifyPeer <%= @verifypeer %>
<% end -%>

parses the value as a bool and never actually writes out the stanza. I'm not sure what the best way to fix this is except maybe use negative or an unless conditional?

Support for snmp v3

It would be lovely to support snmp v3. The source on github/collectd (commit 4ab54ded3b73d5051230bb35eecf766a51dee786) adds in this capability, though it hasn't filtered down through the main linux distribution packages yet.

I believe that basic patches to snmp.conf.erb and the related hosts/data templates would be enough, with the extra variables that v3 requires. Something along the lines of

 <% elsif val['Version'] = 3 %>
    Address "<%= val['Address'] %>"
    SecurityLevel "<%= val['SecurityLevel'] %>"
    Username "<%= val['Username'] %>"
    AuthProtocol "<%= val['AuthProtocol'] %>"
    AuthPassphrase "<%= val['AuthPassphrase'] %>"
    PrivacyProtocol "<%= val['PrivacyProtocol'] %>"
    PrivacyPassphrase "<%= val['PrivacyPassphase'] %>"
    Version <%= val['Version'] %>
    Collect <% val['Collect'].each do |x| -%>"<%= x -%>" <% end %>
    Interval <%= val['Interval'] %>
  <% end -%>

...for example. Is anyone about to do this, or shall I submit a minor PR?

Documentation about loading simple plugins

I lost more time than I'm willing to admit because I loaded plugins like syslog and such with that method : https://github.com/pdxcat/puppet-module-collectd/blob/master/README.md#simple-plugins

I think we should explicit that loading plugins that way should only be done when we have not written a specific type of class for that plugin.

I however can wrap by head on the way to word that. I'm willing to make the PR if someone can find an elegant way to express that.

PE compatibility

Module requires Puppet Enterprise 3.2.x. Can support of at least PE 3.3 be added? Thanks

change the way we ask collectd to reload

Hello guys,

I pointed an issue today. When you remove a collectd plugin resource, collectd is not reloaded.

collectd is however correctly noticed when we create the resource because of the notify => Service['collectd'] we have on all of our plugin definitions.

We could set this notify on File'collectd.d' : when a file changes there, collectd is asked to reload. Thus we could remove all the now redundant notify from each plugin type definition.

+1/-1 asked, PR to follow if accepted

write_graphite storerates should default to collectd default

The default value of this variable in collectd is true, this module defaults to false. This would, of course, now break anyone's setup if they don't explicitly define this variable. However, I strongly believe that the defaults in collectd should be preserved in the Puppet module.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.