Process monitor control table

The process monitor control table (psControlTable) configures process monitors. Each row represents a monitor for a specific attribute of a process or set of processes. The monitor compares the process attribute against a defined threshold and any violations of the threshold, known as process exceptions, are logged in the process exception table.

Table 1 lists the objects in psControlTable.

Table 1. Process monitor control table (psControlTable) 

Row object

Description

ActionCommand

Specifies the command executed when the sample value violates the threshold condition. If this object is empty, no command is executed. If multiple processes produce exceptions during the same sample then this command is executed multiple times, once for each process.

ActionEventIndex

The index of the event triggered when the sample value violates the threshold condition. Both this event and the command specified by psControlActionCommand are triggered simultaneously when a process exception occurs.

If the value of this object is zero, no event is triggered.

ActionEventStatus

The RMON-style event throttle for the event indicated by psControlActionEventIndex:

ready(1) - The event can be fired once, after which the value of this object becomes fired(2) and stays there until reset.

fired(2) - After an event with state ready(1) has fired it's status changes to this value.

alwaysReady(3) - The event can be fired any number of times.

ActionThreshold

Provides an action frequency limit that sets the minimum allowed time (in seconds) between action invocations. If the time between two successful tests of the sample value is less than that specified by this object, the action is considered to be triggering too frequently. In this case the value of psControlStatus is set to notInService(2) and the event (if set) is triggered.

If the value of this object is zero, action frequency checking is disabled, guaranteeing that the control row will remain in service regardless of the action frequency.

BucketsGranted

Indicates the number of rows that the subagent can log in psExceptionTable for this control row, up to the maximum number indicated by psControlBucketsRequested. When this limit is reached the oldest entry associated with this control row is deleted each time a new row is added.

BucketsRequested

Sets the maximum number of rows that may be created in psExceptionTable for this control row.

When the value of this object is 0, the row allocation behavior in psExceptionTable changes so that the number of rows varies to match the number of exceptions generated. With each new sample, any existing rows are removed from the table.

CreateTime

Indicates the value of sysUpTime when this entry was last activated.

DataControl

Controls data collection:

on(1) - Enables data collection

off(2) - Disables data collection

Description

A description of the control row.

FilterPattern

If the value of the psControlFilterType object is name(1) or command(2), the subagent interprets this object as a regular expression representing the entire name or command string of the processes to be monitored. If the value of the psControlFilterType object is pid(4), the subagent interprets this object as a textual representation of the exact process ID of the process to be monitored.

FilterType

Specifies how the psControlFilterPattern is interpreted to identify the process or processes monitored:

name(1) - Matches a process's short name (psRunningName)

command(2) - Matches a process's full command and argument string

groupLeaderName(3) - Matches the short name of all process group leaders (process group leaders are those for which process ID = process group ID)

pid(4) - Matches a specific process ID

noName(5) - Checks that no process names match the filter specified by psControlFilterPattern, and if so, skip attribute checking and start an action.

nameOldest(6) - Matches the oldest process whose short name corresponds to that specified by psControlFilterPattern

noCommand(7) - Similar to noName(5) except that it operates on the process command string rather than the short name.

groupLeaderCommand(8) - Matches a process's command line, but only for process group leaders

commandOldest(9) - Matches the oldest process whose command line corresponds to psControlFilterPattern

The contents of any object resulting from a noName(5) or noCommand(7) match in psExceptionTable or in traps are undefined.

Index

Uniquely identifies the row.

LastFilterCount

Indicates the number of processes in the last sample that matched the filter. This value does not provide any indication of the number of processes that passed the test.

LastUpdate

Indicates the value of sysUpTime when the last sample for this entry was taken.

Owner

Indicates the owner and creator of the control row.

SampleInterval

Sets the sample interval (in seconds). This specifies how frequently the subagent checks the list of running processes, performs filter matching and tests the given process attribute.

SampleType

Indicates how sample values are derived:

exact(1) - The sample value is the exact value of the process attribute.

delta(2) - The sample value is the difference between the current value of the process attribute and that during the previous sample.

Status

Controls creation, activation and deletion of the control row.

TestAttribute

Specifies the process attribute to be tested:

alive(1) - If the process is alive, the value of this attribute is 1(true). A value of 0(false) indicates that the process existed in the previous sample but has since died.

size(2) - The value of psRunningSize.

rss(3) - The value of psRunningRSS.

priority(4) - The value of psRunningPriority.

pageFaults(5) - The value of psRunningPageFaults.

hardPageFaults(6) - The value of psRunningHardPageFaults.

contextSwitches(7) - The value of psRunningContextSwitches.

threads(8) - The value of psRunningThreads.

handles(9) - The value of psRunningHandles.

totalTime(10) - psRunningKernelTime + psRunningUserTime.

kernelTime(11) - The value of psRunningKernelTime.

userTime(12) - The value of psRunningUserTime.

age(13) - The amount of time (in seconds) that the process has been running.

averageCpu(14) - The percentage of total CPU usage on an n-CPU machine, determined as totalTime/(total time available for all CPUs). To monitor average CPU usage over a period of time, set psControlSampleType to delta(2). This value has no meaning when psControlSampleType is set to exact(1) and is not permitted by the subagent.

averageCpu100(15) - averageCpu * 100, providing accuracy to two decimal places. The value 100 represents 1% and 10000 represents 100%.

averageCpuPerCpu(16) - A percentage of CPU usage per CPU calculated as totalTime/SampleInterval. A value of 100 indicates that the process is occupying one entire CPU. This value may exceed 100 on machines with multiple CPUs able to run multiple threads of the same process in parallel. To monitor average CPU usage over a period of time, set psControlSampleType to delta(2). This value has no meaning when psControlSampleType is set to exact(1) and is not permitted by the subagent.

TestAttribute cont'd

averageCpuPerCpu100(17) - averageCpuPerCpu * 100, providing accuracy to two decimal places. The value 100 represents 1% and 10000 represents 100%.

percentSize(18) - As defined in psRunningTable.

lastFilterCount(19) - The number of processes in the last sample that matched the filter. This attribute cannot be tested if the psControlTestOperator is defined as topN. In this mode, the corresponding psExceptionPID object has the value 0, and the psExceptionMatch object is empty.

TestOperator

Specifies the logical operator applied to psControlTestAttribute and psControlTestThreshold:

eq(1) - Equal

ne(2) - Not equal

gt(3) - Greater than

lt(4) - Less than

ge(5) - Greater than or equal to

le(6) - Less than or equal to

topN(7) - Selects n processes with the highest value of psControlTestAttribute, where n is equal to the value of psControlBucketsRequested.

If the value of this object is topN(7), psControlTestThreshold has no effect.

TestThreshold

The numeric value, of type psControlTestAttribute, against which each sample is tested.

TrapMask

Determines which psRunningTable objects are inserted as varbinds into psException notifications. Each bit position corresponds to an entry in the psRunningEntry sequence starting with psRunningPID corresponding to the least significant bit in the mask. Objects are appended in order, starting from psRunningPID to the object corresponding to the most significant bit.

Note: The psRunningPercentCPU, psRunningPercentRSS and psRunningPercentSize objects cannot be inserted. If any of these bits are set, they are silently ignored.

The default value (0) inserts no additional varbinds.