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.
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. |