Hello community, here is the log from the commit of package munin for openSUSE:Factory checked in at 2014-11-04 17:29:24 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/munin (Old) and /work/SRC/openSUSE:Factory/.munin.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "munin" Changes: -------- --- /work/SRC/openSUSE:Factory/munin/munin.changes 2014-09-28 19:54:39.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.munin.new/munin.changes 2014-11-04 17:29:55.000000000 +0100 @@ -1,0 +2,7 @@ +Sun Nov 2 22:26:03 UTC 2014 - [email protected] + +- update to version 2.0.24 + * bugfix release + compatibility with perl 5.20 + +------------------------------------------------------------------- Old: ---- munin-2.0.21.tar.gz New: ---- munin-2.0.24.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ munin.spec ++++++ --- /var/tmp/diff_new_pack.HWBktc/_old 2014-11-04 17:29:56.000000000 +0100 +++ /var/tmp/diff_new_pack.HWBktc/_new 2014-11-04 17:29:56.000000000 +0100 @@ -24,7 +24,7 @@ %define active_by_default 0 Name: munin -Version: 2.0.21 +Version: 2.0.24 Release: 0 Summary: Network-wide graphing framework (grapher/gatherer) License: GPL-2.0 ++++++ munin-2.0.21.tar.gz -> munin-2.0.24.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.21/.travis.yml new/munin-2.0.24/.travis.yml --- old/munin-2.0.21/.travis.yml 2014-04-22 21:29:32.000000000 +0200 +++ new/munin-2.0.24/.travis.yml 2014-10-26 15:12:24.000000000 +0100 @@ -29,6 +29,7 @@ - "cpanm --notest Test::MockModule" - "cpanm --notest Test::MockObject::Extends" - "cpanm --notest Time::HiRes" + - sh contrib/install_rrd.sh notifications: email: false irc: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.21/ChangeLog new/munin-2.0.24/ChangeLog --- old/munin-2.0.21/ChangeLog 2014-04-22 21:29:32.000000000 +0200 +++ new/munin-2.0.24/ChangeLog 2014-10-26 15:12:24.000000000 +0100 @@ -1,5 +1,103 @@ -*- text -*- +munin-2.0.24, 2014-10-26 + +------- +Summary +------- + +Bugfix release. It reopens D:675318, as it wasn't really fixed anyway. + +Closes: D:696981 +Reopens: D:675318 + +------------------ +Detailed Changelog +------------------ + +Steve Schnepp (3): + m/update: fix "not a reference at /../Utils.pm" + Revert "p/postfix_mail: fix incorrect delivered message count" + p/postfix_mailstats: proper fix, but partial + + +munin-2.0.23, 2014-10-17 + +------- +Summary +------- + +Bugfix release. It enable the use of Perl 5.20, which broke CGI. +( commit 9fabbe7 was forgotten in the previous release ) + +Closes: D:762796 + +------------------ +Detailed Changelog +------------------ + +Steve Schnepp (1): + cgi/html: fix CGI for perl 5.20 + + +munin-2.0.22, 2014-10-15 + +------- +Summary +------- + +Bugfix release. It enable the use of Perl 5.20, which broke CGI. + +Closes: #1224, D:675318, D:711465, D:750954, D:751190, D:753506, D:761841, D:762904 + +------------------ +Detailed Changelog +------------------ + +Chen-Yu Tsai (1): + cgi/graph: Set RRDCACHED_ADDRESS during each request + +Daniel Black (1): + Corrects the truncating of negative values in the diskstats plugin + +Gerald Turner (2): + dhcpd3 plugin should support multiple ranges in a single subnet + lower-case the dictionary keys in ipmi_sensor_ + +Joerg Jaspert (1): + make proc plugin more careful in /proc/ + +Klaus S. Madsen (1): + prevent diskstats plugin from reporting negative latency + +Rob Shortt (1): + node: munin plugin config ignores leading * + +Steve Schnepp (15): + master: add "use_default_node" + travis: adding preliminary test for rrd + travis: be root for rrd install + travis: fix rrd tar extract + travis: customized rrd build + travis: be root to install rrdtools. + travis: install the Perl deps in the Perl dir + travis: add some whitespace + travis: optimize for compile times + node: Only spoolfetch send 5 samples per service + asyncd: Use SyncDictFile for plugin_rates + asyncd: just use the SpoolWriter META-DATA + p/postfix_mail: fix incorrect delivered message count + p/http_loadtime: fix escaping of user agent + +Stig Sandbeck Mathisen (3): + Remove linux-specific plugin files_ (ticket:1661) + Detect more postgresql versions. + Fix POD errors + +tbear2500 (1): + Generate correct rrd filename + + munin-2.0.21, 2014-04-22 ------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.21/RELEASE new/munin-2.0.24/RELEASE --- old/munin-2.0.21/RELEASE 2014-04-22 21:29:56.000000000 +0200 +++ new/munin-2.0.24/RELEASE 2014-10-26 15:12:50.000000000 +0100 @@ -1 +1 @@ -2.0.21 +2.0.24 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.21/common/lib/Munin/Common/Config.pm new/munin-2.0.24/common/lib/Munin/Common/Config.pm --- old/munin-2.0.21/common/lib/Munin/Common/Config.pm 2014-04-22 21:29:32.000000000 +0200 +++ new/munin-2.0.24/common/lib/Munin/Common/Config.pm 2014-10-26 15:12:24.000000000 +0100 @@ -130,6 +130,7 @@ update_rate use_default_name use_node_name + use_default_node version warn warning diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.21/contrib/install_rrd.sh new/munin-2.0.24/contrib/install_rrd.sh --- old/munin-2.0.21/contrib/install_rrd.sh 1970-01-01 01:00:00.000000000 +0100 +++ new/munin-2.0.24/contrib/install_rrd.sh 2014-10-26 15:12:24.000000000 +0100 @@ -0,0 +1,37 @@ +#! /bin/sh + +# Be pedantic +set -x +set -e + +# We want to optimize for *compile time* +export CFLAGS="-O0 -pipe" + +# install deps +sudo apt-get install libpango1.0-dev libxml2-dev + +# Download a fixed version +wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.4.8.tar.gz +tar -xzvf rrdtool-1.4.8.tar.gz +cd rrdtool-1.4.8 + +./configure \ + --disable-dependency-tracking \ + --disable-rrdcgi \ + --disable-mmap \ + --disable-pthread \ + --enable-perl \ + --enable-perl-site-install \ + --disable-ruby \ + --disable-lua \ + --disable-tcl \ + --disable-python \ + --disable-libdbi \ + --disable-libwrap \ + # Leave at the end + +make +sudo make install + +# Test the install +perl -MRRDs -e '' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.21/master/_bin/munin-cgi-graph.in new/munin-2.0.24/master/_bin/munin-cgi-graph.in --- old/munin-2.0.21/master/_bin/munin-cgi-graph.in 2014-04-22 21:29:32.000000000 +0200 +++ new/munin-2.0.24/master/_bin/munin-cgi-graph.in 2014-10-26 15:12:24.000000000 +0100 @@ -150,6 +150,10 @@ next; } + # Environment variables are cleared each request + # so we must set RRDCACHED_ADDRESS each time + $ENV{RRDCACHED_ADDRESS} = $config->{rrdcached_socket} if $config->{rrdcached_socket}; + my $filename = get_picture_filename ($config, $dom, $host, $serv, $scale, $ENV{QUERY_STRING}); my $time = time; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.21/master/_bin/munin-cgi-html.in new/munin-2.0.24/master/_bin/munin-cgi-html.in --- old/munin-2.0.21/master/_bin/munin-cgi-html.in 2014-04-22 21:29:32.000000000 +0200 +++ new/munin-2.0.24/master/_bin/munin-cgi-html.in 2014-10-26 15:12:24.000000000 +0100 @@ -165,3 +165,10 @@ } return undef; } + +# CGI in perl 5.20 is now seriously broken as it doesn't import into the namespace. +# So we have to delegate explicitely. It's easier than prefixing with CGI:: each use. +sub header { return CGI::header(@_); } +sub path_info { return CGI::path_info(@_); } +sub url { return CGI::url(@_); } +sub script_name { return CGI::script_name(@_); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.21/master/lib/Munin/Master/Config.pm new/munin-2.0.24/master/lib/Munin/Master/Config.pm --- old/munin-2.0.21/master/lib/Munin/Master/Config.pm 2014-04-22 21:29:32.000000000 +0200 +++ new/munin-2.0.24/master/lib/Munin/Master/Config.pm 2014-10-26 15:12:24.000000000 +0100 @@ -124,6 +124,7 @@ tls_verify_certificate update use_node_name + use_default_node ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.21/master/lib/Munin/Master/GraphOld.pm new/munin-2.0.24/master/lib/Munin/Master/GraphOld.pm --- old/munin-2.0.21/master/lib/Munin/Master/GraphOld.pm 2014-04-22 21:29:32.000000000 +0200 +++ new/munin-2.0.24/master/lib/Munin/Master/GraphOld.pm 2014-10-26 15:12:24.000000000 +0100 @@ -2,6 +2,8 @@ # -*- cperl -*- +=encoding utf-8 + =begin comment This is Munin::Master::GraphOld, a package shell to make munin-graph diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.21/master/lib/Munin/Master/HTMLOld.pm new/munin-2.0.24/master/lib/Munin/Master/HTMLOld.pm --- old/munin-2.0.21/master/lib/Munin/Master/HTMLOld.pm 2014-04-22 21:29:32.000000000 +0200 +++ new/munin-2.0.24/master/lib/Munin/Master/HTMLOld.pm 2014-10-26 15:12:24.000000000 +0100 @@ -1,5 +1,7 @@ package Munin::Master::HTMLOld; +=encoding utf-8 + =begin comment -*- perl -*- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.21/master/lib/Munin/Master/Logger.pm new/munin-2.0.24/master/lib/Munin/Master/Logger.pm --- old/munin-2.0.21/master/lib/Munin/Master/Logger.pm 2014-04-22 21:29:32.000000000 +0200 +++ new/munin-2.0.24/master/lib/Munin/Master/Logger.pm 2014-10-26 15:12:24.000000000 +0100 @@ -2,6 +2,8 @@ # $Id$ +=encoding utf-8 + =head1 NAME Munin::Master::Logger - Munin master's old logging routines diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.21/master/lib/Munin/Master/Node.pm new/munin-2.0.24/master/lib/Munin/Master/Node.pm --- old/munin-2.0.21/master/lib/Munin/Master/Node.pm 2014-04-22 21:29:32.000000000 +0200 +++ new/munin-2.0.24/master/lib/Munin/Master/Node.pm 2014-10-26 15:12:24.000000000 +0100 @@ -146,6 +146,8 @@ } }; + INFO "node $self->{host} advertised itself as $self->{node_name} instead." if $self->{node_name} && $self->{node_name} ne $self->{host}; + return 1; } @@ -237,15 +239,20 @@ ? $self->{node_name} : $self->{host}; - if (not $host) { + my $use_default_node = defined($self->{configref}{use_default_node}) + ? $self->{configref}{use_default_node} + : $config->{use_default_node}; + + if (! $use_default_node && ! $host) { die "[ERROR] Couldn't find out which host to list on $host.\n"; } - $self->_node_write_single("list $host\n"); + my $list_host = $use_default_node ? "" : $host; + $self->_node_write_single("list $list_host\n"); my $list = $self->_node_read_single(); if (not $list) { - WARN "[WARNING] Config node $self->{host} listed no services for $host. Please see http://munin-monitoring.org/wiki/FAQ_no_graphs for further information."; + WARN "[WARNING] Config node $self->{host} listed no services for $host, (advertised as $self->{node_name}). Please see http://munin-monitoring.org/wiki/FAQ_no_graphs for further information."; } return split / /, $list; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.21/master/lib/Munin/Master/Utils.pm new/munin-2.0.24/master/lib/Munin/Master/Utils.pm --- old/munin-2.0.21/master/lib/Munin/Master/Utils.pm 2014-04-22 21:29:32.000000000 +0200 +++ new/munin-2.0.24/master/lib/Munin/Master/Utils.pm 2014-10-26 15:12:24.000000000 +0100 @@ -856,6 +856,10 @@ sub munin_write_storable { my ($storable_filename, $data) = @_; + DEBUG "[DEBUG] about to write '$storable_filename'"; + + # We don't need to write anything if there is nothing to write. + return unless defined $data; my $storable_filename_tmp = $storable_filename . ".tmp.$$"; @@ -1161,7 +1165,7 @@ } if ($asfile) { - return join('/',@group).'-'.join('-',@service); + return (shift @group).'/'.join('/',@group).'-'.join('-',@service); } else { return join(';',@group).':'.join('.',@service); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.21/node/_bin/munin-asyncd.in new/munin-2.0.24/node/_bin/munin-asyncd.in --- old/munin-2.0.21/node/_bin/munin-asyncd.in 2014-04-22 21:29:32.000000000 +0200 +++ new/munin-2.0.24/node/_bin/munin-asyncd.in 2014-10-26 15:12:24.000000000 +0100 @@ -93,8 +93,6 @@ my $process_name = "main"; -my $plugin_rate_filename = "$SPOOLDIR/plugin_rates"; - my @plugins; { print STDERR "[$$][$process_name] Reading config from $host\n" if $verbose; @@ -149,7 +147,7 @@ my $sock; PLUGIN: foreach my $plugin (@plugins) { # See if this plugin should be updated - my $plugin_rate = get_hash($plugin, $plugin_rate_filename) || 300; + my $plugin_rate = $spoolwriter->get_metadata("plugin_rates/$plugin") || 300; if ($when < ($last_updated{$plugin} || 0) + $plugin_rate) { # not yet, next plugin next; @@ -244,7 +242,7 @@ # XXX - Doesn't take into account a per field update_rate # This has to be sent back to the master - set_hash($plugin, $1, $plugin_rate_filename); + $spoolwriter->set_metadata("plugin_rates/$plugin", $1); } } @@ -269,36 +267,6 @@ $spoolwriter->write($when, $plugin, $output_rows); } -sub get_hash -{ - my ($key, $filename) = @_; - my %hash; - - use Fcntl; # For O_RDWR, O_CREAT, etc. - use DB_File; - tie (%hash, 'DB_File', $filename, O_RDWR|O_CREAT, 0666) - or die "$!"; - my $value = $hash{$key}; - untie(%hash); - - return $value; -} - -sub set_hash -{ - my ($key, $value, $filename) = @_; - my %hash; - - use Fcntl; # For O_RDWR, O_CREAT, etc. - use DB_File; - tie (%hash, 'DB_File', $filename, O_RDWR|O_CREAT, 0666) - or die "$!"; - $hash{$key} = $value; - untie(%hash); -} - - - __END__ =head1 NAME diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.21/node/lib/Munin/Node/Config.pm new/munin-2.0.24/node/lib/Munin/Node/Config.pm --- old/munin-2.0.21/node/lib/Munin/Node/Config.pm 2014-04-22 21:29:32.000000000 +0200 +++ new/munin-2.0.24/node/lib/Munin/Node/Config.pm 2014-10-26 15:12:24.000000000 +0100 @@ -290,14 +290,19 @@ sub apply_wildcards { my ($self, @services) = @_; + my $ws; # Need to sort the keys in descending order so that more specific # wildcards take precedence. - for my $wildservice (grep { /\*$/ } reverse sort keys %{$self->{sconf}}) { - my $ws = substr $wildservice, 0, -1; + for my $wildservice (grep { /\*$/ || /^\*/ } reverse sort keys %{$self->{sconf}}) { + if ($wildservice =~ /\*$/) { + $ws = substr $wildservice, 0, -1; + } else { + $ws = substr $wildservice, 1; + } for my $service (@services) { - next unless $service =~ /^$ws/; + next unless $service =~ /^$ws/ || $service =~ /$ws$/; $self->_apply_wildcard_to_service($self->{sconf}{$wildservice}, $service); } @@ -410,5 +415,7 @@ See L<http://munin-monitoring.org/wiki/Priority_and_inheritance> +=back + =cut # vim: sw=4 : ts=4 : et diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.21/node/lib/Munin/Node/Configure/History.pm new/munin-2.0.24/node/lib/Munin/Node/Configure/History.pm --- old/munin-2.0.21/node/lib/Munin/Node/Configure/History.pm 2014-04-22 21:29:32.000000000 +0200 +++ new/munin-2.0.24/node/lib/Munin/Node/Configure/History.pm 2014-10-26 15:12:24.000000000 +0100 @@ -140,5 +140,7 @@ plugin should be ignored, true otherwise (ie. if 'newer' wasn't set, the plugin is user-contributed, etc). +=back + =cut # vim: sw=4 : ts=4 : expandtab diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.21/node/lib/Munin/Node/OS.pm new/munin-2.0.24/node/lib/Munin/Node/OS.pm --- old/munin-2.0.21/node/lib/Munin/Node/OS.pm 2014-04-22 21:29:32.000000000 +0200 +++ new/munin-2.0.24/node/lib/Munin/Node/OS.pm 2014-10-26 15:12:24.000000000 +0100 @@ -380,6 +380,7 @@ Set umask so that files created by plugins are group writable Only call right before exec-ing a plugin. +=back =cut # vim: ts=4 : sw=4 : et diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.21/node/lib/Munin/Node/Server.pm new/munin-2.0.24/node/lib/Munin/Node/Server.pm --- old/munin-2.0.21/node/lib/Munin/Node/Server.pm 2014-04-22 21:29:32.000000000 +0200 +++ new/munin-2.0.24/node/lib/Munin/Node/Server.pm 2014-10-26 15:12:24.000000000 +0100 @@ -443,5 +443,7 @@ Processes the request. +=back + =cut vim: ts=4 : et : sw=4 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.21/node/lib/Munin/Node/SpoolReader.pm new/munin-2.0.24/node/lib/Munin/Node/SpoolReader.pm --- old/munin-2.0.21/node/lib/Munin/Node/SpoolReader.pm 2014-04-22 21:29:32.000000000 +0200 +++ new/munin-2.0.24/node/lib/Munin/Node/SpoolReader.pm 2014-10-26 15:12:24.000000000 +0100 @@ -100,13 +100,20 @@ sub _cat_multigraph_file { - my ($self, $service, $timestamp) = @_; + my ($self, $service, $timestamp, $max_samples_per_service) = @_; + + # Default $max_samples_per_service is 5, in order to have a 5x time + # increase in catchup. This enables to not overwhelm the munin-update when + # there is big backlog to handle. Use "0" to send an infinite number of + # samples + $max_samples_per_service = 5 if (! defined $max_samples_per_service); my $data = ""; rewinddir $self->{spooldirhandle} or die "Unable to reset the spool directory handle: $!"; + my $nb_samples_sent = 0; foreach my $file (readdir $self->{spooldirhandle}) { next unless $file =~ m/^munin-daemon\.$service\.(\d+)\.(\d+)$/; next unless $1+$2 >= $timestamp; @@ -147,6 +154,13 @@ $data .= $_ . "\n"; } + + # We just emitted something + $nb_samples_sent ++; + if ($max_samples_per_service && $nb_samples_sent > $max_samples_per_service) { + logger("Already sent $nb_samples_sent for '$service', ending.") if $config->{DEBUG}; + last; + } } return $data; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.21/node/lib/Munin/Node/Utils.pm new/munin-2.0.24/node/lib/Munin/Node/Utils.pm --- old/munin-2.0.21/node/lib/Munin/Node/Utils.pm 2014-04-22 21:29:32.000000000 +0200 +++ new/munin-2.0.24/node/lib/Munin/Node/Utils.pm 2014-10-26 15:12:24.000000000 +0100 @@ -62,6 +62,7 @@ Returns the list of elements common to arrayrefs \@a and \@b. +=back =cut # vim: ts=4 : et diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.21/plugins/lib/Munin/Plugin/Pgsql.pm new/munin-2.0.24/plugins/lib/Munin/Plugin/Pgsql.pm --- old/munin-2.0.21/plugins/lib/Munin/Plugin/Pgsql.pm 2014-04-22 21:29:32.000000000 +0200 +++ new/munin-2.0.24/plugins/lib/Munin/Plugin/Pgsql.pm 2014-10-26 15:12:24.000000000 +0100 @@ -478,7 +478,7 @@ my $r = $self->runquery("SELECT version()"); my $v = $r->[0]->[0]; die "Unable to detect PostgreSQL version\n" - unless ($v =~ /^PostgreSQL (\d+)\.(\d+)(\.\d+|devel)\b/); + unless ($v =~ /^PostgreSQL (\d+)\.(\d+)(\.\d+|devel|beta\d+)\b/); $self->{detected_version} = "$1.$2"; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.21/plugins/lib/Munin/Plugin/SNMP.pm new/munin-2.0.24/plugins/lib/Munin/Plugin/SNMP.pm --- old/munin-2.0.21/plugins/lib/Munin/Plugin/SNMP.pm 2014-04-22 21:29:32.000000000 +0200 +++ new/munin-2.0.24/plugins/lib/Munin/Plugin/SNMP.pm 2014-10-26 15:12:24.000000000 +0100 @@ -27,6 +27,8 @@ # $Id$ +=encoding utf-8 + =head1 NAME Munin::Plugin::SNMP - Net::SNMP subclass for Munin plugins diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.21/plugins/node.d/dhcpd3.in new/munin-2.0.24/plugins/node.d/dhcpd3.in --- old/munin-2.0.21/plugins/node.d/dhcpd3.in 2014-04-22 21:29:32.000000000 +0200 +++ new/munin-2.0.24/plugins/node.d/dhcpd3.in 2014-10-26 15:12:24.000000000 +0100 @@ -169,15 +169,16 @@ print "# DEBUG: Found a subnet: $name\n" if $DEBUG; } if($name && /^\}$/) { - print "# DEBUG: End of subnet... NO RANGE?\n" if $DEBUG; - delete($leases{$name}); + if(!exists $limits{$name}) { + print "# DEBUG: End of subnet... NO RANGE?\n" if $DEBUG; + delete($leases{$name}); + } $name = ""; } if($name && /range\s+((?:\d+\.){3}\d+)\s+((?:\d+\.){3}\d+)/) { print "# DEBUG: range $1 -> $2\n" if $DEBUG; $limits{$name} += &rangecount($1, $2); print "# DEBUG: limit for $name is " . $limits{$name} . "\n" if $DEBUG; - $name = ""; } if(/^include \"([^\"]+)\";/) { my $includefile = $1; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.21/plugins/node.d/http_loadtime.in new/munin-2.0.24/plugins/node.d/http_loadtime.in --- old/munin-2.0.21/plugins/node.d/http_loadtime.in 2014-04-22 21:29:32.000000000 +0200 +++ new/munin-2.0.24/plugins/node.d/http_loadtime.in 2014-10-26 15:12:24.000000000 +0100 @@ -30,7 +30,7 @@ =cut target=${target:-"http://localhost/"} -wget_opt="--user-agent \"Munin - http_loadtime\" --no-cache -q --delete-after" +wget_opt="--user-agent munin/http_loadtime --no-cache -q --delete-after" time_bin=`which time` if [ "$1" = "autoconf" ]; then diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.21/plugins/node.d/ipmi_sensor_.in new/munin-2.0.24/plugins/node.d/ipmi_sensor_.in --- old/munin-2.0.21/plugins/node.d/ipmi_sensor_.in 2014-04-22 21:29:32.000000000 +0200 +++ new/munin-2.0.24/plugins/node.d/ipmi_sensor_.in 2014-10-26 15:12:24.000000000 +0100 @@ -119,7 +119,7 @@ if not cur_sensor: continue label, data = line.split(":", 1) - cur_sensor[label.strip()] = data.strip() + cur_sensor[label.strip().lower()] = data.strip() return sensors def get_sensor_names(): @@ -242,16 +242,16 @@ nname = normalize_sensor(lbl) print "%s.label %s" % (nname, lbl) - assertions = values['Assertions Enabled'].split() + assertions = values['assertions enabled'].split() warn_l = warn_u = crit_l = crit_u = "" if 'lcr-' in assertions: - crit_l = values['Lower Critical'].replace("na","") + crit_l = values['lower critical'].replace("na","") if 'lnc-' in assertions: - warn_l = values['Lower Non-Critical'].replace("na","") + warn_l = values['lower non-critical'].replace("na","") if 'ucr+' in assertions: - crit_u = values['Upper Critical'].replace("na","") + crit_u = values['upper critical'].replace("na","") if 'unc+' in assertions: - warn_u = values['Upper Non-Critical'].replace("na","") + warn_u = values['upper non-critical'].replace("na","") warn = "%s:%s" % (warn_l,warn_u) crit = "%s:%s" % (crit_l,crit_u) if warn!=":": @@ -270,7 +270,7 @@ data = get_sensors() for lbl in info['sensors']: nname = normalize_sensor(lbl) - value = data[lbl]["Sensor Reading"].split()[0] + value = data[lbl]["sensor reading"].split()[0] print "%s.value %s" % (nname, value) @@ -299,10 +299,10 @@ print SENSORS data = get_sensors() for key, value in data.items(): - print "%s : %s (%s - %s) [%s - %s] %s" % (key, value['Sensor Reading'], - value['Lower Non-Critical'], value['Upper Non-Critical'], - value['Lower Critical'], value['Upper Critical'], - value['Assertions Enabled'],) + print "%s : %s (%s - %s) [%s - %s] %s" % (key, value['sensor reading'], + value['lower non-critical'], value['upper non-critical'], + value['lower critical'], value['upper critical'], + value['assertions enabled'],) def main(): if len(sys.argv)>1: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.21/plugins/node.d/postfix_mailstats.in new/munin-2.0.24/plugins/node.d/postfix_mailstats.in --- old/munin-2.0.21/plugins/node.d/postfix_mailstats.in 2014-04-22 21:29:32.000000000 +0200 +++ new/munin-2.0.24/plugins/node.d/postfix_mailstats.in 2014-10-26 15:12:24.000000000 +0100 @@ -182,7 +182,7 @@ my $line = <LOGFILE>; chomp ($line); - if ($line =~ /qmgr.*from=.*size=[0-9]*/) + if ($line =~ / to=.*, status=sent /) { $delivered++; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.21/plugins/node.d.linux/diskstats.in new/munin-2.0.24/plugins/node.d.linux/diskstats.in --- old/munin-2.0.21/plugins/node.d.linux/diskstats.in 2014-04-22 21:29:32.000000000 +0200 +++ new/munin-2.0.24/plugins/node.d.linux/diskstats.in 2014-10-26 15:12:24.000000000 +0100 @@ -148,6 +148,28 @@ return; } +# subtract_wrapping_numbers +# +# Will subtract two numbers, but takes into account that the numbers +# are represented as either a 32-bit value which wraps at 2 ** 32 - 1, +# or a 64-bit value. + +sub subtract_wrapping_numbers { + my ( $cur_value, $prev_value ) = @_; + + return $cur_value - $prev_value if $cur_value >= $prev_value; + + # The numbers seems to have wrapped. + if ($prev_value <= 2 ** 32) { + # Unsigned int wraps here. + $cur_value += 2 ** 32; + } else { + $cur_value += 2 ** 64; + } + + return $cur_value - $prev_value; +} + # calculate_values # # Calculates all data that get's graphed @@ -159,16 +181,16 @@ my $interval = time() - $prev_time; - my $read_ios = $cur_stats->{'rd_ios'} - $prev_stats->{'rd_ios'}; - my $write_ios = $cur_stats->{'wr_ios'} - $prev_stats->{'wr_ios'}; + my $read_ios = subtract_wrapping_numbers($cur_stats->{'rd_ios'}, $prev_stats->{'rd_ios'}); + my $write_ios = subtract_wrapping_numbers($cur_stats->{'wr_ios'}, $prev_stats->{'wr_ios'}); - my $rd_ticks = $cur_stats->{'rd_ticks'} - $prev_stats->{'rd_ticks'}; - my $wr_ticks = $cur_stats->{'wr_ticks'} - $prev_stats->{'wr_ticks'}; + my $rd_ticks = subtract_wrapping_numbers($cur_stats->{'rd_ticks'}, $prev_stats->{'rd_ticks'}); + my $wr_ticks = subtract_wrapping_numbers($cur_stats->{'wr_ticks'}, $prev_stats->{'wr_ticks'}); - my $rd_sectors = $cur_stats->{'rd_sectors'} - $prev_stats->{'rd_sectors'}; - my $wr_sectors = $cur_stats->{'wr_sectors'} - $prev_stats->{'wr_sectors'}; + my $rd_sectors = subtract_wrapping_numbers($cur_stats->{'rd_sectors'}, $prev_stats->{'rd_sectors'}); + my $wr_sectors = subtract_wrapping_numbers($cur_stats->{'wr_sectors'}, $prev_stats->{'wr_sectors'}); - my $tot_ticks = $cur_stats->{'tot_ticks'} - $prev_stats->{'tot_ticks'}; + my $tot_ticks = subtract_wrapping_numbers($cur_stats->{'tot_ticks'}, $prev_stats->{'tot_ticks'}); my $read_io_per_sec = $read_ios / $interval; my $write_io_per_sec = $write_ios / $interval; @@ -195,13 +217,6 @@ my $average_rd_wait_in_sec = $read_ios ? $rd_ticks / $read_ios / 1000 : 0; my $average_wr_wait_in_sec = $write_ios ? $wr_ticks / $write_ios / 1000 : 0; - if ( $average_rd_wait_in_sec < 0 ) { - $average_rd_wait_in_sec = 0; - } - if ( $average_wr_wait_in_sec < 0 ) { - $average_wr_wait_in_sec = 0; - } - my $average_rd_rq_size_in_kb = $read_ios ? $rd_sectors * $bytes_per_sector / 1000 / $read_ios : 0; my $average_wr_rq_size_in_kb = diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.21/plugins/node.d.linux/files_.in new/munin-2.0.24/plugins/node.d.linux/files_.in --- old/munin-2.0.21/plugins/node.d.linux/files_.in 2014-04-22 21:29:32.000000000 +0200 +++ new/munin-2.0.24/plugins/node.d.linux/files_.in 1970-01-01 01:00:00.000000000 +0100 @@ -1,50 +0,0 @@ -#!@@GOODSH@@ -# -# Plugin to monitor the number of open files in the system. -# -# Parameters: -# -# config (required) -# autoconf (optional - used by munin-config) -# -# Magic markers (Used by munin-config and some installation scripts. -# Optional): -# -#%# family=contrib -#%# capabilities=autoconf - -PROC=${0##*/files_} -TMPFILE="$MUNIN_PLUGSTATE/munin-files_${PROC}.state" - -if [ "$1" = "autoconf" ]; then - if [ -x /usr/sbin/lsof ]; then - echo yes - exit 0 - else - echo "no (no lsof)" - exit 0 - fi -fi - -if [ "$1" = "config" ]; then - echo graph_title slapd open files usage - echo graph_args --base 1000 -l 0 - echo graph_vlabel number of files - echo graph_category system - echo cnt.label Slapd proc count - echo avg.label avg all slapd proc - echo max.label max slapd files - echo max.warning 900 - echo max.critical 960 - exit 0 -fi - -if [ "$1" = "collect" ]; then - for ALL in $(pgrep -u root $PROC) ; do - lsof -p $ALL | wc -l - done | sort -n | \ - awk '{ C=C+1 ; S=S + $1 ; M=$1 } END { printf "cnt.value %d\navg.value %d\nmax.value %d\n", C, S/C, M} ' -else - [ -f $TMPFILE ] && cat $TMPFILE - echo "/etc/munin/node.d/slapd_files collect > $TMPFILE" | at +4min 2>/dev/null -fi diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.21/plugins/node.d.linux/proc.in new/munin-2.0.24/plugins/node.d.linux/proc.in --- old/munin-2.0.21/plugins/node.d.linux/proc.in 2014-04-22 21:29:32.000000000 +0200 +++ new/munin-2.0.24/plugins/node.d.linux/proc.in 2014-10-26 15:12:24.000000000 +0100 @@ -320,7 +320,7 @@ $procstats{$procuniq[$i]}{"write_bytes"} = 0; $procstats{$procuniq[$i]}{"cancelled_write_bytes"} = 0; - STATLINE: foreach my $line(`grep -h \\\($procname[$i]\\\) /proc/*/stat`) { + STATLINE: foreach my $line(`grep -h \\\($procname[$i]\\\) /proc/[0-9]*/stat`) { $line =~ /^(\d+)/; my $cmdline = `cat /proc/$1/cmdline | @@PERL@@ -F\"\\0\" -lane '\$s = join(\" \", \@F); print \$s;'`; my $cmduid = `cat /proc/$1/status | egrep '^Uid:' | awk '{ print \$2 }'`; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.21/plugins/plugins.history.in new/munin-2.0.24/plugins/plugins.history.in --- old/munin-2.0.21/plugins/plugins.history.in 2014-04-22 21:29:32.000000000 +0200 +++ new/munin-2.0.24/plugins/plugins.history.in 2014-10-26 15:12:24.000000000 +0100 @@ -366,3 +366,6 @@ [2.0.19] [2.0.20] [2.0.21] +[2.0.22] +[2.0.23] +[2.0.24] -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
