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

Reply via email to