NAME
Siebel::Srvrmgr::OS::Unix - module to recover information from OS processes of Siebel components
SYNOPSIS
use Siebel::Srvrmgr::OS::Unix;
my $procs = Siebel::Srvrmgr::OS::Unix->new(
{
comps_source =>
Siebel::Srvrmgr::Log::Enterprise::Parser::Comp_alias->new(
{
process_regex => 'Created\s(multithreaded)?\sserver\sprocess',
log_path => $enterprise_log,
archive => Archive->new( { dbm_path => $MY_DBM } )
}
),
cmd_regex => $siebel_path,
}
);
# hash reference of objects Siebel::Srvrmgr::OS::Process
my $procs_ref = $procs->get_procs;
foreach my $comp_pid( keys( %{$procs_ref} ) ) {
print 'Component ', $procs_ref->{$comp_pid}->{comp_alias}, ' is using ', $procs_ref->{$comp_pid}->{pctcpu}, "% of CPU now\n";
}
DESCRIPTION
This module is a Moose class.
It is responsible to recover information from processes executing on a UNIX-like O.S. and merging that with information of Siebel components.
Details on running processes are recovered from /proc
directory meanwhile the details about the components are read from a class that implements the Siebel::Srvrmgr::Comps_source role.
ATTRIBUTES
comps_source
Required attribute.
An instance of a class that implements the Moose Role Siebel::Srvrmgr::Comps_source. Those classes are supposed to recover information about the current modules available in a Siebel Server.
cmd_regex
Required attribute.
A string of the regular expression to match the command executed by the Siebel user from the cmdline
file in /proc
. This usually is the path included in the binary when you check with ps -aux
command.
This attribute is a string, not a compiled regular expression with qr
.
The amount of processes returned will depend on the regular expression used: one can match anything execute by the Siebel OS user or only the processes related to the Siebel components.
mem_limit
Optional attribute.
A integer representing the maximum bytes of RSS a Siebel process might have.
If set together with limits_callback
, this class can execute some action when this threshold is exceeded.
cpu_limit
Optional attribute.
A integer representing the maximum CPU percentage a Siebel process might have.
If set together with limits_callback
, this class can execute some action when this threshold is exceeded.
limits_callback
Optional attribute.
A code reference that will be executed when one of the attributes mem_limit
and cpu_limit
threshold is exceeded.
This is useful, for example, with you want to set a alarm or something like that.
The code reference will receive a hash reference as parameter which keys and values will depend on the type of limit triggered:
memory:
type => 'memory' rss => <processes RSS> vsz => <process VSZ> pid => <process id> fname => <process fname>, cmd => <process cmndline>
CPU:
type => 'cpu' cpu => <process % of cpu> pid => <process id> fname => <process fname> cmd => <process cmndline>
METHODS
new
To create new instances of Siebel::Srvrmgr::OS::Unix.
The constructor expects a hash reference with the attributes required plus those that are marked as optional.
get_procs
Searches through /proc
and and returns an hash reference with the pids as keys and Siebel::Srvrmgr::OS::Process instances as values.
Those instances will be created by merging information from /proc
and the comps_source
attribute instance.
SEE ALSO
AUTHOR
Alceu Rodrigues de Freitas Junior, <arfreitas@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2015 of Alceu Rodrigues de Freitas Junior, <arfreitas@cpan.org>
This file is part of Siebel Monitoring Tools.
Siebel Monitoring Tools 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, either version 3 of the License, or (at your option) any later version.
Siebel Monitoring Tools 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 Siebel Monitoring Tools. If not, see <http://www.gnu.org/licenses/>.