System-wide usage and the Log-Usage class
The system captures performance details for each requestor once each hour and at logoff. You can view these details, aggregated or by operator ID, by using standard reports. You can also use SQL reporting tools to report on these details.
Once an hour and at requestor logoff, the usage daemon saves requestor performance details
as instances of the Log-Usage class in the pr_perf_stats
table. The instances in this class provide a cumulative history of past system usage across
all nodes and all requestor types. Analysis of this data can provide valuable insights about
the patterns and sources of processing demand, and can be helpful in performance tuning.
- Log-Usage data, which covers system and requestor performance of all types, is different than Log-RuleUsage data, which covers only rules assembly rules. In other words, Log-RuleUsage data covers rules of those rule types that the system converts to Java code.
- When using this class for Customer Service chat interactions, be aware that a single browser session can be served by multiple requestors.
Keys of instances in the Log-Usage class
The key of each
Log-Usage
instance is the
pzInsKey
column of the
pr_perf_stats
table. This key is concatenated from the values of the
following four properties:
- pxRequestorID – The system-assigned requestor ID for this session
- pxSnapShotTime – Date and time of this snapshot
- pxSnapShotType – Record type
- pxSystemNodeID – Node ID
The first character of the requestor ID identifies a requestor type:
- A – Services (
APP
requestor types) - B – Background requestors (
BATCH
requestor type) - H – Interactive browser users (
BROWSER
requestor type) - P – Portlet users (
PORTLET
requestor type)
Identifying a snapshot
The pxSnapshotType column identifies an important value needed to interpret the other values in a record. This column has one of six values:
-
INTERVAL
– Records cumulative usage statistics for a requestor as of the end of an interval (typically a clock hour). -
PASSIVATED
– Records passivation of a requestor, such as occurs when a session times out. ThePersistRequestor
entry in theprconfig.xml
file or dynamic system setting controls passivation. -
TERMINATED
– Records log-out, forced time-out, or other termination of a requestor. -
PALCLEAR
– Records that a requestor cleared PAL statistics. -
MERGED_AGENTS
– Records details from multiple agent requestors.
Identifying an agent or daemon
For agents and daemons, the
pyProcLabel
property identifies the agent, the
index of the row on the
Rule-Agent-Queue
form, and the activity. The subscript
is zero-based. For example, the value
Pega-ProCom:2:Assign-Corr.SendCorr
in
a log identifies processing by the
Assign-Corr.SendCorr
activity listed the
second row of the Agent Queue form for the Pega-RULES agent.
For daemons such as the master agent, the pyProcLabel column is blank.
A usage daemon commits instances of the Log-Usage class to the database table.
The usage daemon saves an instance of the Log-Usage class when a requestor terminates, passivates, activates, and at regular hourly intervals. To minimize the performance effect of new instances, the daemon's write operations are deferred and then committed as a group.
By default,
INTERVAL
operations record a snapshot at 59 minutes after
each hour. For example, if an operator signs on at 11:15 AM and signs off at 11:56 AM, no
INTERVAL
instances for that requestor are logged.
By default, this daemon wakes every 300 seconds, so the contents of the table might be stale or incomplete by as much as five minutes.
In a multinode cluster, the usage daemons on each node operate independently, so the presence of records in the database table with a recent pxSnapShotTime from one node does not imply that no more records with a similar or earlier pxSnapShotTime value will arrive.
Because agents are requestors, this daemon adds instances to the
Log-Usage
class for agents even when the system has no interactive users.
This behavior is expected.
Some service requestors end a few seconds or less after they start. Typically no
INTERVAL
instances appear for such requestors. If a service uses pooled
requestors,
INTERVAL
instances may appear for those requestors in the pool
once each hour.
To facilitate reporting, all properties of the
Log-Usage
class are optimized
as columns of the
pr_perf_stats
table. This table does not contain a
Storage Stream column.
Except for the properties in the following table, the names and meanings of statistical properties in the Log-Usage class is identical to the names and meanings of those in the Code-Pega-PAL class, which supports the Performance Analyzer tool (PAL).
For technical reasons, Log-Usage properties listed in the following table have a shorter name from the corresponding Code-Pega-PAL properties.
Code-Pega-PAL Property | Log-Usage Property |
---|---|
pxDeclarativeRulesInvokedBackgroundCount | pxDeclRulesInvokedBckGrdCnt |
pxDeclarativeRulesInvokedElapsed | pxDeclRulesInvokedElapsed |
pxDeclarativeRulesLookupElapsed | pxDeclRulesLookupElapsed |
pxListRowWithFilteredStreamCount | pxListRowWithFilteredStrmCnt |
pxListRowWithUnfilteredStreamCount | pxListRowWithUnfilteredStrmCnt |
pxListWithUnfilteredStreamCount | pxListWithUnfilteredStrmCnt |
pxSavedClipboardAfterInteractionCount | pxSavedCbAfterIntCount |
pxSavedClipboardAfterInteractionCPU | pxSavedCbAfterIntCPU |
pxSavedClipboardAfterInteractionElapsed | pxSavedCbAfterIntElapsed |
pxSavedContextAfterInteractionCount | pxSavedCxtAfterIntCount |
pxSavedContextAfterInteractionCPU | pxSavedCxtAfterIntCPU |
pxSavedContextAfterInteractionElapsed | pxSavedCxtAfterIntElapsed |
To improve access, the PegaRULES database indexes are defined for the
pr_perf_stats
table. You can access this table using the
pxUserIdentifier,
pxSnapshotTime,
pxRequestorType,
pxSnapShotType, or
pxSystemNodeID
property values.