voxpupuli / puppet-collectd Goto Github PK
View Code? Open in Web Editor NEWCollectd module for Puppet
Home Page: https://forge.puppet.com/puppet/collectd
License: Apache License 2.0
Collectd module for Puppet
Home Page: https://forge.puppet.com/puppet/collectd
License: Apache License 2.0
Declaring:
class {'collectd::plugin::libvirt':
connection => 'qemu:///system',
}
Does not install package collectd-virt. On CentOS 6/RHEL.
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
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/
It is included by default.
Thanks for a great module btw!
Die StoreRates Parameter is missing in the amqp Plugin.
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': {
using just $package = "collectd" works fine.
Thanks,
Frank
Hi,
Maybe I'm missing this. Is there support somewhere in here for specifying custom types? I see the line in the generated config:
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!
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.
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
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?
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.
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' } }
The last release was three months ago and there have been lots of improvements since:
Can you cut a new release?
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
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.
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>
After upgrading to pdxcat/collectd 3.4.0 I get wrong formatting in the python plugin configuration.
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,
}
}
# 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>
<Module "rabbitmq">
block should be formatted like this: <Module "rabbitmq">
Host "localhost"
Password "ppp"
Port "15672"
PrefixVhost true
Realm "RabbitMQ Management"
Username "uuu"
</Module>
# 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)
I will try to submit a PR with this change.
Module requires Puppet Enterprise 3.2.x. Can support of at least PE 3.3 be added? Thanks
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?
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?
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
Hello. Im looking to use https://collectd.org/wiki/index.php/Plugin:Aggregation/Config using your module can you tell me if this is possible? I dont see a way to add custom plugin defs. Thank you
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)
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/-.*//'
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.
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 -%>
We have this error with facter 1.6.9.
Facter::Util::Resolution.which
first appears in facter 1.6.10
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
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.
Looks like the Modulefile is missing from the 3.0.0 release?
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.
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?
Have you considered sending you changes upstream? I would be more than happy to merge it.
Thanks
This option is being ignored and can be removed
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.
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.
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
Similar to the collectd::plugin::tail::file
define the mysql plugin should be able to support multiple databases.
For security reasons i run collectd under the user collectd.
I cant define or override the params
https://github.com/pdxcat/puppet-module-collectd/blob/master/manifests/params.pp#L32
and cant define it from hiera either..
This would expect this to work
class { '::collectd':
purge => true,
recurse => true,
purge_config => true,
root_group => 'collectd',
}
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?
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
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.
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.
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>
Currently only single <Carbon>
instance could be specified.
I would like to be able to do:
class { 'collectd::plugin::iptables':
chains => {
'filter' => 'INPUT',
'filter' => 'OUTPUT',
},
}
In my config, but it only writes the OUTPUT(/last) option.
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 :)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.