Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package munin for openSUSE:Factory checked in at 2021-02-15 23:10:01 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/munin (Old) and /work/SRC/openSUSE:Factory/.munin.new.28504 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "munin" Mon Feb 15 23:10:01 2021 rev:22 rq:870365 version:2.0.66 Changes: -------- --- /work/SRC/openSUSE:Factory/munin/munin.changes 2020-10-23 12:19:32.264565058 +0200 +++ /work/SRC/openSUSE:Factory/.munin.new.28504/munin.changes 2021-02-15 23:10:02.818835419 +0100 @@ -1,0 +2,30 @@ +Mon Feb 8 22:09:56 UTC 2021 - Dirk M??ller <[email protected]> + +- update to 2.0.66: + * unknown_limit: do not misinterpret zero as one + * unknown_limit: fix handling of value "1" + * SpoolReader: process spooled content lines separately + * async: fetch spooled data in order of timestamps + * async: use name squashing rules when determining the names of spooled files + * async: clarify handling of timestamp + * doc: describe "timeout_fetch_all_nodes" and "timeout_fetch_one_node" + * Make sensors_ temperature plugin work on musl libc + * Symlink and custom name support for diskstat_ + * fix reporting on URL in the munin-update log (stable-2.0) + * make it possible to configure global munin-update timeouts + * Use configured plugin group as primary group + * plugins/memory: add per-cpu counter + * Munin thresholds support for http_loadtime + * adjust_threshold: strings indexes are 1 based in AWK + * Plugin apt_all: prevent ambiguity between slash and hyphen in release names + * Fix utf8 encoding in plugins + * Fix special character for author name (Kristian Lyngst370l) + * Plugin snmp__if_err_: clarify authors list + * Plugin nomadix_users_: clarify formatting of authors + * Plugin vserver_cpu_: clarify copyright statement + * Plugin snmp__uptime: clarify authors + * Unify spelling of author "Dagfinn Ilmari Manns345ker" + * Unify more author names + * Fix template error in case of an empty host list + +------------------------------------------------------------------- Old: ---- munin-2.0.64.tar.gz New: ---- munin-2.0.66.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ munin.spec ++++++ --- /var/tmp/diff_new_pack.F3kLps/_old 2021-02-15 23:10:03.630836633 +0100 +++ /var/tmp/diff_new_pack.F3kLps/_new 2021-02-15 23:10:03.630836633 +0100 @@ -1,7 +1,7 @@ # # spec file for package munin # -# Copyright (c) 2020 SUSE LLC +# Copyright (c) 2021 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -24,7 +24,7 @@ %define active_by_default 0 Name: munin -Version: 2.0.64 +Version: 2.0.66 Release: 0 Summary: Network-wide graphing framework (grapher/gatherer) License: GPL-2.0-only ++++++ munin-2.0.64.tar.gz -> munin-2.0.66.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/ChangeLog new/munin-2.0.66/ChangeLog --- old/munin-2.0.64/ChangeLog 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/ChangeLog 2021-01-06 21:16:52.000000000 +0100 @@ -1,5 +1,72 @@ -*- text -*- +munin-2.0.66, 2021-01-06 +------- +Summary +------- + +Bugfix release. + +------------------ +Detailed Changelog +------------------ + +Lars Kruse (7): + unknown_limit: do not misinterpret zero as one + unknown_limit: fix handling of value "1" + SpoolReader: process spooled content lines separately + async: fetch spooled data in order of timestamps + async: use name squashing rules when determining the names of spooled files + async: clarify handling of timestamp + doc: describe "timeout_fetch_all_nodes" and "timeout_fetch_one_node" + +Matt Merhar (1): + Make sensors_ temperature plugin work on musl libc + +Wiebe Cazemier (1): + Symlink and custom name support for diskstat_ + +Younes Ichiche (2): + fix reporting on URL in the munin-update log (stable-2.0) + make it possible to configure global munin-update timeouts + + +munin-2.0.65, 2020-10-28 +------- +Summary +------- + +Bugfix release. + +------------------ +Detailed Changelog +------------------ + +Hans van Kranenburg (1): + Use configured plugin group as primary group + +John Hall (1): + plugins/memory: add per-cpu counter + +JosefRypacek (1): + Munin thresholds support for http_loadtime + +Kjetil Torgrim Homme (1): + adjust_threshold: strings indexes are 1 based in AWK + +Lars Kruse (10): + Plugin apt_all: prevent ambiguity between slash and hyphen in release names + Fix utf8 encoding in plugins + Fix special character for author name (Kristian Lyngst?l) + Plugin snmp__if_err_: clarify authors list + Plugin nomadix_users_: clarify formatting of authors + Plugin vserver_cpu_: clarify copyright statement + Plugin snmp__uptime: clarify authors + Unify spelling of author "Dagfinn Ilmari Manns?ker" + Unify more author names + Fix template error in case of an empty host list + + munin-2.0.64, 2020-07-09 ------- Summary @@ -3754,7 +3821,7 @@ clocks - stops spurious DNS lookups of these (closes #150) * It appears that some versions of Net::SSLeay needs a "" in print_errs("") calls (closes #154) - * Add munin_stats plugin written by Rodolphe Quiedeville - and patch to + * Add munin_stats plugin written by Rodolphe Qui?deville - and patch to munin-limits to provide timing information by same. Closes #485. Problem: plugin can take more than 10 seconds to run with long log files, needs to use log-tail and a state file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/RELEASE new/munin-2.0.66/RELEASE --- old/munin-2.0.64/RELEASE 2020-07-14 20:27:52.000000000 +0200 +++ new/munin-2.0.66/RELEASE 2021-01-06 22:23:29.000000000 +0100 @@ -1 +1 @@ -2.0.64 +2.0.66 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/common/lib/Munin/Common/Config.pm new/munin-2.0.66/common/lib/Munin/Common/Config.pm --- old/munin-2.0.64/common/lib/Munin/Common/Config.pm 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/common/lib/Munin/Common/Config.pm 2021-01-06 21:16:52.000000000 +0100 @@ -113,6 +113,8 @@ sum text timeout + timeout_fetch_one_node + timeout_fetch_all_nodes tls tls_ca_certificate tls_certificate diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/master/doc/munin.conf.pod.in new/munin-2.0.66/master/doc/munin.conf.pod.in --- old/munin-2.0.64/master/doc/munin.conf.pod.in 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/master/doc/munin.conf.pod.in 2021-01-06 21:16:52.000000000 +0100 @@ -127,6 +127,32 @@ throttle down how many rrdgraph calls will be running at the same time to this number. Affects: munin-cgi-graph and munin-fastcgi-graph. +=item B<timeout_fetch_all_nodes> I<seconds> + +This directive will set the maximum amount of time in seconds the munin-update +task may run. So we'll make sure the update ended within the 5 minutes +timespan needed to have complete graphs without gaps. + +You should probably not increase this value, unless all nodes are using ssh +with munin-async. Otherwise you may expecience gaps in graphs, if +C<munin-update> takes longer, than the default period (5 minutes). + +Munin-async can retrieve historical data, and if there is a big backlog, +we could need more time depending on the size of the data generated by the plugin +and the size of the backlog. This would also mean that we wouldn't care to skip +an update. So munin-async will get more time to retrieve the backlog data. +Afterwards new data will incrementally be fetched. +Default is 240. +Affects: munin-update + +=item B<timeout_fetch_one_node> I<seconds> + +This directive will set the maximum amount of time in seconds the munin-update +task may run for a single node. This value can't be bigger than +C<timeout_fetch_all_nodes>. +Default is 180. +Affects: munin-update + =item B<ssh_command> I<value> The name of the secure shell command to use. Can be fully qualified, @@ -341,7 +367,7 @@ load.graph_title Total load load.sum_load.label load load.sum_load.special_stack machine1=machine1.one.dom:load.load machine2=machine2.one.dom:load.load - + =head1 AUTHORS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/master/lib/Munin/Master/Config.pm new/munin-2.0.66/master/lib/Munin/Master/Config.pm --- old/munin-2.0.64/master/lib/Munin/Master/Config.pm 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/master/lib/Munin/Master/Config.pm 2021-01-06 21:16:52.000000000 +0100 @@ -151,6 +151,8 @@ max_processes => 16, rundir => $Munin::Common::Defaults::MUNIN_STATEDIR, timeout => 180, + timeout_fetch_one_node => 180, + timeout_fetch_all_nodes => 240, tls => 'disabled', tls_ca_certificate => "$Munin::Common::Defaults::MUNIN_CONFDIR/cacert.pem", tls_certificate => "$Munin::Common::Defaults::MUNIN_CONFDIR/munin.pem", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/master/lib/Munin/Master/HTMLOld.pm new/munin-2.0.66/master/lib/Munin/Master/HTMLOld.pm --- old/munin-2.0.64/master/lib/Munin/Master/HTMLOld.pm 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/master/lib/Munin/Master/HTMLOld.pm 2021-01-06 21:16:52.000000000 +0100 @@ -759,14 +759,14 @@ $template->param( TAGLINE => $htmltagline, - GROUPS => $groups, + GROUPS => $groups || [], CSS_NAME => get_css_name(), R_PATH => ".", - ROOTGROUPS => $htmlconfig->{"groups"}, + ROOTGROUPS => $htmlconfig->{"groups"} || [], MUNIN_VERSION => $Munin::Common::Defaults::MUNIN_VERSION, TIMESTAMP => $timestamp, - NGLOBALCATS => $htmlconfig->{"nglobalcats"}, - GLOBALCATS => $htmlconfig->{"globalcats"}, + NGLOBALCATS => $htmlconfig->{"nglobalcats"} || [], + GLOBALCATS => $htmlconfig->{"globalcats"} || [], NCRITICAL => scalar(@{$htmlconfig->{"problems"}->{"criticals"}}), NWARNING => scalar(@{$htmlconfig->{"problems"}->{"warnings"}}), NUNKNOWN => scalar(@{$htmlconfig->{"problems"}->{"unknowns"}}), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/master/lib/Munin/Master/LimitsOld.pm new/munin-2.0.66/master/lib/Munin/Master/LimitsOld.pm --- old/munin-2.0.64/master/lib/Munin/Master/LimitsOld.pm 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/master/lib/Munin/Master/LimitsOld.pm 2021-01-06 21:16:52.000000000 +0100 @@ -441,7 +441,7 @@ # First we'll need to check whether the user wants to ignore # a few UNKNOWN values before actually changing the state to # UNKNOWN. - if (($oldstate ne "unknown") and ($unknown_limit > 1)) { + if (($oldstate ne "unknown") and ($unknown_limit >= 1)) { if (!defined($onfield->{"num_unknowns"}) or ($onfield->{"num_unknowns"} < $unknown_limit)) { $newstate = $oldstate; $extinfo = $onfield->{$newstate}; @@ -590,13 +590,7 @@ } if ($unknown_limit =~ /^\s*(\d+)\s*$/) { - $unknown_limit = $1 if defined $1; - if (defined $unknown_limit) { - if ($unknown_limit < 1) { - # Zero and negative numbers are not valid. - $unknown_limit = 1; - } - } + $unknown_limit = $1; DEBUG "[DEBUG] processing unknown_limit: $name -> $unknown_limit"; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/master/lib/Munin/Master/ProcessManager.pm new/munin-2.0.66/master/lib/Munin/Master/ProcessManager.pm --- old/munin-2.0.64/master/lib/Munin/Master/ProcessManager.pm 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/master/lib/Munin/Master/ProcessManager.pm 2021-01-06 21:16:52.000000000 +0100 @@ -36,8 +36,8 @@ result_callback => $result_callback, error_callback => $error_callback, - worker_timeout => 180, - timeout => 240, + worker_timeout => $config->{timeout_fetch_one_node}, + timeout => $config->{timeout_fetch_all_nodes}, accept_timeout => 10, active_workers => {}, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/master/lib/Munin/Master/UpdateWorker.pm new/munin-2.0.66/master/lib/Munin/Master/UpdateWorker.pm --- old/munin-2.0.64/master/lib/Munin/Master/UpdateWorker.pm 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/master/lib/Munin/Master/UpdateWorker.pm 2021-01-06 21:16:52.000000000 +0100 @@ -56,8 +56,20 @@ my $path = $self->{host}->get_full_path; $path =~ s{[:;]}{-}g; - my $nodedesignation = $host."/". - $self->{host}{address}.":".$self->{host}{port}; + # Parameters are space-separated from the main address + my ($url, $params) = split(/ +/, $self->{host}{address}, 2); + my $uri = new URI($url); + + # If the scheme is not defined, it's a plain host. + # Prefix it with munin:// to be able to parse it like others + $uri = new URI("munin://" . $url) unless $uri->scheme; + + my $nodedesignation; + if ($uri->scheme eq "ssh" || $uri->scheme eq "cmd") { + $nodedesignation = $host." (".$self->{host}{address}.")"; + }else{ + $nodedesignation = $host." (".$self->{host}{address}.":".$self->{host}{port}.")"; + } my $lock_file = sprintf ('%s/munin-%s.lock', $config->{rundir}, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/master/munin.conf.in new/munin-2.0.66/master/munin.conf.in --- old/munin-2.0.64/master/munin.conf.in 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/master/munin.conf.in 2021-01-06 21:16:52.000000000 +0100 @@ -94,6 +94,16 @@ # the services must be defined in the Nagios server as well. #contact.nagios.command /usr/bin/send_nsca nagios.host.comm -c /etc/nsca.conf +# The maximum time the munin-update may take to get updates from all nodes, +# this might be interesting when using munin-async in case of large transactions and/or backlog. +# When using the munin protocol to connect to a node, then this value shouldn't be set higher than 240. +# In case it's higher, gaps might be seen in the graphs. +timeout_fetch_all_nodes 240 + +# The maximum amount of time in seconds we may work on 1 node. +# The value will be limited with timeout_fetch_all_nodes. +timeout_fetch_one_node 180 + # a simple host tree [@@HOSTNAME@@] address 127.0.0.1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/master/t/munin_master_config.t new/munin-2.0.66/master/t/munin_master_config.t --- old/munin-2.0.64/master/t/munin_master_config.t 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/master/t/munin_master_config.t 2021-01-06 21:16:52.000000000 +0100 @@ -55,6 +55,8 @@ ssh_command => "ssh", ssh_options => "-o ChallengeResponseAuthentication=no -o StrictHostKeyChecking=no", timeout => 180, + timeout_fetch_all_nodes => 240, + timeout_fetch_one_node => 180, tls => 'disabled', tls_ca_certificate => '/opt/munin/common/t/tls/CA/ca_cert.pem', tls_certificate => '/opt/munin/common/t/tls/master_cert.pem', @@ -132,7 +134,7 @@ load1.graph_title Loads side by side load1.graph_order fii=fii.foo.com:load.load fay=fay.foo.com:load.load -# +# # A more complex example of a host tree # ## First our "normal" host. @@ -147,7 +149,7 @@ # [foo.com;Totals] #Force it into the "foo.com"-domain... # update no # Turn off data-fetching for this "host". # -# # The graph "load1". We want to see the loads of both machines... +# # The graph "load1". We want to see the loads of both machines... # # "fii=fii.foo.com:load.load" means "label=machine:graph.field" # load1.graph_title Loads side by side # load1.graph_order fii=fii.foo.com:load.load fay=fay.foo.com:load.load @@ -172,4 +174,3 @@ # [foo.com;] # node_order Totals fii.foo.com fay.foo.com # - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/master/www/munin-overview.tmpl new/munin-2.0.66/master/www/munin-overview.tmpl --- old/munin-2.0.64/master/www/munin-overview.tmpl 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/master/www/munin-overview.tmpl 2021-01-06 21:16:52.000000000 +0100 @@ -7,6 +7,7 @@ <TMPL_INCLUDE NAME="partial/navigation.tmpl"> <div id="content"> <h2>Overview</h2> + <TMPL_IF NAME="GROUPS"> <ul class="groupview"> <TMPL_LOOP NAME="GROUPS"><TMPL_UNLESS NAME="MULTIGRAPH"> <li <TMPL_IF NAME="__LAST__">class="last"</TMPL_IF>> @@ -61,6 +62,9 @@ </li> </TMPL_UNLESS></TMPL_LOOP> </ul> + <TMPL_ELSE> + Warning: no hosts were configured for data collection. See the <a href="http://guide.munin-monitoring.org/en/latest/installation/configuration.html#add-some-nodes">Munin Guide</a> for details. + </TMPL_IF> <div class="contentpusher"></div> </div> </div> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/node/_bin/munin-async.in new/munin-2.0.66/node/_bin/munin-async.in --- old/munin-2.0.64/node/_bin/munin-async.in 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/node/_bin/munin-async.in 2021-01-06 21:16:52.000000000 +0100 @@ -98,7 +98,7 @@ print ".\n"; } elsif ($line =~ m/^spoolfetch (\d+)/) { my $last_epoch = $1; - print $spoolreader->fetch($last_epoch); + $spoolreader->fetch($1, sub { print shift(); }); print ".\n"; } elsif ($spoolfetch && $line =~ m/^cap/) { print "cap spool\n"; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/node/lib/Munin/Node/Server.pm new/munin-2.0.66/node/lib/Munin/Node/Server.pm --- old/munin-2.0.64/node/lib/Munin/Node/Server.pm 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/node/lib/Munin/Node/Server.pm 2021-01-06 21:16:52.000000000 +0100 @@ -200,7 +200,7 @@ _print_service($session, _run_service($1, 'config')); } elsif (/^spoolfetch (\d+)/ and $spool) { - _net_write($session, $spool->fetch($1)); + $spool->fetch($1, sub { _net_write($session, shift()); }); _net_write($session, ".\n"); } elsif (/^starttls\s*$/i) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/node/lib/Munin/Node/Service.pm new/munin-2.0.66/node/lib/Munin/Node/Service.pm --- old/munin-2.0.64/node/lib/Munin/Node/Service.pm 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/node/lib/Munin/Node/Service.pm 2021-01-06 21:16:52.000000000 +0100 @@ -190,10 +190,11 @@ # Support running with more than one group in effect. See documentation on # $EFFECTIVE_GROUP_ID in the perlvar(1) manual page. Need to specify the - # default group twice: once for setegid(2), and once for setgroups(2). - my $egids = join ' ', ($default_gid) x 2, @groups; - - return ($default_gid, $egids); + # primary group twice: once for setegid(2), and once for setgroups(2). + if (scalar(@groups) != 0) { + return ($groups[0], join ' ', $groups[0], @groups); + } + return ($default_gid, join ' ', ($default_gid) x 2); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/node/lib/Munin/Node/SpoolReader.pm new/munin-2.0.66/node/lib/Munin/Node/SpoolReader.pm --- old/munin-2.0.64/node/lib/Munin/Node/SpoolReader.pm 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/node/lib/Munin/Node/SpoolReader.pm 2021-01-06 21:16:52.000000000 +0100 @@ -71,16 +71,25 @@ # returns all output for all services since $timestamp. +# The third argument ($submission_function) is optional: it is used for processing partial results, +# in order to avoid slurping the full data content into RAM. The result is empty, if this function +# is given. sub fetch { - my ($self, $timestamp) = @_; + my ($self, $timestamp, $submission_function) = @_; my $return_str = ''; my @plugins = $self->_get_spooled_plugins(); logger("timestamp:$timestamp, plugins:@plugins") if $config->{DEBUG}; foreach my $plugin (@plugins) { - $return_str .= $self->_cat_multigraph_file($plugin, $timestamp); + my $new_content = $self->_cat_multigraph_file( + $plugin, $timestamp, undef, $submission_function); + if (defined $submission_function) { + $submission_function->($new_content); + } else { + $return_str .= $new_content; + } } return $return_str; @@ -96,9 +105,12 @@ } +# The last argument ($submission_function) is optional: it is used for processing partial results, +# in order to avoid slurping the full data content into RAM. The result is empty, if this function +# is given. sub _cat_multigraph_file { - my ($self, $service, $timestamp, $max_samples_per_service) = @_; + my ($self, $service, $timestamp, $max_samples_per_service, $submission_function) = @_; # 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 @@ -112,9 +124,17 @@ 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; + foreach my $file (sort readdir $self->{spooldirhandle}) { + # squash the $service name with the same rules as the munin-update when using plain TCP + # Closes D:710529 + my $service_clean = $service; + $service_clean =~ s/[^_A-Za-z0-9]/_/g; + + next unless $file =~ m/^munin-daemon\.$service_clean\.(\d+)\.(\d+)$/; + my $interval_start = $1; + my $interval_size = $2; + # skip the file if its newest value is older than the minimum wanted timestamp + next if $interval_start + $interval_size < $timestamp; open my $fh, '<', "$self->{spooldir}/$file" or die "Unable to open spool file: $!"; @@ -155,7 +175,11 @@ $_ = "$1.value $epoch:$2"; } - $data .= $_ . "\n"; + if (defined $submission_function) { + $submission_function->($_ . "\n"); + } else { + $data .= $_ . "\n"; + } } # We just emitted something diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/node/t/munin_node_service.t new/munin-2.0.66/node/t/munin_node_service.t --- old/munin-2.0.64/node/t/munin_node_service.t 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/node/t/munin_node_service.t 2021-01-06 21:16:52.000000000 +0100 @@ -55,8 +55,8 @@ opt_bad_gname => { group => [ '(%%SSKK????)' ] }, opt_bad_gid => { group => [ '(999999999)' ] }, - several_groups => { group => [ 0, "($gname)" ] }, - several_groups_required => { group => [ 0, $gname ] }, + several_groups => { group => [ 0, "($gname)" ,0 ] }, + several_groups_required => { group => [ 0, $gname, 0 ] }, several_groups_mixture => { group => [ '(%%SSKK????)', 0 ] }, }, ignores => [ @@ -187,8 +187,8 @@ eq_or_diff([ $services->_resolve_gids('no_groups') ], [ $gid, "$gid $gid" ], 'default group by gid'); - eq_or_diff([ $services->_resolve_gids('gid') ], [ $gid, "$gid $gid 0" ], 'extra group by gid'); - eq_or_diff([ $services->_resolve_gids('gname') ], [ $gid, "$gid $gid 0" ], 'extra group by name'); + eq_or_diff([ $services->_resolve_gids('gid') ], [ 0, "0 0" ], 'different group by gid'); + eq_or_diff([ $services->_resolve_gids('gname') ], [ 0, "0 0" ], 'different group by name'); eval { $services->_resolve_gids('bad_gid') }; like($@, qr/'999999999'/, 'Exception thrown if an additional group could not be resolved'); @@ -196,25 +196,25 @@ eval { $services->_resolve_gids('bad_gname') }; like($@, qr/'%%SSKK????'/, 'Exception thrown if an additional group could not be resolved'); - eq_or_diff([ $services->_resolve_gids('opt_gname') ], [ $gid, "$gid $gid 0" ], 'extra optional group by name'); - eq_or_diff([ $services->_resolve_gids('opt_bad_gname') ], [ $gid, "$gid $gid" ], 'unresolvable extra groups are ignored'); + eq_or_diff([ $services->_resolve_gids('opt_gname') ], [ 0, "0 0" ], 'optional group by name'); + eq_or_diff([ $services->_resolve_gids('opt_bad_gname') ], [ $gid, "$gid $gid" ], 'unresolvable groups are ignored'); - eq_or_diff([ $services->_resolve_gids('opt_gid') ], [ $gid, "$gid $gid 0" ], 'extra optional group by gid'); - eq_or_diff([ $services->_resolve_gids('opt_bad_gid') ], [ $gid, "$gid $gid" ], 'unresolvable extra gids are ignored'); + eq_or_diff([ $services->_resolve_gids('opt_gid') ], [ 0, "0 0" ], 'optional group by gid'); + eq_or_diff([ $services->_resolve_gids('opt_bad_gid') ], [ $gid, "$gid $gid" ], 'unresolvable gids are ignored'); eq_or_diff( [$services->_resolve_gids('several_groups') ], - [$gid, "$gid $gid 0 $gid"], + [0, "0 0 $gid 0"], 'several extra groups' ); eq_or_diff( [$services->_resolve_gids('several_groups_required')], - [$gid, "$gid $gid 0 $gid"], + [0, "0 0 $gid 0"], 'several groups, less whitespace' ); eq_or_diff( [$services->_resolve_gids('several_groups_mixture')], - [$gid, "$gid $gid 0"], + [0, "0 0"], 'resolvable and unresolvable extra groups' ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/plugins/lib/Munin/Plugin/SNMP.pm new/munin-2.0.66/plugins/lib/Munin/Plugin/SNMP.pm --- old/munin-2.0.64/plugins/lib/Munin/Plugin/SNMP.pm 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/plugins/lib/Munin/Plugin/SNMP.pm 2021-01-06 21:16:52.000000000 +0100 @@ -1,7 +1,7 @@ # -*- cperl -*- # vim: ts=4 : sw=4 : et # -# Copyright (C) 2004-2009 Dagfinn Ilmari Mannsaaker, Nicolai Langfeldt, +# Copyright (C) 2004-2009 Dagfinn Ilmari Manns??ker, Nicolai Langfeldt, # Linpro AS # # This program is free software; you can redistribute it and/or diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/plugins/node.d/courier_mta_mailqueue.in new/munin-2.0.66/plugins/node.d/courier_mta_mailqueue.in --- old/munin-2.0.64/plugins/node.d/courier_mta_mailqueue.in 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/plugins/node.d/courier_mta_mailqueue.in 2021-01-06 21:16:52.000000000 +0100 @@ -29,7 +29,7 @@ =head1 AUTHOR -Rune Nordb?e Skillingstad <[email protected]> +Rune Nordb??e Skillingstad <[email protected]> =head1 LICENSE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/plugins/node.d/courier_mta_mailstats.in new/munin-2.0.66/plugins/node.d/courier_mta_mailstats.in --- old/munin-2.0.64/plugins/node.d/courier_mta_mailstats.in 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/plugins/node.d/courier_mta_mailstats.in 2021-01-06 21:16:52.000000000 +0100 @@ -16,7 +16,7 @@ =head1 AUTHOR -Rune Nordb?e Skillingstad <[email protected]> +Rune Nordb??e Skillingstad <[email protected]> =head1 LICENSE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/plugins/node.d/courier_mta_mailvolume.in new/munin-2.0.66/plugins/node.d/courier_mta_mailvolume.in --- old/munin-2.0.64/plugins/node.d/courier_mta_mailvolume.in 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/plugins/node.d/courier_mta_mailvolume.in 2021-01-06 21:16:52.000000000 +0100 @@ -15,7 +15,7 @@ =head1 AUTHOR -Rune Nordb?e Skillingstad <[email protected]> +Rune Nordb??e Skillingstad <[email protected]> =head1 LICENSE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/plugins/node.d/dhcpd3.in new/munin-2.0.66/plugins/node.d/dhcpd3.in --- old/munin-2.0.64/plugins/node.d/dhcpd3.in 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/plugins/node.d/dhcpd3.in 2021-01-06 21:16:52.000000000 +0100 @@ -49,7 +49,7 @@ =head1 AUTHOR -Rune Nordb?e Skillingstad. +Rune Nordb??e Skillingstad. =head1 LICENSE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/plugins/node.d/digitemp_.in new/munin-2.0.66/plugins/node.d/digitemp_.in --- old/munin-2.0.64/plugins/node.d/digitemp_.in 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/plugins/node.d/digitemp_.in 2021-01-06 21:16:52.000000000 +0100 @@ -22,7 +22,7 @@ =head1 AUTHOR -Copyright (C) 2006 Dagfinn Ilmari Mannsaaker <[email protected]> +Copyright (C) 2006 Dagfinn Ilmari Manns??ker <[email protected]> =head1 LICENSE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/plugins/node.d/http_loadtime.in new/munin-2.0.66/plugins/node.d/http_loadtime.in --- old/munin-2.0.64/plugins/node.d/http_loadtime.in 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/plugins/node.d/http_loadtime.in 2021-01-06 21:16:52.000000000 +0100 @@ -15,6 +15,8 @@ [http_loadtime] env.target http://localhost.de,http://localhost.de/some-site.html env.requisites true + env.warning 5 + env.critical 30 Do not enable the download of page requisites (env.requisites) for https sites since wget needs incredible long to perform this on big sites... @@ -35,6 +37,8 @@ =cut +. "$MUNIN_LIBDIR/plugins/plugin.sh" + target=${target:-"http://localhost/"} requisites=${requisites:-"false"} @@ -87,6 +91,7 @@ if [ "$uri_short" != "$uri" ]; then uri_short="${uri_short}..."; fi echo "$(escapeUri "$uri").label $uri_short" echo "$(escapeUri "$uri").info page load time" + print_thresholds "$(escapeUri "$uri")" done exit 0 fi diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/plugins/node.d/loggrep.in new/munin-2.0.66/plugins/node.d/loggrep.in --- old/munin-2.0.64/plugins/node.d/loggrep.in 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/plugins/node.d/loggrep.in 2021-01-06 21:16:52.000000000 +0100 @@ -26,7 +26,7 @@ =head1 AUTHOR -Copyright (C) 2004 Dagfinn Ilmari Mannsaaker +Copyright (C) 2004 Dagfinn Ilmari Manns??ker =head1 LICENSE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/plugins/node.d/munin_stats.in new/munin-2.0.66/plugins/node.d/munin_stats.in --- old/munin-2.0.64/plugins/node.d/munin_stats.in 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/plugins/node.d/munin_stats.in 2021-01-06 21:16:52.000000000 +0100 @@ -1,7 +1,7 @@ #!@@PERL@@ # -*- perl -*- # -# Copyright (C) 2006-2009 Rodolphe Quiedeville <[email protected]> +# Copyright (C) 2006-2009 Rodolphe Qui??deville <[email protected]> # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/plugins/node.d/nomadix_users_.in new/munin-2.0.66/plugins/node.d/nomadix_users_.in --- old/munin-2.0.64/plugins/node.d/nomadix_users_.in 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/plugins/node.d/nomadix_users_.in 2021-01-06 21:16:52.000000000 +0100 @@ -32,14 +32,17 @@ name, not sure how specific the OIDs it presents are) plugin using the Plugin::SNMP module. -=head1 AUTHOR +=head1 AUTHORS -(C) Copyright 2006-2009. Written by Espen Braastad, Linpro AS for OSL -(2006) Further modified by Erik Inge Bols??, Linpro AS for OSL (2007) +Copyright (C) 2006-2009 Espen Braastad, Linpro AS for OSL + +Copyright (C) 2007 Erik Inge Bols??, Linpro AS for OSL =head1 LICENSE -GPLv2. +GPLv2 + +SPDX-License-Identifier: GPL-2.0-only =head1 MAGIC MARKERS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/plugins/node.d/openvpn.in new/munin-2.0.66/plugins/node.d/openvpn.in --- old/munin-2.0.64/plugins/node.d/openvpn.in 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/plugins/node.d/openvpn.in 2021-01-06 21:16:52.000000000 +0100 @@ -32,7 +32,7 @@ =head1 AUTHOR -Copyright (C) 2005 Rodolphe Quiedeville <[email protected]> +Copyright (C) 2005 Rodolphe Qui??deville <[email protected]> =head1 LICENSE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/plugins/node.d/slapd_.in new/munin-2.0.66/plugins/node.d/slapd_.in --- old/munin-2.0.64/plugins/node.d/slapd_.in 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/plugins/node.d/slapd_.in 2021-01-06 21:16:52.000000000 +0100 @@ -2,7 +2,7 @@ # -*- perl -*- # vim: ft=perl -# Copyright Bjorn Ruberg <[email protected]> +# Copyright Bj??rn Ruberg <[email protected]> # Licenced under GPL v2 # # TODO: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/plugins/node.d/slapd_bdb_cache_.in new/munin-2.0.66/plugins/node.d/slapd_bdb_cache_.in --- old/munin-2.0.64/plugins/node.d/slapd_bdb_cache_.in 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/plugins/node.d/slapd_bdb_cache_.in 2021-01-06 21:16:52.000000000 +0100 @@ -1,7 +1,7 @@ #!@@PERL@@ -w # -*- perl -*- # -# Plugin copyright Bjorn Ruberg <[email protected]> 2005-2009 +# Plugin copyright Bj??rn Ruberg <[email protected]> 2005-2009 # # Licensed under GPLv2. Be nice. # diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/plugins/node.d/snmp__if_.in new/munin-2.0.66/plugins/node.d/snmp__if_.in --- old/munin-2.0.64/plugins/node.d/snmp__if_.in 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/plugins/node.d/snmp__if_.in 2021-01-06 21:16:52.000000000 +0100 @@ -90,7 +90,7 @@ =head1 AUTHOR -Copyright (C) 2004-2009 Jimmy Olsen, Daginn Ilmari Mannsaaker. +Copyright (C) 2004-2009 Jimmy Olsen, Daginn Ilmari Manns??ker. Documentation, porting to Munin::Plugin::SNMP and further grooming by Nicolai Langfeldt. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/plugins/node.d/snmp__if_err_.in new/munin-2.0.66/plugins/node.d/snmp__if_err_.in --- old/munin-2.0.64/plugins/node.d/snmp__if_err_.in 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/plugins/node.d/snmp__if_err_.in 2021-01-06 21:16:52.000000000 +0100 @@ -67,11 +67,11 @@ ifOutErrors numbers. This does not encompas all errors on a interface therefore the change. -=head1 AUTHOR +=head1 AUTHORS -Copyright (C) 2004-2009. Original authors Jimmy Olsen, Dagfinn Ilmari -Mannsaaker. Porting to Munin::Plugin::SNMP, documentation, grooming -and updates by Nicolai Langfeldt +Copyright (C) 2004 Jimmy Olsen +Copyright (C) 2005 Dagfinn Ilmari Manns??ker +Copyright (C) 2009 Nicolai Langfeldt =head1 LICENSE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/plugins/node.d/snmp__if_multi.in new/munin-2.0.66/plugins/node.d/snmp__if_multi.in --- old/munin-2.0.64/plugins/node.d/snmp__if_multi.in 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/plugins/node.d/snmp__if_multi.in 2021-01-06 21:16:52.000000000 +0100 @@ -123,11 +123,11 @@ =head1 AUTHOR -Copyright (C) 2004-2010 Jimmy Olsen, Dagfinn Ilmari Mannsaaker, +Copyright (C) 2004-2010 Jimmy Olsen, Dagfinn Ilmari Manns??ker, Nicolai Langfeldt, Redpill Linpro AS and others. Original snmp__if_ plugin: Copyright (C) 2004-2009 Jimmy Olsen, Dagfinn -Ilmari Mannsaaker. +Ilmari Manns??ker. Initial SNMPv3 support by "Confusedhacker". diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/plugins/node.d/snmp__load.in new/munin-2.0.66/plugins/node.d/snmp__load.in --- old/munin-2.0.64/plugins/node.d/snmp__load.in 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/plugins/node.d/snmp__load.in 2021-01-06 21:16:52.000000000 +0100 @@ -52,7 +52,7 @@ =head1 AUTHOR -Copyright (C) 2004 Jimmy Olsen, Dagfinn Ilmari Mannsaaker +Copyright (C) 2004 Jimmy Olsen, Dagfinn Ilmari Manns??ker Documented and updated to use Munin::Plugin::SNMP by Matthew Boyle. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/plugins/node.d/snmp__print_pages.in new/munin-2.0.66/plugins/node.d/snmp__print_pages.in --- old/munin-2.0.64/plugins/node.d/snmp__print_pages.in 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/plugins/node.d/snmp__print_pages.in 2021-01-06 21:16:52.000000000 +0100 @@ -44,7 +44,7 @@ =head1 AUTHOR -Copyright (C) 2006-2009 Rune Nordb?e Skillingstad +Copyright (C) 2006-2009 Rune Nordb??e Skillingstad =head1 LICENSE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/plugins/node.d/snmp__print_supplies.in new/munin-2.0.66/plugins/node.d/snmp__print_supplies.in --- old/munin-2.0.64/plugins/node.d/snmp__print_supplies.in 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/plugins/node.d/snmp__print_supplies.in 2021-01-06 21:16:52.000000000 +0100 @@ -50,7 +50,7 @@ =head1 AUTHOR -Copyright (C) 2006-2009 Rune Nordb?e Skillingstad, Sveinung Marvik. +Copyright (C) 2006-2009 Rune Nordb??e Skillingstad, Sveinung Marvik. =head1 LICENSE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/plugins/node.d/snmp__processes.in new/munin-2.0.66/plugins/node.d/snmp__processes.in --- old/munin-2.0.64/plugins/node.d/snmp__processes.in 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/plugins/node.d/snmp__processes.in 2021-01-06 21:16:52.000000000 +0100 @@ -51,7 +51,7 @@ =head1 AUTHOR -Copyright (C) 2004 Jimmy Olsen, Dagfinn Ilmari Mannsaaker +Copyright (C) 2004 Jimmy Olsen, Dagfinn Ilmari Manns??ker Documented and updated to use Munin::Plugin::SNMP by Matthew Boyle in 2010. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/plugins/node.d/snmp__rdp_users.in new/munin-2.0.66/plugins/node.d/snmp__rdp_users.in --- old/munin-2.0.64/plugins/node.d/snmp__rdp_users.in 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/plugins/node.d/snmp__rdp_users.in 2021-01-06 21:16:52.000000000 +0100 @@ -52,7 +52,7 @@ =head1 AUTHOR -Copyright (C) 2004 Rune Nordb?e Skillingstad +Copyright (C) 2004 Rune Nordb??e Skillingstad Documented and updated to use Munin::Plugin::SNMP by Matthew Boyle. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/plugins/node.d/snmp__sensors_fsc_bx_fan.in new/munin-2.0.66/plugins/node.d/snmp__sensors_fsc_bx_fan.in --- old/munin-2.0.64/plugins/node.d/snmp__sensors_fsc_bx_fan.in 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/plugins/node.d/snmp__sensors_fsc_bx_fan.in 2021-01-06 21:16:52.000000000 +0100 @@ -26,7 +26,7 @@ =head1 AUTHOR -Copyright (C) 2004 Dagfinn Ilmari Mannsaaker +Copyright (C) 2004 Dagfinn Ilmari Manns??ker =head1 MAGIC MARKERS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/plugins/node.d/snmp__sensors_fsc_bx_temp.in new/munin-2.0.66/plugins/node.d/snmp__sensors_fsc_bx_temp.in --- old/munin-2.0.64/plugins/node.d/snmp__sensors_fsc_bx_temp.in 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/plugins/node.d/snmp__sensors_fsc_bx_temp.in 2021-01-06 21:16:52.000000000 +0100 @@ -23,7 +23,7 @@ =head1 AUTHOR -Copyright (C) 2004 Dagfinn Ilmari Mannsaaker +Copyright (C) 2004 Dagfinn Ilmari Manns??ker =head1 LICENSE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/plugins/node.d/snmp__sensors_fsc_fan.in new/munin-2.0.66/plugins/node.d/snmp__sensors_fsc_fan.in --- old/munin-2.0.64/plugins/node.d/snmp__sensors_fsc_fan.in 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/plugins/node.d/snmp__sensors_fsc_fan.in 2021-01-06 21:16:52.000000000 +0100 @@ -2,7 +2,7 @@ # -*- perl -*- # vim: ft=perl # -# Copyright (C) 2004 Dagfinn Ilmari Mannsaaker +# Copyright (C) 2004 Dagfinn Ilmari Manns??ker # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/plugins/node.d/snmp__sensors_fsc_temp.in new/munin-2.0.66/plugins/node.d/snmp__sensors_fsc_temp.in --- old/munin-2.0.64/plugins/node.d/snmp__sensors_fsc_temp.in 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/plugins/node.d/snmp__sensors_fsc_temp.in 2021-01-06 21:16:52.000000000 +0100 @@ -2,7 +2,7 @@ # -*- perl -*- # vim: ft=perl # -# Copyright (C) 2004 Dagfinn Ilmari Mannsaaker +# Copyright (C) 2004 Dagfinn Ilmari Manns??ker # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/plugins/node.d/snmp__uptime.in new/munin-2.0.66/plugins/node.d/snmp__uptime.in --- old/munin-2.0.64/plugins/node.d/snmp__uptime.in 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/plugins/node.d/snmp__uptime.in 2021-01-06 21:16:52.000000000 +0100 @@ -61,15 +61,13 @@ =head1 AUTHOR -Copyright (C) 2000-2009 by various authors. +Copyright (C) 2000-2009 by various authors -Original Nagios plugin: S??bastien Barbereau. +Original Nagios plugin: S??bastien Barbereau -Introduced to Munin in 2006 based on the Nagios plugin by: Andreas -Schuldei +Copyright (C) 2006 Andreas Schuldei -In 2008 updated for Munin::Plugin::SNMP and documented by Nicolai -Langfeldt. +Copyright (C) 2008 Nicolai Langfeldt =head1 LICENSE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/plugins/node.d/snmp__users.in new/munin-2.0.66/plugins/node.d/snmp__users.in --- old/munin-2.0.64/plugins/node.d/snmp__users.in 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/plugins/node.d/snmp__users.in 2021-01-06 21:16:52.000000000 +0100 @@ -51,7 +51,7 @@ =head1 AUTHOR -Copyright (C) 2004 Jimmy Olsen, Dagfinn Ilmari Mannsaaker +Copyright (C) 2004 Jimmy Olsen, Dagfinn Ilmari Manns??ker Documented and updated to use Munin::Plugin::SNMP by Matthew Boyle. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/plugins/node.d/snmp__winload.in new/munin-2.0.66/plugins/node.d/snmp__winload.in --- old/munin-2.0.64/plugins/node.d/snmp__winload.in 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/plugins/node.d/snmp__winload.in 2021-01-06 21:16:52.000000000 +0100 @@ -1,7 +1,7 @@ #!@@PERL@@ # -*- perl -*- # -# Copyright (C) 2004-2006 Jimmy Olsen, Dagfinn Ilmari Mannsaaker +# Copyright (C) 2004-2006 Jimmy Olsen, Dagfinn Ilmari Manns??ker # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/plugins/node.d/snmp__winmem.in new/munin-2.0.66/plugins/node.d/snmp__winmem.in --- old/munin-2.0.64/plugins/node.d/snmp__winmem.in 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/plugins/node.d/snmp__winmem.in 2021-01-06 21:16:52.000000000 +0100 @@ -50,7 +50,7 @@ =head1 AUTHOR -Copyright (C) 2004-2006 Jimmy Olsen, Dagfinn Ilmari Mannsaaker +Copyright (C) 2004-2006 Jimmy Olsen, Dagfinn Ilmari Manns??ker Documented and updated to use Munin::Plugin::SNMP by Matthew Boyle. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/plugins/node.d/squid_objectsize.in new/munin-2.0.66/plugins/node.d/squid_objectsize.in --- old/munin-2.0.64/plugins/node.d/squid_objectsize.in 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/plugins/node.d/squid_objectsize.in 2021-01-06 21:16:52.000000000 +0100 @@ -17,7 +17,7 @@ =head1 AUTHOR -Copyright 2008 Bjorn Ruberg +Copyright 2008 Bj??rn Ruberg =head1 NOTES diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/plugins/node.d/tomcat_jvm.in new/munin-2.0.66/plugins/node.d/tomcat_jvm.in --- old/munin-2.0.64/plugins/node.d/tomcat_jvm.in 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/plugins/node.d/tomcat_jvm.in 2021-01-06 21:16:52.000000000 +0100 @@ -50,7 +50,7 @@ =head1 AUTHOR -Rune Nordb?e Skillingstad <[email protected]> +Rune Nordb??e Skillingstad <[email protected]> =head1 LICENSE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/plugins/node.d/varnish_.in new/munin-2.0.66/plugins/node.d/varnish_.in --- old/munin-2.0.64/plugins/node.d/varnish_.in 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/plugins/node.d/varnish_.in 2021-01-06 21:16:52.000000000 +0100 @@ -4,7 +4,7 @@ # varnish_ - Munin plugin to for Varnish # Copyright (C) 2009 Redpill Linpro AS # -# Author: Kristian Lyngstol <[email protected]> +# Author: Kristian Lyngst??l <[email protected]> # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -72,13 +72,13 @@ =head1 PATCHES-TO -Please send patches to Kristian Lyngstol <[email protected]> +Please send patches to Kristian Lyngst??l <[email protected]> and/or [email protected] for significant changes. Munin SVN is the authoritative repository for this plugin. =head1 AUTHOR -Kristian Lyngstol <[email protected]> +Kristian Lyngst??l <[email protected]> =head1 LICENSE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/plugins/node.d.cygwin/df.in new/munin-2.0.66/plugins/node.d.cygwin/df.in --- old/munin-2.0.64/plugins/node.d.cygwin/df.in 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/plugins/node.d.cygwin/df.in 2021-01-06 21:16:52.000000000 +0100 @@ -33,7 +33,7 @@ =head1 AUTHOR -Erik Inge Bols? <[email protected]> +Erik Inge Bols?? <[email protected]> =head1 LICENSE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/plugins/node.d.cygwin/netstat.in new/munin-2.0.66/plugins/node.d.cygwin/netstat.in --- old/munin-2.0.64/plugins/node.d.cygwin/netstat.in 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/plugins/node.d.cygwin/netstat.in 2021-01-06 21:16:52.000000000 +0100 @@ -17,7 +17,7 @@ =head1 AUTHOR -Erik Inge Bols? <[email protected]> +Erik Inge Bols?? <[email protected]> Based on node.d.linux/netstat, by unknown author. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/plugins/node.d.debug/env.in new/munin-2.0.66/plugins/node.d.debug/env.in --- old/munin-2.0.64/plugins/node.d.debug/env.in 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/plugins/node.d.debug/env.in 2021-01-06 21:16:52.000000000 +0100 @@ -11,7 +11,7 @@ =head1 AUTHOR -Copyright (C) 2004 Dagfinn Ilmari Mannsaaker +Copyright (C) 2004 Dagfinn Ilmari Manns??ker =head1 LICENSE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/plugins/node.d.debug/id.in new/munin-2.0.66/plugins/node.d.debug/id.in --- old/munin-2.0.64/plugins/node.d.debug/id.in 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/plugins/node.d.debug/id.in 2021-01-06 21:16:52.000000000 +0100 @@ -13,7 +13,7 @@ =head1 AUTHOR -Copyright (C) 2006 Dagfinn Ilmari Mannsaaker <[email protected]> +Copyright (C) 2006 Dagfinn Ilmari Manns??ker <[email protected]> =head1 LICENSE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/plugins/node.d.linux/apt_all.in new/munin-2.0.66/plugins/node.d.linux/apt_all.in --- old/munin-2.0.64/plugins/node.d.linux/apt_all.in 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/plugins/node.d.linux/apt_all.in 2021-01-06 21:16:52.000000000 +0100 @@ -114,6 +114,14 @@ @releases = guess_releases() unless @releases; +sub get_clean_release_fieldname { + my ($fieldname) = @_; + # apply some minor URI-like substitution (avoiding ambiguity between slash and hyphen) + $fieldname =~ s#/#_2F#g; + return clean_fieldname($fieldname); +} + + sub print_state() { if (-l $statefile) { die("$statefile is a symbolic link, refusing to read it."); @@ -128,7 +136,7 @@ or die("Couldn't open state file $statefile for reading."); while (my $line = <STATE>) { foreach my $release (@releases) { - my $release_cleaned = clean_fieldname($release); + my $release_cleaned = get_clean_release_fieldname($release); # print only lines that are exected for the currently requested releases if ($line =~ /^(hold|pending)_$release_cleaned\.(value|extinfo)/) { print $line ; @@ -194,7 +202,7 @@ push (@pending, @remove ) if @remove; close APT; - my $release_cleaned = clean_fieldname($release); + my $release_cleaned = get_clean_release_fieldname($release); print STATE "pending_$release_cleaned.value ", scalar (@pending), "\n"; if (@pending) { print STATE "pending_$release_cleaned.extinfo ", join (' ', @pending), "\n"; @@ -234,7 +242,7 @@ print "graph_category system\n"; foreach my $release (@releases) { - my $release_cleaned = clean_fieldname($release); + my $release_cleaned = get_clean_release_fieldname($release); print "pending_$release_cleaned.label pending ($release)\n"; print "pending_$release_cleaned.warning 0:0\n"; print "hold_$release_cleaned.label hold ($release)\n"; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/plugins/node.d.linux/diskstat_.in new/munin-2.0.66/plugins/node.d.linux/diskstat_.in --- old/munin-2.0.64/plugins/node.d.linux/diskstat_.in 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/plugins/node.d.linux/diskstat_.in 2021-01-06 21:16:52.000000000 +0100 @@ -23,6 +23,36 @@ [diskstat_*] user root +You can sym link to this wildcard plugin in various ways: + +- diskstat_iops_sda +- diskstat_latency_nvme2n1 +- diskstat_throughput_nvme0n1 +- diskstat_throughput_nvme4n1_:mnt:extrastorage +- diskstat_iops_:dev:disk:by-uuid:18edf1f7-961a-4621-8468-92f3981ffabc_:var:www + +The segments are separated by _ and denote: + +- name of the plugin. Always diskstat. +- What you're measuring: iops (IO/s), latency (includes utilization) and + throughput. +- Device: like sda, xvda, nvme0n1 (the latter which, incidentally, still + denotes a drive, not a partition), or a symlink to a device, with the slashes + writtan as colons. So, for example: + diskstat_iops_:dev:disk:by-uuid:18edf1f7-961a-4621-8468-92f3981ffabc +- The last segment is optional, and specifies a custom name. Agan, slashes are + written as colons, so :var:www becomes /var/www. This is especially useful + when using symlinks to /dev/disk/by-uuid. + +As an example, the following: + + diskstat_iops_:dev:disk:by-uuid:18edf1f7-961a-4621-8468-92f3981ffabc_:var:www + +Creates an io/s graph for +/dev/disk/by-uuid/18edf1f7-961a-4621-8468-92f3981ffabc and names it /var/www. +Without a custom name, the link is followed and the normal device name is used +(like sdb). + =head1 INTERPRETATION Among the more self-describing or well-known values like C<throughput> @@ -218,7 +248,7 @@ # needed from here on my $basename = basename($0); -my ( $mode, $device ) = $basename =~ m/diskstat_(\w+)_([-+:\w]+)$/; +my ( $mode, $device, $name_override ) = $basename =~ m/diskstat_([-+:a-zA-Z0-9]+)_([-+:a-zA-Z0-9]+)(?:_([-+:\w]+))?$/; if ( not defined $device ) { croak @@ -226,6 +256,13 @@ } $device = translate_device_name( $device, 'FROM_FS' ); +if (-l $device) { + $device = basename(readlink($device)); +} + +if (defined $name_override) { + $name_override = translate_device_name( $name_override, 'FROM_FS' ); +} ########## # config # @@ -239,10 +276,18 @@ $pretty_device = translate_devicemapper_name($device); } + my $fullname; + if ( defined $name_override && $name_override ne "" ) { + $fullname = $name_override; + } + else { + $fullname = "/dev/$pretty_device"; + } + if ( $mode eq 'latency' ) { print <<EOF; -graph_title Disk latency for /dev/$pretty_device +graph_title Disk latency for $fullname graph_args --base 1000 graph_category disk @@ -273,7 +318,7 @@ elsif ( $mode eq 'throughput' ) { print <<EOF; -graph_title Disk throughput for /dev/$pretty_device +graph_title Disk throughput for $fullname graph_args --base 1024 graph_vlabel Bytes/second graph_category disk @@ -290,7 +335,7 @@ elsif ( $mode eq 'iops' ) { print <<EOF; -graph_title Disk IOs for /dev/$pretty_device +graph_title Disk IOs for $fullname graph_args --base 1000 graph_vlabel Units/second graph_category disk @@ -578,7 +623,10 @@ if ( $mode eq 'FROM_FS' ) { # Hackaround to mitigate issues with unwisely chosen former separator - if ( not( $device =~ m/dm-\d+/ ) ) { + if ( $device =~ m/uuid/) { + $device =~ tr#:#/#; + } + elsif ( not( $device =~ m/dm-\d+/ ) ) { $device =~ tr#-+:#///#; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/plugins/node.d.linux/memory.in new/munin-2.0.66/plugins/node.d.linux/memory.in --- old/munin-2.0.64/plugins/node.d.linux/memory.in 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/plugins/node.d.linux/memory.in 2021-01-06 21:16:52.000000000 +0100 @@ -85,6 +85,8 @@ "apps "; print "page_tables " if exists $mems{'PageTables'}; + print "per_cpu " if exists $mems{'Percpu'}; + print "swap_cache " if exists $mems{'SwapCached'}; #print "vmalloc_used " if exists $mems{'VmallocUsed'}; @@ -151,6 +153,12 @@ "physical memory addresses.\n"; print "page_tables.colour COLOUR1\n"; } + if (exists $mems{'Percpu'}) { + print "per_cpu.label per_cpu\n"; + print "per_cpu.draw STACK\n"; + print "per_cpu.info Per CPU allocations\n"; + print "per_cpu.colour COLOUR20\n"; + } if (exists $mems{'VmallocUsed'}) { print "vmalloc_used.label vmalloc_used\n"; # print "vmalloc_used.draw STACK\n"; @@ -225,7 +233,7 @@ print "ksm_sharing.info Memory saved by KSM sharing\n"; print "ksm_sharing.colour COLOUR19\n"; } - for my $field (qw(apps buffers swap cached free slab swap_cache page_tables vmalloc_used committed mapped active active_anon active_cache inactive inact_dirty inact_laundry inact_clean shmem)) { + for my $field (qw(apps buffers swap cached free slab swap_cache page_tables per_cpu vmalloc_used committed mapped active active_anon active_cache inactive inact_dirty inact_laundry inact_clean shmem)) { my ($warning, $critical) = get_thresholds($field); my $total = $mems{MemTotal}; $total = $mems{SwapTotal} if($field eq "swap"); @@ -259,6 +267,11 @@ } else { $mems{'PageTables'} = 0; } +if (exists $mems{'Percpu'}) { + print "per_cpu.value ", $mems{'Percpu'}, "\n"; +} else { + $mems{'Percpu'} = 0; +} if (exists $mems{'VmallocUsed'}) { print "vmalloc_used.value ", $mems{'VmallocUsed'}, "\n"; @@ -272,6 +285,7 @@ $mems{'Cached'} ||= 0; $mems{'Slab'} ||= 0; $mems{'PageTables'} ||= 0; +$mems{'Percpu'} ||= 0; $mems{'SwapCached'} ||= 0; $mems{'SwapFree'} ||= 0; $mems{'SwapTotal'} ||= 0; @@ -282,6 +296,7 @@ -$mems{'Cached'} -$mems{'Slab'} -$mems{'PageTables'} + -$mems{'Percpu'} -$mems{'SwapCached'} ,"\n"; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/plugins/node.d.linux/proc.in new/munin-2.0.66/plugins/node.d.linux/proc.in --- old/munin-2.0.64/plugins/node.d.linux/proc.in 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/plugins/node.d.linux/proc.in 2021-01-06 21:16:52.000000000 +0100 @@ -81,11 +81,11 @@ =head1 AUTHOR Trygve Vea <[email protected]> -Kristian Lyngstol <[email protected]> +Kristian Lyngst??l <[email protected]> =head1 THANKS -Thanks to Kristian Lyngstol, I stole most of the initial code in this plugin +Thanks to Kristian Lyngst??l, I stole most of the initial code in this plugin from his varnish_-plugin, which is a really nice outline of how a wildcardplugin should look like. I've added some weird hacks to make it output multigraph. It's pretty ugly, but it works. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/plugins/node.d.linux/sensors_.in new/munin-2.0.66/plugins/node.d.linux/sensors_.in --- old/munin-2.0.64/plugins/node.d.linux/sensors_.in 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/plugins/node.d.linux/sensors_.in 2021-01-06 21:16:52.000000000 +0100 @@ -137,7 +137,7 @@ (?:\.\d+)?)# Zero or one match of '.' char followed by one or more # digits. '?:' means it is not a numbered capture group. - [??\s] # Match degree char or space char + [??\s*] # Match degree, space, or asterisk char C # Match 'C' char (?: # >>>>Match the following statement zero or one time. @@ -154,7 +154,7 @@ (?:\.\d+)?)# Zero or one match of '.' char followed by one or more # digits. '?:' means it is not a numbered capture group. - [??\s] # Match degree char or space char + [??\s*] # Match degree, space, or asterisk char C,?\s* # 'C' followed by optional comma and zero or more spaces (?: # >>>Match the following non-capture group zero or more times (?:crit|hyst(?:eresis)?) # 'crit' or 'hyst' string followed by optional 'eresis' string. @@ -166,7 +166,7 @@ # (Match hyst value) followed by (?:\.\d+)?)# Zero or one match of '.' char followed by one or more # digits. '?:' means it is not a numbered capture group. - [??\s]C # Match degree char or space char, and then 'C' char + [??\s*]C # Match degree, space, or asterisk char, and then 'C' char )? # >>>end of group \) # ')' char )? # >>>>end of group @@ -279,7 +279,7 @@ exit 0; } - unless ($text =~ /[?? ]C/) { + unless ($text =~ /[??\s*]C/) { print "no (no temperature readings)\n"; exit 0; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/plugins/node.d.linux/vserver_cpu_.in new/munin-2.0.66/plugins/node.d.linux/vserver_cpu_.in --- old/munin-2.0.64/plugins/node.d.linux/vserver_cpu_.in 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/plugins/node.d.linux/vserver_cpu_.in 2021-01-06 21:16:52.000000000 +0100 @@ -36,7 +36,9 @@ =head1 AUTHOR -Copyright (C) 2006-2008 Holger Levsen and Micah Anderson +Copyright (C) 2006-2008 Holger Levsen + +Copyright (C) 2006-2008 Micah Anderson =head1 LICENSE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/plugins/node.d.netbsd/interrupts.in new/munin-2.0.66/plugins/node.d.netbsd/interrupts.in --- old/munin-2.0.64/plugins/node.d.netbsd/interrupts.in 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/plugins/node.d.netbsd/interrupts.in 2021-01-06 21:16:52.000000000 +0100 @@ -2,7 +2,7 @@ # # Plugin to monitor the number of interrupts and context switches on a system. # -# Idea and base from Ragnar Wisl?ff. +# Idea and base from Ragnar Wisl??ff. # # Usage: Link or copy into /etc/munin/node.d/ # diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/munin-2.0.64/plugins/plugin.sh.in new/munin-2.0.66/plugins/plugin.sh.in --- old/munin-2.0.64/plugins/plugin.sh.in 2020-07-09 00:50:32.000000000 +0200 +++ new/munin-2.0.66/plugins/plugin.sh.in 2021-01-06 21:16:52.000000000 +0100 @@ -99,8 +99,8 @@ if [ -n "$1" ] && [ -n "$2" ]; then echo "$1" | awk "BEGIN { FS=\":\"; OFS=\":\" } - \$1 ~ /.*%/ {\$1 = $2 * substr(\$1, 0, length(\$1) - 1) / 100} - \$2 ~ /.*%/ {\$2 = $2 * substr(\$2, 0, length(\$2) - 1) / 100} + \$1 ~ /.*%/ {\$1 = $2 * substr(\$1, 1, length(\$1) - 1) / 100} + \$2 ~ /.*%/ {\$2 = $2 * substr(\$2, 1, length(\$2) - 1) / 100} { print }" fi
