The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Unix::Statgrab::sg_process_stats - container for libstatgrab process statistics

DESCRIPTION

Unix::Statgrab::sg_process_stats is a Perl package name providing accessors to bundled libstatgrab sg_process_stats process statistics.

METHODS

nentries

Returns the number of entries in the container.

systime

Returns the seconds since Epoch (0:00:00 on January, 1st 1970) of the time measure the process statistics.

as_list

Deprecated alias of "fetchall_hash"

fetchall_hash

Returns all records from sg_process_stats container as list of hash containing each datum name as key and the datum as value.

fetchall_array

Returns all records from sg_process_stats container as list of arrays containing the values in following order:

  (process_name proctitle pid parent pgid sessid uid euid gid egid
   context_switches voluntary_context_switches involuntary_context_switches
   proc_size proc_resident start_time time_spent cpu_percent nice state
   systime)

in that order without leading headline.

fetchall_table

Returns all records from sg_process_stats container as list of arrays containing the values in following order:

  (disk_name read_bytes write_bytes systime)

in that order including leading headline.

fetchrow_arrayref($row = 0)

Returns one row as array containing values as above.

fetchall_arrayref

Returns all records from sg_process_stats container as array of arrays without header.

fetchrow_hashref($row = 0)

Returns one row as hash containing { process_name => $self.process_name($row), proctitle => ... }.

fetchall_hashref

Returns all records from sg_process_stats container as array of hashes.

colnames

Returns list of column names: (process_name proctitle pid parent pgid sessid uid euid gid egid context_switches voluntary_context_switches involuntary_context_switches proc_size proc_resident start_time time_spent cpu_percent nice state systime)

process_name

The name of the command that was run. The content of this field heavily depends on the underlying operating system, some store the basename the executable passes to the exec(2) system call, some the entire path. Most OS restrict the size of this field - some like the *BSD family to a very low value of 15 bytes.

This field is usually immutable for userland processes.

proctitle

The command line (the "title") of the process. Take note - this can be modified by the process, so isn't guaranteed to be the original command line.

pid

The process ID.

parent

The parent process ID.

pgid

The process ID of the process group leader.

sessid

Session id of the session the process belongs to.

uid

The ID of the user the process is running as.

euid

The ID of the effective user the process is running as.

gid

The ID of the group the process is running as.

egid

The ID of the effective group the process is running as.

context_switches

The number of context switches of this process (voluntary and involuntary).

voluntary_context_switches

The number of voluntary context switches of this process (e.g. by calling sched_yield(), sleep() or nanosleep()).

involuntary_context_switches

The number of involuntary context switches of this process (e.g. time slice exhausted or signal sent).

proc_size

The virtual memory size of the process in bytes.

proc_resident

The size of the process that's resident in memory.

start_time

The time when the process has been started in seconds since epoch.

time_spent

The number of seconds the process has been running (user+system time, without time spent by child processes).

cpu_percent

The current percentage of CPU the process is using.

nice

The nice value of the process.

state

The current state of the process, one of

    SG_PROCESS_STATE_RUNNING SG_PROCESS_STATE_SLEEPING SG_PROCESS_STATE_STOPPED
    SG_PROCESS_STATE_ZOMBIE SG_PROCESS_STATE_UNKNOWN

AUTHOR

Jens Rehsack, <rehsack AT cpan.org>

COPYRIGHT AND LICENSE

Copyright (C) 2012-2018 by Jens Rehsack

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.