[-]
[+]
|
Changed |
munin.changes
|
|
[-]
[+]
|
Changed |
munin.spec
^
|
|
[-]
[+]
|
Deleted |
munin-2.0.0.tar.bz2/node/_bin/munin-async-client.in
^
|
@@ -1,133 +0,0 @@
-#! @@PERL@@
-# -*- cperl -*-
-#
-# Copyright (C) 2010 Steve Schnepp
-#
-# 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 the Free Software Foundation; version 2 dated June,
-# 1991.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# $Id: munin-async-client.in 4194 2011-05-18 11:47:38Z steve.schnepp $
-
-use strict;
-use warnings;
-
-use Sys::Hostname;
-use Data::Dumper;
-use Getopt::Long;
-use Pod::Usage;
-
-use Munin::Node::SpoolReader;
-
-# Disable buffering
-$| = 1;
-
-my $SPOOLDIR = "@@SPOOLDIR@@";
-my $hostname = hostname();
-chomp($hostname);
-
-my $spoolfetch;
-my $vectorfetch;
-
-my $verbose;
-my $debug;
-my $help;
-
-GetOptions(
- "spooldir|s=s" => \$SPOOLDIR,
- "hostname=s" => \$hostname,
-
- "spoolfetch" => \$spoolfetch,
- "vectorfetch" => \$vectorfetch,
-
- "help|h" => \$help,
- "verbose|v" => \$verbose,
- "debug" => \$debug,
-) or pod2usage(1);
-if ($help) {
- pod2usage(1);
-}
-
-
-
-# Use STDIN/STDOUT, in order to be :
-# 1. secure over internet (SSH), munin-node needs only
-# to listen on localhost:4949
-# 2. very simple to launch
-
-my $spoolreader = Munin::Node::SpoolReader->new(
- spooldir => $SPOOLDIR,
-);
-
-die "spooldir [$SPOOLDIR] not found" unless -d $SPOOLDIR;
-
-print "# munin node at $hostname\n";
-
-while (my $line = <>) {
- if ($line =~ m/^list/) {
- print $spoolreader->list();
- } elsif ($line =~ m/^config (\w+)/) {
- # XXX - Vector-fetching is disabled for now
- print ".\n";
- } elsif ($vectorfetch && $line =~ m/^fetch (\w+)/) {
- # Fetching all values since last time
-
- # XXX - Vector-fetching is disabled for now
- print ".\n";
- } elsif ($line =~ m/^spoolfetch (\d+)/) {
- my $last_epoch = $1;
- print $spoolreader->fetch($last_epoch);
- print ".\n";
- } elsif ($spoolfetch && $line =~ m/^cap/) {
- print "cap spool\n";
- } elsif ($line =~ m/^quit/) {
- exit;
- } else {
- print "# Unknown command.\n";
- }
-}
-
-sub cat_file {
- my $filename = shift;
- return if ! -r $filename;
-
- open(FILE, "$filename");
- while(<FILE>) {
- # remove line starting with .
- next if m/^\./;
- print $_;
- }
- close(FILE);
-}
-
-__END__
-
-=head1 NAME
-
-munin-async-client - A program to replay spooled munin-node calls
-
-=head1 SYNOPSIS
-
-munin-async-client [options]
-
- Options:
- -s --spooldir <spooldir> Directory for spooled data [@@SPOOLDIR@@]
- --hostname <hostname> Overrides the hostname [`hostname`]
-
- --spoolfetch Enables the "spool" capability [no]
- --vectorfetch Enables the "vectorized" fetching capability [no]
- Note that without this flag, the "fetch"
- command is disabled.
-
- -v --verbose Be verbose
- -h --help View this message
|
[-]
[+]
|
Deleted |
munin-2.0.0.tar.bz2/node/_bin/munin-async-server.in
^
|
@@ -1,242 +0,0 @@
-#! @@PERL@@
-# -*- cperl -*-
-#
-# Copyright (C) 2010 Steve Schnepp
-#
-# 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 the Free Software Foundation; version 2 dated June,
-# 1991.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# $Id: munin-async-server.in 4530 2012-01-02 12:43:10Z steve.schnepp $
-
-use strict;
-use warnings;
-
-use IO::Socket;
-use IO::File;
-use File::Path qw(mkpath);
-use Getopt::Long;
-use Pod::Usage;
-
-use Munin::Node::SpoolWriter;
-
-my $host = "localhost:4949";
-my $SPOOLDIR = "@@SPOOLDIR@@";
-my $do_fork;
-my $verbose;
-my $debug;
-my $help;
-
-
-GetOptions(
- "host=s" => \$host,
- "spooldir|s=s" => \$SPOOLDIR,
-
- "fork" => \$do_fork,
-
- "help|h" => \$help,
- "verbose|v" => \$verbose,
- "debug" => \$debug,
-) or pod2usage(1);
-if ($help) {
- pod2usage(1);
-}
-
-unless (-d $SPOOLDIR) {
- mkpath($SPOOLDIR, { verbose => $verbose, } )
- or die ("Cannot create '$SPOOLDIR': $!");
-}
-
-my $spoolwriter = Munin::Node::SpoolWriter->new(
- spooldir => $SPOOLDIR,
-);
-
-my $process_name = "main";
-
-my $plugin_rate_filename = "$SPOOLDIR/plugin_rates";
-
-my @plugins;
-{
- print STDERR "[$$][$process_name] Reading config from $host\n" if $verbose;
- my $sock = new IO::Socket::INET(
- PeerAddr => "$host",
- Proto => 'tcp'
- ) || die "Error creating socket: $!";
-
- print $sock "cap multigraph\n";
- print $sock "list\n";
- <$sock>; # Read the first header comment line
- <$sock>; # Read the multigraph response line
- my $plugins_line = <$sock>;
- chomp($plugins_line);
-
- {
- my $fh_list = IO::File->new(
- "$SPOOLDIR/munin-daemon.list",
- "w",
- );
-
- print $fh_list $plugins_line;
- print $fh_list "\n";
- }
-
- @plugins = split(/ /, $plugins_line);
-}
-
-# Q&D child collection
-$SIG{CHLD} = 'IGNORE';
-
-# now, update regularly...
-# ... but each plugin in its own process to avoid delay-leaking
-my %last_updated;
-MAIN: while(1) {
- my $when = time;
- my $when_next = $when + 3600; # wake up at least every hour
- PLUGIN: foreach my $plugin (@plugins) {
- # See if this plugin should be updated
- my $plugin_rate = get_hash($plugin, $plugin_rate_filename) || 300;
- if ($when < ($last_updated{$plugin} || 0) + $plugin_rate) {
- # not yet, next plugin
- next;
- }
-
- # Should update it
- $last_updated{$plugin} = $when;
- if ($when + $plugin_rate < $when_next) {
- $when_next = $when + $plugin_rate;
- }
-
- if ($do_fork && fork()) {
- # parent, return directly
- next PLUGIN;
- }
- # Setting the command name for a useful top information
- $process_name = "plugin:$plugin";
- local $0 = "munin-async-server [$process_name]";
-
- fetch_data($plugin, $when);
-
-
- # We end here if we forked
- last MAIN if $do_fork;
- }
-
- # Sleep until next plugin exec.
- sleep $when_next - time;
-}
-
-print STDERR "[$$][$process_name] Exiting\n" if $verbose;
-
-sub fetch_data
-{
- my $plugin = shift;
- my $when = shift;
-
- my $sock = new IO::Socket::INET(
- PeerAddr => "$host",
- Proto => 'tcp'
- ) || die "Error creating socket: $!";
- <$sock>; # skip header
-
- print STDERR "[$$][$process_name] asking for config\n" if $verbose;
-
- print $sock "config $plugin\n";
-
- my $output_rows = [];
-
- while(my $line = <$sock>) {
- print STDERR "[sock] $line" if $debug;
- chomp($line);
-
- if ($line =~ m/^\./) {
- # Starting with . => end
- last;
- }
-
- push @$output_rows, $line;
- if ($line =~ m/^update_rate (\d+)/) {
- # The plugin has a special update_rate: overriding it
- # XXX - Doesn't take into account a per field update_rate
-
- # This has to be sent back to the master
- set_hash($plugin, $1, $plugin_rate_filename);
- }
- }
-
- print STDERR "[$$][$process_name] asking for data\n" if $verbose;
- print $sock "fetch $plugin\n";
-
- while(my $line = <$sock>) {
- print STDERR "[sock] $line" if $debug;
- chomp($line);
-
- if ($line =~ m/^\./) {
- # Starting with . => end
- last;
- }
-
- # Save the line
- push @$output_rows, $line;
- }
-
- # Write the whole load into the spool
- $spoolwriter->write($when, $plugin, $output_rows);
-}
-
-sub get_hash
-{
- my ($key, $filename) = @_;
- my %hash;
-
- use Fcntl; # For O_RDWR, O_CREAT, etc.
- use DB_File;
- tie (%hash, 'DB_File', $filename, O_RDWR|O_CREAT, 0666)
- or die "$!";
- my $value = $hash{$key};
- untie(%hash);
-
- return $value;
-}
-
-sub set_hash
-{
- my ($key, $value, $filename) = @_;
- my %hash;
-
- use Fcntl; # For O_RDWR, O_CREAT, etc.
- use DB_File;
- tie (%hash, 'DB_File', $filename, O_RDWR|O_CREAT, 0666)
- or die "$!";
- $hash{$key} = $value;
- untie(%hash);
-}
-
-
-
-__END__
-
-=head1 NAME
-
-munin-async-server - A program to spool munin-node calls
-
-=head1 SYNOPSIS
-
-munin-async-server [options]
-
- Options:
- --host <hostname:port> Connect to this munin-node [localhost:4949]
- -s --spool <spooldir> Store the spooled data in this dir [@@SPOOLDIR@@]
-
- --fork Do fork
- -v --verbose Be verbose
- -h --help View this message
|
[-]
[+]
|
Added |
munin-2.0.1.tar.bz2/.gitignore
^
|
@@ -0,0 +1,3 @@
+*/Build
+*/_build/
+*/blib/
|
[-]
[+]
|
Added |
munin-2.0.1.tar.bz2/.travis.yml
^
|
@@ -0,0 +1,26 @@
+language: perl
+perl:
+ - "5.14"
+ - "5.10"
+branches:
+ only:
+ - master
+ - devel
+install: "/bin/true"
+before_install:
+ - "cpanm --notest File::Copy::Recursive"
+ - "cpanm --notest File::Slurp"
+ - "cpanm --notest HTML::Template"
+ - "cpanm --notest IO::Scalar"
+ - "cpanm --notest IO::Socket::INET6"
+ - "cpanm --notest Log::Log4perl"
+ - "cpanm --notest Module::Build"
+ - "cpanm --notest Module::Build"
+ - "cpanm --notest Net::SNMP"
+ - "cpanm --notest Net::SSLeay"
+ - "cpanm --notest Test::Deep"
+ - "cpanm --notest Test::Differences"
+ - "cpanm --notest Test::LongString"
+ - "cpanm --notest Test::MockModule"
+ - "cpanm --notest Test::MockObject::Extends"
+ - "cpanm --notest Time::HiRes"
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/ChangeLog
^
|
@@ -1,6 +1,27 @@
-*- text -*-
-munin-2.0, r4900, 2012-05-30
+munin-2.0.1, 2012-06-10
+
+Well, first bugfix release.
+SCM has moved from svn to git.
+
+Commits by luke, mwest, steve.schnepp, ssm
+
+Summary :
+
+* remove .storable files if they are unreadable.
+* change version strings to match git workflow
+* fix perms on state dir (D: closes #675593)
+* swallow stderr in cmd and ssh transport
+* remove the graph field in munin timings plugin
+
+Major enhancements to munin-async :
+
+* rename of the process names, it is now munin-async(d).
+* implement automatic cleanup
+* implement metadata, for the spool to be self-descriptive
+
+munin-2.0.0, r4900, 2012-05-30
It is 2.0-rc7, code wise. Only edited the mandatory doc files
(Changelog, UPGRADING, ...)
@@ -354,7 +375,7 @@
wildcard graphs.
* start to migrate munin-run to instance-based M::N::Service
* update munin-node to use a M::N::Service instance.
-* add $Id: ChangeLog 4900 2012-05-30 10:04:09Z steve.schnepp $ keywords where missing.
+* add $Id$ keywords where missing.
* allow # characters to be included in config files, as long as they're preceded by a backslash
* avoid spamming the logfile with debug messages.
* create a directory for storing spool files.
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/Checklist
^
|
@@ -21,14 +21,45 @@
svn --verbose log -r910:1234 | fgrep node.d | grep -w A |
cut -d/ -f 4- | sed s'/(.*//' | xargs ls -ld >/dev/null
+
+# Git release
+
+ We follow the workflow documented at
+ http://nvie.com/posts/a-successful-git-branching-model/
+
+ The tag used here is "2.0.1", exchange this with a current version.
+
+ * Create release branch from "devel"
+
+ git checkout -b release-2.0.1 devel
+
* Update ChangeLog
- * cd ..; svn cp svn://janl@munin-monitoring.org/munin/trunk \
- svn://janl@munin-monitoring.org/munin/tags/1.3.4
+ $EDITOR Changelog
+ git commit -m 'Update changelog for release' -- ChangeLog
+
+ * Merge release branch to master
+
+ git checkout master
+ git merge --no-ff release-2.0.1
+
+ (handle any conflicts, and "git commit" the result)
+
+ * Tag on master
+
+ git tag -a -s -m 'Release 2.0.1' 2.0.1 master
+
+ * Merge the release branch back to devel
+
+ git checkout devel
+ git merge --no-ff release-2.0.1
+
+# Make tarball from tag
- * Update RELEASE in the tag
+ git checkout 2.0.1
+ make tar
- * make tar
+# Propaganda
* Broadcast the good news:
1. make a sha256sum : sha256sum munin-version.tar.gz > munin-version.tar.gz.sha256sum
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/Makefile
^
|
@@ -2,7 +2,7 @@
#
# Gnu make only. Seriously.
#
-# $Id: Makefile 4820 2012-04-22 09:07:21Z steve.schnepp $
+# $Id$
# Defaults/paths. Allows $(CONFIG) to be overrided by
# make command line
@@ -12,7 +12,7 @@
include $(DEFAULTS)
include $(CONFIG)
-RELEASE := $(shell cat RELEASE)
+RELEASE := $(shell $(CURDIR)/getversion)
INSTALL_PLUGINS ?= "auto manual contrib snmpauto"
INSTALL := ./install-sh
DIR := $(shell /bin/pwd | sed 's/^.*\///')
@@ -139,7 +139,8 @@
mkdir -p $(PLUGSTATE)
$(CHOWN) $(PLUGINUSER):$(GROUP) $(PLUGSTATE)
- $(CHMOD) 0775 $(PLUGSTATE)
+ # using g+rwxs, so plugins can create and modify their state file without help
+ $(CHMOD) 02775 $(PLUGSTATE)
$(CHMOD) 0755 $(CONFDIR)/plugin-conf.d
for p in build/plugins/node.d/* build/plugins/node.d.$(OSTYPE)/* ; do \
@@ -162,8 +163,8 @@
install-async-prime:
mkdir -p $(LIBDIR)
- $(INSTALL) -m 0755 build/node/_bin/munin-async-client $(LIBDIR)/
- $(INSTALL) -m 0755 build/node/_bin/munin-async-server $(LIBDIR)/
+ $(INSTALL) -m 0755 build/node/_bin/munin-async $(LIBDIR)/
+ $(INSTALL) -m 0755 build/node/_bin/munin-asyncd $(LIBDIR)/
install-node-prime: install-node-pre install-node
@@ -310,16 +311,13 @@
######################################################################
# DIST RULES
-tar-pre:
- (! grep MAINTAINER Makefile.config)
- find . -name '*~' -exec rm -fv {} \;
- PWD=`pwd`
- -rm -f ../munin-$(VERSION)
- (cd ..; ln -s $(PWD) munin-$(VERSION))
-
-tar: tar-pre
- GZIP=-9 tar -C .. --dereference --exclude .svn -cvzf ../munin-$(RELEASE).tar.gz munin-$(VERSION)/
-
+tar:
+ git archive --prefix=munin-$(RELEASE)/ --format=tar --output ../munin-$(RELEASE).tar HEAD
+ mkdir -p munin-$(RELEASE)/
+ echo $(RELEASE) > munin-$(RELEASE)/RELEASE
+ tar rf ../munin-$(RELEASE).tar --owner=root --group=root munin-$(RELEASE)/RELEASE
+ rm -rf munin-$(RELEASE)
+ gzip -f -9 ../munin-$(RELEASE).tar
suse-pre:
(! grep MAINTAINER Makefile.config)
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/README
^
|
@@ -1,6 +1,6 @@
This is Munin.
-Munin is distrubuted under the GNU GPL version 2. Munin is copyrighted
+Munin is distributed under the GNU GPL version 2. Munin is copyrighted
2002-2012 by its various authors as identified in the source files.
Munin is homed at http://munin-monitoring.org/. After you have completed
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/RELEASE
^
|
@@ -1 +1 @@
-2.0.0
+2.0.1
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/common/lib/Munin/Common/Config.pm
^
|
@@ -1,6 +1,6 @@
package Munin::Common::Config;
-# $Id: Config.pm 4829 2012-04-30 13:14:18Z steve.schnepp $
+# $Id$
use warnings;
use strict;
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/common/lib/Munin/Common/Defaults.pm
^
|
@@ -4,7 +4,7 @@
# If you change the class path take a look in get_defaults too, please!
package Munin::Common::Defaults;
-# $Id: Defaults.pm 4811 2012-04-14 21:36:11Z kenyon $
+# $Id$
use English qw(-no_match_vars);
use File::Basename qw(dirname);
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/common/lib/Munin/Common/TLS.pm
^
|
@@ -1,6 +1,6 @@
package Munin::Common::TLS;
-# $Id: TLS.pm 3998 2010-11-12 19:33:52Z bldewolf $
+# $Id$
use warnings;
use strict;
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/common/lib/Munin/Common/TLSClient.pm
^
|
@@ -1,7 +1,7 @@
package Munin::Common::TLSClient;
use base qw(Munin::Common::TLS);
-# $Id: TLSClient.pm 2431 2009-09-16 10:04:17Z janl $
+# $Id$
use warnings;
use strict;
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/common/lib/Munin/Common/TLSServer.pm
^
|
@@ -1,7 +1,7 @@
package Munin::Common::TLSServer;
use base qw(Munin::Common::TLS);
-# $Id: TLSServer.pm 2431 2009-09-16 10:04:17Z janl $
+# $Id$
use warnings;
use strict;
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/common/lib/Munin/Common/Timeout.pm
^
|
@@ -1,7 +1,7 @@
use warnings;
use strict;
-# $Id: Timeout.pm 4527 2011-12-20 16:18:58Z steve.schnepp $
+# $Id$
package Munin::Common::Timeout;
use base qw(Exporter);
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/getversion
^
|
@@ -1,30 +1,40 @@
#!/bin/sh
-# Be compatible here, use `` and such old stuff
-VERSION=`cat RELEASE`
-
-if ls -d .svn > /dev/null 2>&1; then
- INFO_CMD="svn info"
-elif ls -d .git > /dev/null 2>&1; then
- if which git-svn > /dev/null 2>&1; then
- INFO_CMD="git-svn info"
- else
- INFO_CMD="git svn info"
- fi
+# Generate a version string for use when building.
+#
+# If RELEASE exists, and is non-empty, use the contents of that file.
+# This is in case we're building from a tarball.
+#
+# If we're inside a git tree:
+#
+# - For the "devel" branch, generate a "devel-date-hash" version.
+#
+# - For other branches, use "git describe". This should result in a
+# clean version for the tagged releases on "master", and a
+# version-revision on the packaging tags.
+#
+# If we're still looking for a version, use "unknown".
+
+current_git_branch() {
+ git branch | awk '$1 == "*" {print $2}'
+}
+
+generate_version_string() {
+ branch="$(current_git_branch)"
+ case "${branch}" in
+ master)
+ git describe
+ ;;
+ *)
+ git log -n 1 --pretty="${branch}-%ad-%tc" --date=short
+ ;;
+ esac
+}
+
+if [ -s "RELEASE" ]; then
+ cat RELEASE
+elif [ "$(git rev-parse --is-inside-work-tree 2>/dev/null)" = "true" ]; then
+ generate_version_string
else
- INFO_CMD="echo Revision: <UNKNOWN>"
+ echo "unknown"
fi
-
-case $VERSION in
- svn-*)
- R=`$INFO_CMD | awk '/^Revision: / { print $2; }'` || {
- echo Unable to get svn revision >&2
- exit 1
- }
- VERSION="$VERSION-r$R"
- ;;
-esac
-
-echo $VERSION
-
-
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/master/MasterBuilder.pm
^
|
@@ -1,6 +1,6 @@
package MasterBuilder;
-# $Id: MasterBuilder.pm 2559 2009-10-10 16:08:43Z feiner.tom $
+# $Id$
use base qw(Module::Build);
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/master/_bin/munin-cgi-graph.in
^
|
@@ -18,7 +18,7 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
-$Id: munin-cgi-graph.in 4896 2012-05-30 09:40:07Z steve.schnepp $
+$Id$
=end comment
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/master/_bin/munin-datafile2storable.in
^
|
@@ -1,5 +1,5 @@
#!@@PERL@@
-# $Id: munin-datafile2storable.in 3989 2010-11-09 19:10:33Z janl $
+# $Id$
use strict;
use warnings;
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/master/_bin/munin-graph.in
^
|
@@ -18,7 +18,7 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
-$Id: munin-graph.in 4345 2011-08-27 07:42:58Z steve.schnepp $
+$Id$
=end comment
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/master/_bin/munin-html.in
^
|
@@ -20,7 +20,7 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-$Id: munin-html.in 4835 2012-05-06 09:14:04Z matthias $
+$Id$
=end comment
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/master/_bin/munin-limits.in
^
|
@@ -19,7 +19,7 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-$Id: munin-limits.in 4835 2012-05-06 09:14:04Z matthias $
+$Id$
=end comment
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/master/_bin/munin-storable2datafile.in
^
|
@@ -1,5 +1,5 @@
#!@@PERL@@
-# $Id: munin-storable2datafile.in 3989 2010-11-09 19:10:33Z janl $
+# $Id$
use strict;
use warnings;
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/master/_bin/munin-update.in
^
|
@@ -4,7 +4,7 @@
use warnings;
use strict;
-# $Id: munin-update.in 4811 2012-04-14 21:36:11Z kenyon $
+# $Id$
use English qw(-no_match_vars);
use Getopt::Long;
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/master/lib/Munin/Master/Config.pm
^
|
@@ -2,7 +2,7 @@
use base qw(Munin::Common::Config);
-# $Id: Config.pm 4820 2012-04-22 09:07:21Z steve.schnepp $
+# $Id$
# Notes about config data structure:
#
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/master/lib/Munin/Master/GraphOld.pm
^
|
@@ -26,7 +26,7 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
-$Id: GraphOld.pm 4791 2012-04-01 18:27:56Z steve.schnepp $
+$Id$
=end comment
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/master/lib/Munin/Master/Group.pm
^
|
@@ -2,7 +2,7 @@
use base qw(Munin::Master::GroupRepository);
-# $Id: Group.pm 3936 2010-10-05 18:38:37Z ligne $
+# $Id$
use warnings;
use strict;
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/master/lib/Munin/Master/GroupRepository.pm
^
|
@@ -2,7 +2,7 @@
use base qw(Munin::Master::Config);
-# $Id: GroupRepository.pm 3935 2010-10-05 17:53:32Z ligne $
+# $Id$
use warnings;
use strict;
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/master/lib/Munin/Master/HTMLOld.pm
^
|
@@ -28,7 +28,7 @@
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301 USA.
-$Id: HTMLOld.pm 4835 2012-05-06 09:14:04Z matthias $
+$Id$
This is the hierarchy of templates
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/master/lib/Munin/Master/Host.pm
^
|
@@ -2,7 +2,7 @@
use base qw(Munin::Master::Group);
-# $Id: Host.pm 3920 2010-10-02 15:59:22Z ligne $
+# $Id$
use warnings;
use strict;
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/master/lib/Munin/Master/LimitsOld.pm
^
|
@@ -26,7 +26,7 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-$Id: LimitsOld.pm 4879 2012-05-23 10:57:05Z ssm $
+$Id$
=end comment
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/master/lib/Munin/Master/Logger.pm
^
|
@@ -1,6 +1,6 @@
package Munin::Master::Logger;
-# $Id: Logger.pm 3416 2010-03-13 12:10:50Z steve.schnepp $
+# $Id$
=head1 NAME
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/master/lib/Munin/Master/Node.pm
^
|
@@ -1,6 +1,6 @@
package Munin::Master::Node;
-# $Id: Node.pm 4839 2012-05-06 21:53:34Z ssm $
+# $Id$
# This module is used by UpdateWorker to keep in touch with a node and
# parse some of the output.
@@ -96,28 +96,30 @@
# Add any parameter to the cmd
my $remote_connection_cmd = "/usr/bin/ssh -p" . $uri->port . " $user_part" . $uri->host . " $remote_cmd $params";
- # Open a double pipe
- use IPC::Open2;
+ # Open a triple pipe
+ use IPC::Open3;
$self->{reader} = new IO::Handle();
$self->{writer} = new IO::Handle();
+ $self->{stderr} = new IO::Handle();
- DEBUG "[DEBUG] open2($remote_connection_cmd)";
- $self->{pid} = open2($self->{reader}, $self->{writer}, $remote_connection_cmd);
+ DEBUG "[DEBUG] open3($remote_connection_cmd)";
+ $self->{pid} = open3($self->{writer}, $self->{reader}, $self->{stderr}, $remote_connection_cmd);
ERROR "Failed to connect to node $self->{address} : $!" unless $self->{pid};
} elsif ($uri->scheme eq "cmd") {
# local commands should ignore the username, url and host
my $local_cmd = $uri->path;
my $local_pipe_cmd = $local_cmd . (defined $params ? " $params" : "");
- # Open a double pipe
- use IPC::Open2;
+ # Open a triple pipe
+ use IPC::Open3;
$self->{reader} = new IO::Handle();
$self->{writer} = new IO::Handle();
+ $self->{stderr} = new IO::Handle();
- DEBUG "[DEBUG] open2($local_pipe_cmd)";
- $self->{pid} = open2($self->{reader}, $self->{writer}, $local_pipe_cmd);
+ DEBUG "[DEBUG] open3($local_pipe_cmd)";
+ $self->{pid} = open3($self->{writer}, $self->{reader}, $self->{stderr}, $local_pipe_cmd);
ERROR "Failed to execute local command: $!" unless $self->{pid};
} else {
ERROR "Unknown scheme : " . $uri->scheme;
@@ -185,6 +187,10 @@
$self->{reader} = undef;
$self->{writer} = undef;
+ # Close stderr if needed
+ close $self->{stderr} if $self->{stderr};
+ $self->{stderr} = undef if $self->{stderr};
+
# Reap the underlying process
waitpid($self->{pid}, 0) if (defined $self->{pid});
}
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/master/lib/Munin/Master/ProcessManager.pm
^
|
@@ -1,6 +1,6 @@
package Munin::Master::ProcessManager;
-# $Id: ProcessManager.pm 4524 2011-12-20 11:36:25Z steve.schnepp $
+# $Id$
use warnings;
use strict;
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/master/lib/Munin/Master/Update.pm
^
|
@@ -1,6 +1,6 @@
package Munin::Master::Update;
-# $Id: Update.pm 4203 2011-05-30 14:15:45Z steve.schnepp $
+# $Id$
use warnings;
use strict;
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/master/lib/Munin/Master/UpdateWorker.pm
^
|
@@ -1,7 +1,7 @@
package Munin::Master::UpdateWorker;
use base qw(Munin::Master::Worker);
-# $Id: UpdateWorker.pm 4811 2012-04-14 21:36:11Z kenyon $
+# $Id$
use warnings;
use strict;
@@ -81,7 +81,7 @@
global => {},
);
- INFO "[INFO] starting work for $nodedesignation.\n";
+ INFO "[INFO] starting work in $$ for $nodedesignation.\n";
my $done = $self->{node}->do_in_session(sub {
eval {
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/master/lib/Munin/Master/Utils.pm
^
|
@@ -1,7 +1,7 @@
package Munin::Master::Utils;
# -*- cperl -*-
-# $Id: Utils.pm 4445 2011-10-18 08:07:12Z steve.schnepp $
+# $Id$
use strict;
use warnings;
@@ -886,9 +886,16 @@
sub munin_read_storable {
my ($storable_filename, $default) = @_;
- return Storable::retrieve($storable_filename) if (-e $storable_filename);
+ if (-e $storable_filename) {
+ my $storable = eval { Storable::retrieve($storable_filename); };
+ return $storable unless $@;
+
+ # Didn't managed to read storable.
+ # Removing it as it is already torched anyway.
+ unlink($storable_filename);
+ }
- # Default
+ # return default if no better option
return $default;
}
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/master/lib/Munin/Master/Worker.pm
^
|
@@ -1,6 +1,6 @@
package Munin::Master::Worker;
-# $Id: Worker.pm 3934 2010-10-05 17:44:32Z ligne $
+# $Id$
use warnings;
use strict;
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/node/NodeBuilder.pm
^
|
@@ -1,6 +1,6 @@
package NodeBuilder;
-# $Id: NodeBuilder.pm 2554 2009-10-09 18:02:34Z feiner.tom $
+# $Id$
use base qw(Module::Build);
|
[-]
[+]
|
Added |
munin-2.0.1.tar.bz2/node/_bin/munin-async.in
^
|
@@ -0,0 +1,159 @@
+#! @@PERL@@
+# -*- cperl -*-
+#
+# Copyright (C) 2010 Steve Schnepp
+#
+# 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 the Free Software Foundation; version 2 dated June,
+# 1991.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# $Id$
+
+use strict;
+use warnings;
+
+use Sys::Hostname;
+use Data::Dumper;
+use Getopt::Long;
+use Pod::Usage;
+
+use Munin::Node::SpoolReader;
+use Munin::Node::SpoolWriter;
+
+# Disable buffering
+$| = 1;
+
+my $SPOOLDIR = "@@SPOOLDIR@@";
+my $hostname;
+my $overridehost;
+
+my $spoolfetch;
+my $vectorfetch;
+my $cleanup;
+my $cleanupandexit;
+
+my $verbose;
+my $debug;
+my $help;
+
+GetOptions(
+ "spooldir|s=s" => \$SPOOLDIR,
+ "hostname=s" => \$overridehost,
+ "cleanup" => \$cleanup,
+ "cleanupandexit" => \$cleanupandexit,
+
+ "spoolfetch" => \$spoolfetch,
+ "vectorfetch" => \$vectorfetch,
+
+ "help|h" => \$help,
+ "verbose|v" => \$verbose,
+ "debug" => \$debug,
+) or pod2usage(1);
+if ($help) {
+ pod2usage(1);
+}
+
+
+if ($cleanupandexit) {
+ cleanup();
+ exit;
+}
+
+
+# Use STDIN/STDOUT, in order to be :
+# 1. secure over internet (SSH), munin-node needs only
+# to listen on localhost:4949
+# 2. very simple to launch
+
+my $spoolreader = Munin::Node::SpoolReader->new(
+ spooldir => $SPOOLDIR,
+);
+
+$hostname = $spoolreader->get_metadata("hostname") || hostname();
+$hostname = $overridehost if $overridehost;
+chomp($hostname);
+
+die "spooldir [$SPOOLDIR] not found" unless -d $SPOOLDIR;
+
+print "# munin node at $hostname\n";
+
+while (my $line = <>) {
+ if ($line =~ m/^list/) {
+ print $spoolreader->list();
+ } elsif ($line =~ m/^config (\w+)/) {
+ # XXX - Vector-fetching is disabled for now
+ print ".\n";
+ } elsif ($vectorfetch && $line =~ m/^fetch (\w+)/) {
+ # Fetching all values since last time
+
+ # XXX - Vector-fetching is disabled for now
+ print ".\n";
+ } elsif ($line =~ m/^spoolfetch (\d+)/) {
+ my $last_epoch = $1;
+ print $spoolreader->fetch($last_epoch);
+ print ".\n";
+ } elsif ($spoolfetch && $line =~ m/^cap/) {
+ print "cap spool\n";
+ } elsif ($line =~ m/^quit/) {
+ last;
+ } else {
+ print "# Unknown command.\n";
+ }
+}
+
+cleanup() if $cleanup;
+exit;
+
+sub cleanup {
+ my $spoolwriter = Munin::Node::SpoolWriter->new(
+ spooldir => $SPOOLDIR,
+ );
+ $spoolwriter->cleanup();
+}
+
+sub cat_file {
+ my $filename = shift;
+ return if ! -r $filename;
+
+ open(FILE, "$filename");
+ while(<FILE>) {
+ # remove line starting with .
+ next if m/^\./;
+ print $_;
+ }
+ close(FILE);
+}
+
+__END__
+
+=head1 NAME
+
+munin-async - A program to replay spooled munin-node calls
+
+=head1 SYNOPSIS
+
+munin-async [options]
+
+ Options:
+ -s --spooldir <spooldir> Directory for spooled data [@@SPOOLDIR@@]
+ --hostname <hostname> Overrides the hostname [`hostname`]
+ --cleanup Clean up the spooldir after interactive session completes
+ --cleanupandexit Clean up the spooldir and exit (non-interactive)
+
+ --spoolfetch Enables the "spool" capability [no]
+ --vectorfetch Enables the "vectorized" fetching capability [no]
+ Note that without this flag, the "fetch"
+ command is disabled.
+
+ -v --verbose Be verbose
+ -h --help View this message
|
[-]
[+]
|
Added |
munin-2.0.1.tar.bz2/node/_bin/munin-asyncd.in
^
|
@@ -0,0 +1,274 @@
+#! @@PERL@@
+# -*- cperl -*-
+#
+# Copyright (C) 2010 Steve Schnepp
+#
+# 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 the Free Software Foundation; version 2 dated June,
+# 1991.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# $Id$
+
+use strict;
+use warnings;
+
+use IO::Socket;
+use IO::File;
+use File::Path qw(mkpath);
+use Getopt::Long;
+use Pod::Usage;
+
+use Munin::Node::SpoolWriter;
+
+my $host = "localhost:4949";
+my $metahostname;
+my $SPOOLDIR = "@@SPOOLDIR@@";
+my $intervalsize = 86400;
+my $retaincount = 7;
+my $nocleanup;
+my $do_fork;
+my $verbose;
+my $debug;
+my $help;
+
+
+GetOptions(
+ "host=s" => \$host,
+ "spooldir|s=s" => \$SPOOLDIR,
+ "interval|i=i" => \$intervalsize,
+ "retain|r=i" => \$retaincount,
+
+ "fork" => \$do_fork,
+
+ "help|h" => \$help,
+ "verbose|v" => \$verbose,
+ "nocleanup|n" => \$nocleanup,
+ "debug" => \$debug,
+) or pod2usage(1);
+if ($help) {
+ pod2usage(1);
+}
+
+unless (-d $SPOOLDIR) {
+ mkpath($SPOOLDIR, { verbose => $verbose, } )
+ or die ("Cannot create '$SPOOLDIR': $!");
+}
+
+my $sock = new IO::Socket::INET(
+ PeerAddr => "$host",
+ Proto => 'tcp'
+) || die "Error creating socket: $!";
+my $nodeheader = <$sock>;
+print $sock "quit\n";
+close ($sock);
+( $metahostname ) = ( $nodeheader =~ /munin node at (\S+)\n/);
+$metahostname = "unknown" unless $metahostname;
+
+my $spoolwriter = Munin::Node::SpoolWriter->new(
+ spooldir => $SPOOLDIR,
+ interval_size => $intervalsize,
+ interval_keep => $retaincount,
+ hostname => $metahostname,
+);
+
+my $process_name = "main";
+
+my $plugin_rate_filename = "$SPOOLDIR/plugin_rates";
+
+my @plugins;
+{
+ print STDERR "[$$][$process_name] Reading config from $host\n" if $verbose;
+ my $sock = new IO::Socket::INET(
+ PeerAddr => "$host",
+ Proto => 'tcp'
+ ) || die "Error creating socket: $!";
+
+ print $sock "cap multigraph\n";
+ print $sock "list\n";
+ <$sock>; # Read the first header comment line
+ <$sock>; # Read the multigraph response line
+ my $plugins_line = <$sock>;
+ chomp($plugins_line);
+
+ {
+ my $fh_list = IO::File->new(
+ "$SPOOLDIR/munin-daemon.list",
+ "w",
+ );
+
+ print $fh_list $plugins_line;
+ print $fh_list "\n";
+ }
+
+ @plugins = split(/ /, $plugins_line);
+}
+
+# Q&D child collection
+$SIG{CHLD} = 'IGNORE';
+
+# now, update regularly...
+# ... but each plugin in its own process to avoid delay-leaking
+my %last_updated;
+my $last_cleanup=0;
+MAIN: while(1) {
+ my $when = time;
+ my $when_next = $when + 3600; # wake up at least every hour
+ PLUGIN: foreach my $plugin (@plugins) {
+ # See if this plugin should be updated
+ my $plugin_rate = get_hash($plugin, $plugin_rate_filename) || 300;
+ if ($when < ($last_updated{$plugin} || 0) + $plugin_rate) {
+ # not yet, next plugin
+ next;
+ }
+
+ # Should update it
+ $last_updated{$plugin} = $when;
+ if ($when + $plugin_rate < $when_next) {
+ $when_next = $when + $plugin_rate;
+ }
+
+ if ($do_fork && fork()) {
+ # parent, return directly
+ next PLUGIN;
+ }
+ # Setting the command name for a useful top information
+ $process_name = "plugin:$plugin";
+ local $0 = "munin-asyncd [$process_name]";
+
+ fetch_data($plugin, $when);
+
+
+ # We end here if we forked
+ last MAIN if $do_fork;
+ }
+
+ $spoolwriter->set_metadata("lastruntime", $when);
+
+ # Clean spool dir
+ if (!$nocleanup && $last_cleanup<(time - 600)) {
+ $last_cleanup = time;
+ $spoolwriter->cleanup();
+ }
+
+ # Sleep until next plugin exec.
+ sleep $when_next - time;
+}
+
+print STDERR "[$$][$process_name] Exiting\n" if $verbose;
+
+sub fetch_data
+{
+ my $plugin = shift;
+ my $when = shift;
+
+ my $sock = new IO::Socket::INET(
+ PeerAddr => "$host",
+ Proto => 'tcp'
+ ) || die "Error creating socket: $!";
+ <$sock>; # skip header
+
+ print STDERR "[$$][$process_name] asking for config\n" if $verbose;
+
+ print $sock "config $plugin\n";
+
+ my $output_rows = [];
+
+ while(my $line = <$sock>) {
+ print STDERR "[sock] $line" if $debug;
+ chomp($line);
+
+ if ($line =~ m/^\./) {
+ # Starting with . => end
+ last;
+ }
+
+ push @$output_rows, $line;
+ if ($line =~ m/^update_rate (\d+)/) {
+ # The plugin has a special update_rate: overriding it
+ # XXX - Doesn't take into account a per field update_rate
+
+ # This has to be sent back to the master
+ set_hash($plugin, $1, $plugin_rate_filename);
+ }
+ }
+
+ print STDERR "[$$][$process_name] asking for data\n" if $verbose;
+ print $sock "fetch $plugin\n";
+
+ while(my $line = <$sock>) {
+ print STDERR "[sock] $line" if $debug;
+ chomp($line);
+
+ if ($line =~ m/^\./) {
+ # Starting with . => end
+ last;
+ }
+
+ # Save the line
+ push @$output_rows, $line;
+ }
+
+ # Write the whole load into the spool
+ $spoolwriter->write($when, $plugin, $output_rows);
+}
+
+sub get_hash
+{
+ my ($key, $filename) = @_;
+ my %hash;
+
+ use Fcntl; # For O_RDWR, O_CREAT, etc.
+ use DB_File;
+ tie (%hash, 'DB_File', $filename, O_RDWR|O_CREAT, 0666)
+ or die "$!";
+ my $value = $hash{$key};
+ untie(%hash);
+
+ return $value;
+}
+
+sub set_hash
+{
+ my ($key, $value, $filename) = @_;
+ my %hash;
+
+ use Fcntl; # For O_RDWR, O_CREAT, etc.
+ use DB_File;
+ tie (%hash, 'DB_File', $filename, O_RDWR|O_CREAT, 0666)
+ or die "$!";
+ $hash{$key} = $value;
+ untie(%hash);
+}
+
+
+
+__END__
+
+=head1 NAME
+
+munin-asyncd - A program to spool munin-node calls
+
+=head1 SYNOPSIS
+
+munin-asyncd [options]
+
+ Options:
+ --host <hostname:port> Connect to this munin-node [localhost:4949]
+ -s --spool <spooldir> Store the spooled data in this dir [@@SPOOLDIR@@]
+ -i --interval <seconds> Override default interval size of one day [86400]
+ -r --retain <count> Specify number of interval files to retain [7]
+ -n --nocleanup Disable automated spool dir cleanup
+
+ --fork Do fork
+ -v --verbose Be verbose
+ -h --help View this message
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/node/lib/Munin/Node/Config.pm
^
|
@@ -1,7 +1,7 @@
package Munin::Node::Config;
use base qw(Munin::Common::Config);
-# $Id: Config.pm 4811 2012-04-14 21:36:11Z kenyon $
+# $Id$
use strict;
use warnings;
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/node/lib/Munin/Node/Configure/Debug.pm
^
|
@@ -1,6 +1,6 @@
package Munin::Node::Configure::Debug;
-# $Id: Debug.pm 2722 2009-10-26 19:54:47Z ligne $
+# $Id$
use strict;
use warnings;
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/node/lib/Munin/Node/Configure/History.pm
^
|
@@ -1,6 +1,6 @@
package Munin::Node::Configure::History;
-# $Id: History.pm 3723 2010-06-14 12:40:09Z ligne $
+# $Id$
use strict;
use warnings;
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/node/lib/Munin/Node/Configure/HostEnumeration.pm
^
|
@@ -1,6 +1,6 @@
package Munin::Node::Configure::HostEnumeration;
-# $Id: HostEnumeration.pm 3579 2010-05-10 18:26:19Z ligne $
+# $Id$
use strict;
use warnings;
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/node/lib/Munin/Node/Configure/Plugin.pm
^
|
@@ -1,6 +1,6 @@
package Munin::Node::Configure::Plugin;
-# $Id: Plugin.pm 4811 2012-04-14 21:36:11Z kenyon $
+# $Id$
use strict;
use warnings;
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/node/lib/Munin/Node/Configure/PluginList.pm
^
|
@@ -1,6 +1,6 @@
package Munin::Node::Configure::PluginList;
-# $Id: PluginList.pm 3953 2010-10-09 21:33:12Z ligne $
+# $Id$
use strict;
use warnings;
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/node/lib/Munin/Node/Logger.pm
^
|
@@ -1,6 +1,6 @@
package Munin::Node::Logger;
-# $Id: Logger.pm 3514 2010-04-22 18:25:25Z ligne $
+# $Id$
use warnings;
use strict;
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/node/lib/Munin/Node/OS.pm
^
|
@@ -1,6 +1,6 @@
package Munin::Node::OS;
-# $Id: OS.pm 4838 2012-05-06 20:12:31Z ssm $
+# $Id$
use warnings;
use strict;
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/node/lib/Munin/Node/ProxySpooler.pm
^
|
@@ -1,6 +1,6 @@
package Munin::Node::ProxySpooler;
-# $Id: ProxySpooler.pm 4286 2011-07-18 12:01:31Z ligne $
+# $Id$
use strict;
use warnings;
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/node/lib/Munin/Node/SNMPConfig.pm
^
|
@@ -1,6 +1,6 @@
package Munin::Node::SNMPConfig;
-# $Id: SNMPConfig.pm 4526 2011-12-20 15:12:19Z steve.schnepp $
+# $Id$
use strict;
use warnings;
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/node/lib/Munin/Node/Server.pm
^
|
@@ -1,6 +1,6 @@
package Munin::Node::Server;
-# $Id: Server.pm 4794 2012-04-04 08:27:08Z steve.schnepp $
+# $Id$
use base qw(Net::Server::Fork);
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/node/lib/Munin/Node/Service.pm
^
|
@@ -1,6 +1,6 @@
package Munin::Node::Service;
-# $Id: Service.pm 4870 2012-05-15 09:38:43Z steve.schnepp $
+# $Id$
use warnings;
use strict;
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/node/lib/Munin/Node/Session.pm
^
|
@@ -1,6 +1,6 @@
package Munin::Node::Session;
-# $Id: Session.pm 3510 2010-04-22 17:38:43Z ligne $ #
+# $Id$ #
use warnings;
use strict;
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/node/lib/Munin/Node/SpoolReader.pm
^
|
@@ -1,6 +1,6 @@
package Munin::Node::SpoolReader;
-# $Id: SpoolReader.pm 4288 2011-07-19 12:02:48Z steve.schnepp $
+# $Id$
use strict;
use warnings;
@@ -9,17 +9,13 @@
use IO::File;
use Munin::Common::Defaults;
+use Munin::Common::SyncDictFile;
use Munin::Node::Logger;
use Munin::Node::Config;
my $config = Munin::Node::Config->instance;
-use constant TIME => 86_400; # put 1 day of results into a spool file
-
-sub _snap_to_epoch_boundary { return $_[0] - ($_[0] % TIME) }
-
-
sub new
{
my ($class, %args) = @_;
@@ -29,6 +25,8 @@
opendir $args{spooldirhandle}, $args{spooldir}
or croak "Could not open spooldir '$args{spooldir}': $!";
+ $args{metadata} = _init_metadata($args{spooldir});
+
# TODO: paranoia check? except dir doesn't (currently) have to be
# root-owned.
@@ -36,6 +34,42 @@
}
+#prepare tied hash for metadata persisted to $spooldir/SPOOL-META
+#should we pull these methods into a base class or create a spool manager class?
+sub _init_metadata
+{
+
+ my $spooldir = shift;
+ my %metadata;
+
+ tie %metadata, 'Munin::Common::SyncDictFile', $spooldir . "/SPOOL-META";
+
+ return \%metadata;
+
+}
+
+
+#retrieve metadata value for key
+sub get_metadata
+{
+ my ($self, $key) = @_;
+
+ return ${ $self->{metadata} }{$key};
+
+}
+
+
+#set metadata key:value and persist
+sub set_metadata
+{
+ my ($self, $key, $value) = @_;
+
+ ${ $self->{metadata} }{$key} = $value;
+
+}
+
+
+
# returns all output for all services since $timestamp.
sub fetch
{
@@ -66,16 +100,14 @@
{
my ($self, $service, $timestamp) = @_;
- my $fmtTimestamp = _snap_to_epoch_boundary($timestamp);
-
my $data = "";
rewinddir $self->{spooldirhandle}
or die "Unable to reset the spool directory handle: $!";
foreach my $file (readdir $self->{spooldirhandle}) {
- next unless $file =~ m/^munin-daemon\.$service.(\d+)$/;
- next unless $1 >= $fmtTimestamp;
+ next unless $file =~ m/^munin-daemon\.$service\.(\d+)\.(\d+)$/;
+ next unless $1+$2 >= $timestamp;
open my $fh, '<', "$self->{spooldir}/$file"
or die "Unable to open spool file: $!";
@@ -126,7 +158,7 @@
or die "Unable to reset the spool directory handle: $!";
my %seen;
- return map { m/^munin-daemon\.(\w+)\.\d+$/ && ! $seen{$1}++ ? $1 : () }
+ return map { m/^munin-daemon\.(\w+)\.\d+\.\d+$/ && ! $seen{$1}++ ? $1 : () }
readdir $self->{spooldirhandle};
}
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/node/lib/Munin/Node/SpoolWriter.pm
^
|
@@ -1,6 +1,6 @@
package Munin::Node::SpoolWriter;
-# $Id: SpoolWriter.pm 4288 2011-07-19 12:02:48Z steve.schnepp $
+# $Id$
use strict;
use warnings;
@@ -9,13 +9,14 @@
use IO::File;
use Munin::Common::Defaults;
+use Munin::Common::SyncDictFile;
use Munin::Node::Logger;
-use constant TIME => 86_400; # put 1 day of results into a spool file
-use constant MAXIMUM_AGE => TIME * 7; # remove spool files more than a week old
+use constant DEFAULT_TIME => 86_400; # put 1 day of results into a spool file
+use constant MAXIMUM_AGE => 7; # remove spool files more than a week old
-sub _snap_to_epoch_boundary { return $_[0] - ($_[0] % TIME) }
+sub _snap_to_epoch_boundary { my $self = shift; return $_[0] - ($_[0] % $self->{interval_size}) }
sub new
@@ -27,6 +28,28 @@
opendir $args{spooldirhandle}, $args{spooldir}
or croak "Could not open spooldir '$args{spooldir}': $!";
+ $args{metadata} = _init_metadata($args{spooldir});
+
+ if(!$args{interval_size} && (my $interval_size = get_metadata(\%args, "interval_size"))) {
+ $args{interval_size} = $interval_size;
+ }
+
+ if(!$args{interval_keep} && (my $interval_keep = get_metadata(\%args, "interval_keep"))) {
+ $args{interval_keep} = $interval_keep;
+ }
+
+ if(!$args{hostname} && (my $hostname = get_metadata(\%args, "hostname"))) {
+ $args{hostname} = $hostname;
+ }
+
+ $args{interval_size} = DEFAULT_TIME unless ($args{interval_size});
+ $args{interval_keep} = MAXIMUM_AGE unless ($args{interval_keep});
+ $args{hostname} = "unknown" unless ($args{hostname});
+
+ set_metadata(\%args, "interval_size", $args{interval_size}) if $args{interval_size} != get_metadata(\%args, "interval_size");
+ set_metadata(\%args, "interval_keep", $args{interval_keep}) if $args{interval_keep} != get_metadata(\%args, "interval_keep");
+ set_metadata(\%args, "hostname", $args{hostname}) if $args{hostname} ne get_metadata(\%args, "hostname");
+
# TODO: paranoia check? except dir doesn't (currently) have to be
# root-owned.
@@ -36,15 +59,50 @@
}
+#prepare tied hash for metadata persisted to $spooldir/SPOOL-META
+#should we pull these methods into a base class or create a spool manager class?
+sub _init_metadata
+{
+
+ my $spooldir = shift;
+ my %metadata;
+
+ tie %metadata, 'Munin::Common::SyncDictFile', $spooldir . "/SPOOL-META";
+
+ return \%metadata;
+
+}
+
+
+#retrieve metadata value for key
+sub get_metadata
+{
+ my ($self, $key) = @_;
+
+ return ${ $self->{metadata} }{$key};
+
+}
+
+
+#set metadata key:value and persist
+sub set_metadata
+{
+ my ($self, $key, $value) = @_;
+
+ ${ $self->{metadata} }{$key} = $value;
+
+}
+
+
# writes the results of a plugin run to the appropriate spool-file
# need to remove any lines containing only a '.'
sub write
{
my ($self, $timestamp, $service, $data) = @_;
- my $fmtTimestamp = _snap_to_epoch_boundary($timestamp);
+ my $fmtTimestamp = $self->_snap_to_epoch_boundary($timestamp);
- open my $fh , '>>', "$self->{spooldir}/munin-daemon.$service.$fmtTimestamp"
+ open my $fh , '>>', "$self->{spooldir}/munin-daemon.$service.$fmtTimestamp." . $self->{interval_size}
or die "Unable to open spool file: $!";
print {$fh} "timestamp $timestamp\n";
@@ -66,14 +124,16 @@
{
my ($self) = @_;
+ my $maxage = $self->{interval_size} * $self->{interval_keep};
+
opendir my $dir, $self->{spooldir} or die $!;
foreach my $file (readdir $dir) {
- my $timestamp;
- next unless ($timestamp) = ($file =~ m{munin-daemon\.\w+\.(\d+)$})
- and (time - $timestamp) > MAXIMUM_AGE;
+ next unless $file =~ m{munin-daemon\.\w+\.\d+\.\d+$};
my $filename = "$self->{spooldir}/$file";
+ my $mtime = (stat $filename)[9];
+ next unless (time - $mtime) > $maxage;
unlink $filename or die "Unable to unlink '$filename': $!\n";
}
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/node/lib/Munin/Node/Utils.pm
^
|
@@ -1,6 +1,6 @@
package Munin::Node::Utils;
-# $Id: Utils.pm 3512 2010-04-22 18:00:23Z ligne $
+# $Id$
use strict;
use warnings;
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/node/sbin/munin-node
^
|
@@ -18,7 +18,7 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
-# $Id: munin-node 4811 2012-04-14 21:36:11Z kenyon $
+# $Id$
#
use strict;
@@ -194,7 +194,7 @@
This is munin-node v@@VERSION@@
-$Id: munin-node 4811 2012-04-14 21:36:11Z kenyon $
+$Id$
=head1 AUTHORS
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/node/sbin/munin-node-configure
^
|
@@ -658,7 +658,7 @@
This is munin-node-configure (munin-node) v@@VERSION@@.
-$Id: munin-node-configure 4811 2012-04-14 21:36:11Z kenyon $
+$Id$
=head1 AUTHORS
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/node/sbin/munin-run
^
|
@@ -17,7 +17,7 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
-# $Id: munin-run 4811 2012-04-14 21:36:11Z kenyon $
+# $Id$
#
use strict;
@@ -240,7 +240,7 @@
This is munin-run (munin-node) v@@VERSION@@
-$Id: munin-run 4811 2012-04-14 21:36:11Z kenyon $
+$Id$
=head1 AUTHORS
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/node/sbin/munin-sched
^
|
@@ -18,7 +18,7 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
-# $Id: munin-sched 4811 2012-04-14 21:36:11Z kenyon $
+# $Id$
#
use strict;
@@ -192,7 +192,7 @@
This is munin-sched v@@VERSION@@
-$Id: munin-sched 4811 2012-04-14 21:36:11Z kenyon $
+$Id$
=head1 AUTHORS
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/node/t/munin_node_spoolreader.t
^
|
@@ -2,7 +2,7 @@
use warnings;
use strict;
-use Test::More tests => 22;
+use Test::More tests => 18;
use Test::LongString;
use POSIX ();
@@ -232,21 +232,3 @@
is($reader->list, "blort floop fnord\n", 'Retrieved stringified list of spooled plugins');
}
-
-### _snap_to_epoch_boundary
-# NOTE the two versions of this sub absolutely need to be kept in sync,
-# otherwise things will break in subtle and horrible ways...
-{
- my @tests = (
- # timestamp, epoch
- [ 1310987426, 1310947200 ],
- [ 1234567890, 1234483200 ],
- );
-
- # both need to provide the same answer!
- foreach my $t (@tests) {
- is(Munin::Node::SpoolReader::_snap_to_epoch_boundary($t->[0]), $t->[1]);
- is(Munin::Node::SpoolWriter::_snap_to_epoch_boundary($t->[0]), $t->[1]);
- }
-}
-
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/node/t/munin_node_spoolwriter.t
^
|
@@ -48,7 +48,7 @@
'system.value 999999'
]);
- my $data_file = "$dir/munin-daemon.fnord.1234483200";
+ my $data_file = "$dir/munin-daemon.fnord.1234483200" . "." . Munin::Node::SpoolWriter::DEFAULT_TIME;
ok( -r $data_file, 'spool file is readable') or last;
my $data = read_file($data_file);
@@ -127,7 +127,7 @@
"system.value $value",
]);
- my $data_file = "$dir/munin-daemon.fnord.1234483200";
+ my $data_file = "$dir/munin-daemon.fnord.1234483200" . "." . Munin::Node::SpoolWriter::DEFAULT_TIME;
unless ( -r $data_file) {
fail("$msg: File not created");
next
@@ -155,7 +155,7 @@
'subsystem.value 123',
]);
- my $data_file = "$dir/munin-daemon.fnord.1234483200";
+ my $data_file = "$dir/munin-daemon.fnord.1234483200" . "." . Munin::Node::SpoolWriter::DEFAULT_TIME;
ok( -r $data_file, 'spool file is readable') or last;
my $data = read_file($data_file);
@@ -180,21 +180,24 @@
my $writer = Munin::Node::SpoolWriter->new(spooldir => $dir);
# one timestamp before the cutoff, one after.
- my $stale = time - Munin::Node::SpoolWriter::MAXIMUM_AGE - 100;
- my $fresh = time - Munin::Node::SpoolWriter::MAXIMUM_AGE + 100;
-
- touch("$dir/munin-daemon.stale.$stale");
- touch("$dir/munin-daemon.fresh.$fresh");
+ my $stale = time - (Munin::Node::SpoolWriter::MAXIMUM_AGE * Munin::Node::SpoolWriter::DEFAULT_TIME) - 100;
+ my $fresh = time - (Munin::Node::SpoolWriter::MAXIMUM_AGE * Munin::Node::SpoolWriter::DEFAULT_TIME) + 100;
+ my $interval = Munin::Node::SpoolWriter::DEFAULT_TIME;
+
+ touch("$dir/munin-daemon.stale.$stale.$interval");
+ utime time, $stale, "$dir/munin-daemon.stale.$stale.$interval";
+ touch("$dir/munin-daemon.fresh.$fresh.$interval");
+ utime time, $fresh, "$dir/munin-daemon.stale.$fresh.$interval";
touch("$dir/cruft");
- ok( -r "$dir/munin-daemon.stale.$stale", 'created a stale file');
- ok( -r "$dir/munin-daemon.fresh.$fresh", 'created a fresh file');
- ok( -r "$dir/cruft", 'created a cruft file');
+ ok( -r "$dir/munin-daemon.stale.$stale.$interval", 'created a stale file');
+ ok( -r "$dir/munin-daemon.fresh.$fresh.$interval", 'created a fresh file');
+ ok( -r "$dir/cruft", 'created a cruft file');
$writer->cleanup;
- ok(! -r "$dir/munin-daemon.stale.$stale", 'stale file is gone');
- ok( -r "$dir/munin-daemon.fresh.$fresh", 'fresh file is still there');
- ok( -r "$dir/cruft", 'cruft file is still there');
+ ok(! -r "$dir/munin-daemon.stale.$stale.$interval", 'stale file is gone');
+ ok( -r "$dir/munin-daemon.fresh.$fresh.$interval", 'fresh file is still there');
+ ok( -r "$dir/cruft", 'cruft file is still there');
}
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/plugins/PluginsBuilder.pm
^
|
@@ -1,6 +1,6 @@
package PluginsBuilder;
-# $Id: PluginsBuilder.pm 2431 2009-09-16 10:04:17Z janl $
+# $Id$
use base qw(Module::Build);
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/plugins/lib/Munin/Plugin.pm
^
|
@@ -16,7 +16,7 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
#
-# $Id: Plugin.pm 4811 2012-04-14 21:36:11Z kenyon $
+# $Id$
#
package Munin::Plugin;
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/plugins/lib/Munin/Plugin/Pgsql.pm
^
|
@@ -21,7 +21,7 @@
# perlpod.
-# $Id: Pgsql.pm 4594 2012-01-20 12:42:11Z mha $
+# $Id$
=head1 NAME
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/plugins/lib/Munin/Plugin/SNMP.pm
^
|
@@ -25,7 +25,7 @@
# pattern. Please maintain it in the same way.
-# $Id: SNMP.pm 3887 2010-09-14 12:23:01Z ligne $
+# $Id$
=head1 NAME
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/plugins/node.d.freebsd/dev_cpu_.in
^
|
@@ -26,7 +26,7 @@
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
#
-# $Id: dev_cpu_.in 4442 2011-10-18 07:56:20Z kenyon $
+# $Id$
#
#%# family=auto
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/plugins/node.d.freebsd/df.in
^
|
@@ -1,6 +1,6 @@
#!@@GOODSH@@
#
-# $Id: df.in 4698 2012-03-06 10:43:41Z kenyon $
+# $Id$
#
# Script to monitor disk usage.
#
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/plugins/node.d.freebsd/df_inode.in
^
|
@@ -1,6 +1,6 @@
#!@@GOODSH@@
#
-# $Id: df_inode.in 4661 2012-02-14 08:01:32Z kenyon $
+# $Id$
#
# Plugin to monitor inode-usage.
#
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/plugins/node.d.hp-ux/gp_gbl_mem_util.in
^
|
@@ -51,7 +51,7 @@
#
# Contributed by <ralph dot grothe at itdz minus berlin dot de>
#
-# $Id: gp_gbl_mem_util.in 4612 2012-01-26 08:22:56Z kenyon $
+# $Id$
#
#%# family=auto
#%# capabilities=autoconf
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/plugins/node.d.linux/apt.in
^
|
@@ -57,7 +57,7 @@
=head1 VERSION
-$Id: apt.in 4612 2012-01-26 08:22:56Z kenyon $
+$Id$
=head1 AUTHOR
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/plugins/node.d.linux/cpu.in
^
|
@@ -74,7 +74,7 @@
=head1 VERSION
- $Id: cpu.in 4612 2012-01-26 08:22:56Z kenyon $
+ $Id$
=head1 BUGS
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/plugins/node.d.linux/df.in
^
|
@@ -69,7 +69,7 @@
=head1 VERSION
- $Id: df.in 4687 2012-02-29 08:52:58Z kenyon $
+ $Id$
=head1 AUTHOR
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/plugins/node.d.linux/df_inode.in
^
|
@@ -69,7 +69,7 @@
=head1 VERSION
- $Id: df_inode.in 4612 2012-01-26 08:22:56Z kenyon $
+ $Id$
=head1 AUTHOR
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/plugins/node.d.linux/diskstat_.in
^
|
@@ -103,7 +103,7 @@
=head1 VERSION
- $Id: diskstat_.in 3050 2009-11-23 16:31:43Z feiner.tom $
+ $Id$
=head1 MAGIC MARKERS
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/plugins/node.d.linux/iostat.in
^
|
@@ -37,7 +37,7 @@
=head1 VERSION
- $Id: iostat.in 4612 2012-01-26 08:22:56Z kenyon $
+ $Id$
=head1 AUTHOR
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/plugins/node.d.linux/iostat_ios.in
^
|
@@ -37,7 +37,7 @@
=head1 VERSION
- $Id: iostat_ios.in 4727 2012-03-11 07:56:39Z kenyon $
+ $Id$
=head1 BUGS
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/plugins/node.d.linux/irqstats.in
^
|
@@ -33,7 +33,7 @@
=head1 VERSION
- $Id: irqstats.in 4278 2011-07-14 11:54:11Z janl $
+ $Id$
=head1 BUGS
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/plugins/node.d.linux/port_.in
^
|
@@ -25,7 +25,7 @@
=head1 VERSION
-$Id: port_.in 4832 2012-05-04 08:38:40Z kenyon $
+$Id$
=head1 AUTHOR
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/plugins/node.d.netbsd/df.in
^
|
@@ -11,7 +11,7 @@
# warning Percentage at which to give warning, default 92
# critical Percentage at which to give critical, default 98
#
-# $Id: df.in 4612 2012-01-26 08:22:56Z kenyon $
+# $Id$
#
# This package has added support for NetBSD, via a number of new plugin
# scripts where specific steps needs to be taken to collect information.
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/plugins/node.d.netbsd/df_inode.in
^
|
@@ -7,7 +7,7 @@
# config (required)
# autoconf (optional - used by munin-config)
#
-# $Id: df_inode.in 4612 2012-01-26 08:22:56Z kenyon $
+# $Id$
#
# Magic markers (optional - used by munin-config and installation
# scripts):
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/plugins/node.d/amavis.in
^
|
@@ -58,7 +58,7 @@
=head1 VERSION
- $Id: amavis.in 3433 2010-03-17 10:45:11Z ligne $
+ $Id$
=head1 BUGS
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/plugins/node.d/apache_accesses.in
^
|
@@ -57,7 +57,7 @@
=head1 VERSION
- $Id: apache_accesses.in 4612 2012-01-26 08:22:56Z kenyon $
+ $Id$
=head1 BUGS
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/plugins/node.d/apache_processes.in
^
|
@@ -69,7 +69,7 @@
=head1 VERSION
- $Id: apache_processes.in 4793 2012-04-04 08:06:17Z kenyon $
+ $Id$
=head1 AUTHOR
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/plugins/node.d/apache_volume.in
^
|
@@ -58,7 +58,7 @@
=head1 VERSION
- $Id: apache_volume.in 4636 2012-02-01 07:01:30Z kenyon $
+ $Id$
=head1 BUGS
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/plugins/node.d/dhcpd3.in
^
|
@@ -42,7 +42,7 @@
=head1 VERSION
- $Id: dhcpd3.in 3267 2009-12-30 07:42:50Z janl $
+ $Id$
=head1 BUGS
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/plugins/node.d/exim_mailstats.in
^
|
@@ -46,7 +46,7 @@
=head1 VERSION
- $Id: exim_mailstats.in 4612 2012-01-26 08:22:56Z kenyon $
+ $Id$
=head1 AUTHOR
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/plugins/node.d/haproxy_.in
^
|
@@ -40,7 +40,7 @@
=head1 VERSION
- $Id: haproxy_.in 4612 2012-01-26 08:22:56Z kenyon $
+ $Id$
=head1 AUTHOR
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/plugins/node.d/hp2000_.in
^
|
@@ -1,4 +1,4 @@
-#!@@PERL@@ -w
+#!@@PERL@@
# hp2000_ - Munin plugin for HP P2000 StorageWorks
# Copyright (C) 2012 Redpill Linpro AS
#
@@ -36,7 +36,7 @@
# Suggested config:
#
# [hp2000_san1_*]
-# hostname san1
+# host_name san1
# env.host 10.0.0.1
# env.secret username_password
#
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/plugins/node.d/ifx_concurrent_sessions_.in
^
|
@@ -36,7 +36,7 @@
=head1 VERSION
- $Id: ifx_concurrent_sessions_.in 2965 2009-11-12 02:38:54Z janl $
+ $Id$
=head1 BUGS
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/plugins/node.d/multips.in
^
|
@@ -37,7 +37,7 @@
=head1 VERSION
- $Id: multips.in 1966 2009-04-01 12:24:27Z kjellm $
+ $Id$
=head1 BUGS
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/plugins/node.d/munin_stats.in
^
|
@@ -17,7 +17,7 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
-# $Id: munin_stats.in 4612 2012-01-26 08:22:56Z kenyon $
+# $Id$
#
# Magic markers (used by munin-node-configure and some installation scripts):
#%# family=auto
@@ -28,7 +28,7 @@
use Munin::Plugin;
-my @logs = qw/update graph html limits/;
+my @logs = qw/update html limits/;
my $logdir = ($ENV{'logdir'} || $ENV{'MUNIN_LOGDIR'} || '@@LOGDIR@@');
if ($ARGV[0] and $ARGV[0] eq 'autoconf') {
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/plugins/node.d/munin_update.in
^
|
@@ -16,7 +16,7 @@
Normaly needs no configuration. You may configure it with the
following parameter:
- [muin*]
+ [munin*]
env.UPDATE_STATSFILE .../munin-update.stats
env.MUNIN_UPDATE_LOCACTION .../munin-update
@@ -60,7 +60,7 @@
=head1 VERSION
- $Id: munin_update.in 4789 2012-04-01 18:15:39Z steve.schnepp $
+ $Id$
=head1 AUTHOR
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/plugins/node.d/mysql_queries.in
^
|
@@ -38,7 +38,7 @@
=head1 VERSION
- $Id: mysql_queries.in 4612 2012-01-26 08:22:56Z kenyon $
+ $Id$
=head1 MAGIC MARKERS
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/plugins/node.d/nginx_request.in
^
|
@@ -39,7 +39,7 @@
=head1 VERSION
- $Id: nginx_request.in 4734 2012-03-14 22:19:57Z kenyon $
+ $Id$
=head1 BUGS
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/plugins/node.d/nginx_status.in
^
|
@@ -38,7 +38,7 @@
=head1 VERSION
- $Id: nginx_status.in 4334 2011-08-22 09:49:03Z steve.schnepp $
+ $Id$
=head1 BUGS
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/plugins/node.d/nvidia_.in
^
|
@@ -43,7 +43,7 @@
=head1 VERSION
- $Id: nvidia_.in 4612 2012-01-26 08:22:56Z kenyon $
+ $Id$
Tested with nvclock version 0.8b3a on a nVidia Geforce 8600GT.
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/plugins/node.d/postfix_mailvolume.in
^
|
@@ -34,7 +34,7 @@
=head1 VERSION
- $Id: postfix_mailvolume.in 4612 2012-01-26 08:22:56Z kenyon $
+ $Id$
=head1 AUTHOR
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/plugins/node.d/snmp__cpuload.in
^
|
@@ -45,7 +45,7 @@
=head1 VERSION
- $Id: snmp__cpuload.in 4612 2012-01-26 08:22:56Z kenyon $
+ $Id$
=head1 BUGS
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/plugins/node.d/snmp__if_.in
^
|
@@ -54,7 +54,7 @@
=head1 VERSION
- $Id: snmp__if_.in 4612 2012-01-26 08:22:56Z kenyon $
+ $Id$
=head1 BUGS
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/plugins/node.d/snmp__if_err_.in
^
|
@@ -48,7 +48,7 @@
=head1 VERSION
- $Id: snmp__if_err_.in 4612 2012-01-26 08:22:56Z kenyon $
+ $Id$
=head1 BUGS
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/plugins/node.d/snmp__load.in
^
|
@@ -48,7 +48,7 @@
=head1 VERSION
- $Id: snmp__load.in 4612 2012-01-26 08:22:56Z kenyon $
+ $Id$
=head1 BUGS
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/plugins/node.d/snmp__netapp_diskusage_.in
^
|
@@ -46,7 +46,7 @@
v1.0 - 06/22/2009 14:05:03 CEST Initial revision
- $Id: snmp__netapp_diskusage_.in 3466 2010-03-26 17:48:14Z ligne $
+ $Id$
=head1 AUTHOR
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/plugins/node.d/snmp__netapp_inodeusage_.in
^
|
@@ -42,7 +42,7 @@
v1.0 - 06/22/2009 14:05:03 CEST
Initial revision
- $Id: snmp__netapp_inodeusage_.in 3466 2010-03-26 17:48:14Z ligne $
+ $Id$
=head1 AUTHOR
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/plugins/node.d/snmp__netstat.in
^
|
@@ -45,7 +45,7 @@
=head1 VERSION
- $Id: snmp__netstat.in 3456 2010-03-23 18:42:39Z ligne $
+ $Id$
=head1 BUGS
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/plugins/node.d/snmp__processes.in
^
|
@@ -44,7 +44,7 @@
=head1 VERSION
- $Id: snmp__processes.in 4612 2012-01-26 08:22:56Z kenyon $
+ $Id$
=head1 BUGS
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/plugins/node.d/snmp__uptime.in
^
|
@@ -57,7 +57,7 @@
=head1 VERSION
- $Id: snmp__uptime.in 4834 2012-05-04 09:15:20Z kenyon $
+ $Id$
=head1 BUGS
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/plugins/node.d/snmp__users.in
^
|
@@ -47,7 +47,7 @@
=head1 VERSION
- $Id: snmp__users.in 4612 2012-01-26 08:22:56Z kenyon $
+ $Id$
=head1 BUGS
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/plugins/node.d/snmp__winmem.in
^
|
@@ -46,7 +46,7 @@
=head1 VERSION
- $Id: snmp__winmem.in 4612 2012-01-26 08:22:56Z kenyon $
+ $Id$
=head1 BUGS
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/plugins/node.d/squeezebox_.in
^
|
@@ -40,7 +40,7 @@
=head1 VERSION
- $Id: squeezebox_.in 4626 2012-01-30 06:18:35Z kenyon $
+ $Id$
=head1 BUGS
|
[-]
[+]
|
Changed |
munin-2.0.1.tar.bz2/plugins/node.d/users.in
^
|
@@ -33,7 +33,7 @@
=head1 VERSION
- $Id: users.in 4539 2012-01-09 08:00:42Z kenyon $
+ $Id$
=head1 AUTHOR
|