$Data::Dumper::Indent = 2;
$Data::Dumper::Useqq = 1;
-our $VERSION = '2.3.6';
+our $VERSION = '2.3.7';
use vars qw/ %opt $PSQL $res $COM $SQL $db /;
## If we were passed in a target, use that and move on
if (exists $arg->{target}) {
- push @target, $arg->{target};
+ ## Make a copy, in case we are passed in a ref
+ my $newtarget;
+ for my $key (keys %$conn) {
+ $newtarget->{$key} = exists $arg->{target}{$key} ? $arg->{target}{$key} : $conn->{$key};
+ }
+ push @target, $newtarget;
last GROUP;
}
my (@crit,@warn,@ok);
my $maxp = 0;
my %seqinfo;
+ my $multidb = @{$info->{db}} > 1 ? "$db->{dbname}." : '';
SLURP: while ($db->{slurp} =~ /\s*(.+?)\s+\| (.+?)\s+\| (.+?)\s*$/gsm) {
my ($schema, $seq, $seqname) = ($1,$2,$3);
next if skip_item($seq);
$SQL = q{SELECT last_value, slots, used, ROUND(used/slots*100) AS percent, slots - used AS numleft FROM }.
q{ (SELECT last_value, CEIL((max_value-min_value+1)/increment_by::NUMERIC) AS slots,}.
qq{ CEIL((last_value-min_value+1)/increment_by::NUMERIC) AS used FROM $seqname) foo};
- my $seqinfo = run_command($SQL);
+ my $seqinfo = run_command($SQL, { target => $db });
if (!defined $seqinfo->{db}[0] or $seqinfo->{db}[0]{slurp} !~ /(\d+)\D+(\d+)\D+(\d+)\D+(\d+)\D+(\d+)/) {
ndie "Could not determine information about sequence $seqname";
}
}
next if $MRTG;
- $db->{perf} .= " $seqname=$percent|$slots|$used|$left";
+ $db->{perf} .= " $multidb$seqname=$percent|$slots|$used|$left";
if (length $critical and $percent >= $c) {
push @crit => $msg;
}
=head1 NAME
B<check_postgres.pl> - a Postgres monitoring script for Nagios, MRTG, and others
-This documents describes check_postgres.pl version 2.3.6
+This documents describes check_postgres.pl version 2.3.7
=head1 SYNOPSIS
=over 4
+=item B<Version 2.3.7>
+
+ Allow multiple databases in 'sequence' action. Reported by Christoph Zwerschke.
+
=item B<Version 2.3.6>
Add missing $schema to check_fsm_pages. (Robert Treat)
<hr />
<h1><a name="name">NAME</a></h1>
<p><strong>check_postgres.pl</strong> - a Postgres monitoring script for Nagios, MRTG, and others
-This documents describes check_postgres.pl version 2.3.6</p>
+This documents describes check_postgres.pl version 2.3.7</p>
<p>
</p>
<hr />
<h1><a name="history">HISTORY</a></h1>
<p>Items not specifically attributed are by Greg Sabino Mullane.</p>
<dl>
+<dt><strong><a name="item_version_2_2e3_2e7"><strong>Version 2.3.7</strong></a></strong></dt>
+
+<dd>
+<pre>
+ Allow multiple databases in 'sequence' action. Reported by Christoph Zwerschke.</pre>
+</dd>
<dt><strong><a name="item_version_2_2e3_2e6"><strong>Version 2.3.6</strong></a></strong></dt>
<dd>
<h1>check_postgres.pl</h1>
-<p><b>check_postgres.pl</b> is a script for checking the state of one or more Postgres databases and reporting back in a Nagios-friendly manner. It was developed by Greg Sabino Mullane of <a href="http://www.endpoint.com/">End Point Corporation</a> and is BSD-licensed. The latest version is <b>2.3.6</b>, and was released on October 13, 2008.</p>
+<p><b>check_postgres.pl</b> is a script for checking the state of one or more Postgres databases and reporting back in a Nagios-friendly manner. It was developed by Greg Sabino Mullane of <a href="http://www.endpoint.com/">End Point Corporation</a> and is BSD-licensed. The latest version is <b>2.3.7</b>, and was released on October 14, 2008.</p>
<ul>
- <li><a href="/check_postgres/check_postgres.pl.html">Documentation for check_postgres 2.3.6</a></li>
+ <li><a href="/check_postgres/check_postgres.pl.html">Documentation for check_postgres 2.3.7</a></li>
</ul>
<ul>
- <li><a href="/check_postgres/check_postgres.pl">Download check_postgres.pl 2.3.6</a></li>
- <li><a href="/check_postgres/check_postgres.pl.asc">PGP signature for check_postgres.pl 2.3.6</a></li>
+ <li><a href="/check_postgres/check_postgres.pl">Download check_postgres.pl 2.3.7</a></li>
+ <li><a href="/check_postgres/check_postgres.pl.asc">PGP signature for check_postgres.pl 2.3.7</a></li>
</ul>
<p>The latest development version can be downloaded via git:</p>