Why not adopt me?
This distribution is up for adoption!
If you're interested then please contact the PAUSE module admins via
email.
NAME
Proc::LoadMonitor - Load monitoring for worker processes
SYNOPSIS
use Proc::LoadMonitor;
# get monitor, starts in 'idle' state
my $lmon = Proc::LoadMonitor->new;
# some job queue with timeout (e.g redis BLPOP) which
# blocks until a new job is available, or times out.
#
while ( my $job = $some_queue->get_next_job() ) {
if ($job) {
$lmon->busy; # set monitor to 'busy';
$job->do_it();
}
$lmon->idle; # set monitor to 'idle', increment loop count
my $report = $lmon->report;
# $report = {
# loops => 781, # number of loops
# jobs => 674, # number of processed jobs
# load_05 => 0.650, # 5 min. load avg.
# load_10 => 0.510, # 10 min. load avg.
# load_15 => 0.414, # 15 min. load avg.
# state => 'idle', # 'busy'/'idle'
# total => 110566.19 # total run time
# }
}
DESCRIPTION
This module keeps track of idle and busy times in a worker process and calculates 5, 10 and 15 minutes load averages.
busy
Set state to busy.
idle
Set state to idle and increment the loop counter.
state
Returns the state which may be busy or idle.
loops
Returns the loop count.
jobs
Returns the number of jobs processed so far.
report
Returns a report (hash) containing loops, jobs, total (total run time in sec.), load_05 (5 min. load average), load_10 (10 min. load average) and load_15 (15 min. load average).
AUTHOR
Michael Langner (cpan:MILA)
COPYRIGHT
Copyright (c) 2015 the Proc::LoadMonitor "AUTHOR".
LICENSE
This library is free software and may be distributed under the same terms as perl itself. See http://dev.perl.org/licenses/.