#!/usr/local/bin/perl
# $Id$
# $LastChangedDate$
# $Rev$
use lib qw(./lib ../lib);
use Nagios::StatusLog;
use Benchmark ':hireswallclock';
use Getopt::Std;
use Data::Dumper;
=head1 NAME
statusdat_demo.pl - test the StatusLog module
=head1 USAGE
perl statusdat_demo.pl -l /var/opt/nagios/status.dat
=head1 NOTES
Please send the benchmark outputs to duncs@cpan.org so I can see how the
performance is on boxes and configs other than my own.
=cut
our $opt_l;
getopt('l:');
die "Must specify location of Nagios status log with -l option."
if ( !$opt_l );
my $bench_begin = Benchmark->new;
my $log = Nagios::StatusLog->new( Filename => $opt_l, Version => 2.0 );
my $bench_postparse = Benchmark->new;
#print Dumper( $log );
foreach my $host ( $log->list_hosts ) {
my $obj = $log->host($host);
printf "Host: %s Last Update: %d\n", $obj->host_name, $obj->last_update;
}
my $prog = $log->program;
printf "Started at %d", $prog->program_start;
my $bench_postprint = Benchmark->new;
printf "\nTime to parse: %s\nTime to print: %s\n\n",
timestr( timediff( $bench_postparse, $bench_begin ) ),
timestr( timediff( $bench_postprint, $bench_postparse ) );