Metrics are categorized into classes, and sub-categorized into types. There are various metrics published under each metric class and type.
CPU (platform central processing units)
IntroductionWhere statistics refer to the current
interval, this is the interval defined in the published message by the
MQIAMO64_MONITOR_INTERVAL parameter.
Statistics are usually published every 10 seconds, the
published interval, as long as there is at least one active subscriber, but the precise
interval should always be taken from the message.
Important: Unless
otherwise specified, metrics are otherwise absolute values for the point in time when
captured.
- SystemSummary (CPU performance - platform wide)
- User CPU time percentage X%
The average percentage of time (taken over the
last 10 second interval) used by the CPU when it was in non-privileged code.
- System CPU time percentage X%
The average percentage of time (taken over
the last 10 second interval) used by the CPU when it was in privileged code.
- CPU load - one minute average X
The one minute load average. "Load average"
is a industry-wide term, but the exact value reported might differ across platforms.
- CPU load - five minute average X
The five minute load average. "Load
average" is a industry-wide term, but the exact value reported might differ across
platforms.
- CPU load - fifteen minute average X
The fifteen minute load average. "Load
average" is a industry-wide term, but the exact value reported might differ across
platforms.
- CPU system summary
RAM free percentage X%
RAM total bytes
XMB
- RAM free percentage X%
- RAM total bytes XMB
- QMgrSummary (CPU performance - running queue manager)
- User CPU time - percentage estimate for queue manager X%
The average
percentage of time (taken over the last 10 second interval) used by the CPU when this queue
manager's processes were in non-privileged code.
- System CPU time - percentage estimate for queue manager X%
The average
percentage of time (taken over the last 10 second interval) used by the CPU when this queue
manager's processes were in privileged code.
- RAM total bytes - estimate for queue manager XMB
This is an approximation
of the memory used by the queue manager.
DISK (platform persistent data stores)
The SystemSummary and QMgrSummary are absolute values at the point of
time of capture. See the Introduction for details of
the published interval.
- SystemSummary (disk usage - platform wide)
- MQ errors file system - bytes in use XMB
- MQ errors file system - free space X%
- MQ FDC file count X
- MQ trace file system - bytes in use XMB
- MQ trace file system - free space X%
- QMgrSummary (disk usage - running queue managers)
- Queue Manager file system - bytes in use XMB
- Queue Manager file system - free space X%
- Log (disk usage - queue manager recovery log)
- Log - bytes in use X
- Log - bytes max X
The maximum number of bytes that can be written to the
log if all the primary and secondary extents were full. This is less than the size of the log
filesystem
- Log file system - bytes in use X
- Log file system - bytes max X
- Log - physical bytes written for the current interval X.
See the Introduction for the definition of current
interval.
- Log - logical bytes written for the current interval
X
- Log - write latency X uSec
A rolling average that represents the time that
a single write to disk takes.
-
Where LogWriteIntegrity=TripleWrite, the physical number
of bytes written to disk is greater than the logical bytes written.
- Log - write size X, also rolling average.
- Log - occupied by extents waiting to be archived X.
Only published when
logtype= linear and LogManagement =
archive. See Log stanza of
the qm.ini file for more information.
- Log - space in MB required for media recovery X.
Only published when
logtype= linear.
- Log - space in MB occupied by reusable extents X
Only published when
logtype= linear and LogManagement =
automatic. See Log stanza of
the qm.ini file for more information.
- Log - current primary space in use X%.
Log file space in use as a
percentage of primary logs. This value can be more than 100%.
- Log - workload primary space utilization X%.
The percentage log file space
in use as a rolling average over recent history.
STATMQI (API usage statistics)
All API usage statistics reflect occurrences and/or percentages for the published interval. See
the Introduction for the definition of published
interval.
The statistics outputs a count of the number of failed MQI calls, but not every failed MQI call
appears in these statistics - indeed the failures of not every MQI call have their statistics
recorded. This is because many reasons that MQI calls fail are diagnosed before the MQI call reached
the internals of the queue manager where the statistics are recorded.
An example of this is MQRC_HCONN_ERROR returned to a client application. If a client application
passes a bad hconn, the MQ client diagnoses that error and returns
MQRC_HCONN_ERROR without passing the MQI call onto the queue manager. Hence, the failed MQI call
never appears in the statistics recorded by the queue manager.
Statistics of failed MQI calls are useful because they enable customers to troubleshoot
poorly-written applications that generate unnecessary failed MQI calls, thereby impacting
performance. Some examples of failing reasons for various MQI calls that are recorded in the statistics:
- MQCONN/MQCONNX/MQOPEN returns 2035 MQRC_NOT_AUTHORIZED when diagnosed by the queue manager, not
the client. For example running amqsput as nobody.
- MQPUT/MQPUT1 returns 2053 MQRC_Q_FULL because MAXDEPTH has been exceeded.
- MQGET returns 2033 MQRC_NO_MSG_AVAILABLE when browsing or destructively getting from an empty
queue
- MQSUBRQ returns 2437 MQRC_NO_RETAINED_MSG because there is no retained message
- CONNDISC (MQCONN and MQDISC)
- MQCONN/MQCONNX count X
- Failed MQCONN/MQCONNX count X
- Concurrent connections - high water mark X
- MQDISC count X
- OPENCLOSE (MQOPEN and MQCLOSE)
- MQOPEN count X
Y/sec
- Failed MQOPEN count X
- MQCLOSE count X
Y/sec
- Failed MQCLOSE count X
- INQSET (MQINQ and MQSET)
- MQINQ count X
- Failed MQINQ count X
- MQSET count X
- Failed MQSET count X
- PUT (MQPUT)
- Interval total MQPUT/MQPUT1 count X
- Interval total MQPUT/MQPUT1 byte count X
Y/sec
- Non-persistent message MQPUT count X
- Persistent message MQPUT count X
- Failed MQPUT count X
- Non-persistent message MQPUT1 count X
- Persistent message MQPUT1 count X
- Failed MQPUT1 count X
- Put non-persistent messages - byte count X
Y/sec
- Put persistent messages - byte count X
- MQSTAT count X
- GET (MQGET)
- Interval total destructive get- count X
- Interval total destructive get - byte count X
Y/sec
- Non-persistent message destructive get - count X
- Persistent message destructive get - count X
- Failed MQGET - count X
- Got non-persistent messages - byte count X
Y/sec
- Got persistent messages - byte count X
- Non-persistent message browse - count X
- Persistent message browse - count X
- Failed browse count X
- Non-persistent message browse - byte count X
Y/sec
- Persistent message browse - byte count X
- Expired message count X
- Purged queue count X
- MQCB count X
- Failed MQCB count X
- MQCTL count X
- SYNCPOINT (commit and rollback)
- Commit count X
- Rollback count X
- SUBSCRIBE (subscribe)
- Create durable subscription count X
- Alter durable subscription count X
- Resume durable subscription count X
- Create non-durable subscription count X
- Failed create/alter/resume subscription count X
- Delete durable subscription count X
- Delete non-durable subscription count X
- Subscription delete failure count X
- MQSUBRQ count X
- Failed MQSUBRQ count X
- Durable subscriber - high water mark X
- Durable subscriber - low water mark X
- Non-durable subscriber - high water mark X
- Non-durable subscriber - low water mark X
- PUBLISH (publish)
- Topic MQPUT/MQPUT1 interval total X
- Interval total topic bytes put X
Y/sec
- Published to subscribers - message count X
- Published to subscribers - byte count X
- Non-persistent - topic MQPUT/MQPUT1 count X
- Persistent - topic MQPUT/MQPUT1 count X
- Failed topic MQPUT/MQPUT1 count X
STATQ (API per-queue usage statistics)
- GENERAL (General)
- messages expired X (moved from GET for IBM® MQ 9.3.0 and later CD versions)
- queue purged count X (moved from GET for IBM MQ 9.3.0 and later CD versions)
- average queue time X uSec (moved from GET for IBM MQ 9.3.0 and later CD versions)
- Queue depth X (moved from GET for
IBM MQ 9.3.0 and later CD versions)
- OPENCLOSE (MQOPEN and MQCLOSE)
- MQOPEN count X
- MQCLOSE count X
- INQSET (MQINQ and MQSET)
- MQINQ count X
- MQSET count X
- PUT (MQPUT and MQPUT1)
- MQPUT/MQPUT1 count X
- MQPUT byte count X
- MQPUT non-persistent message count X
- MQPUT persistent message count X
- rolled back MQPUT count X
- MQPUT1 non-persistent message count X
- MQPUT1 persistent message count X
- non-persistent byte count X
- persistent byte count X
- lock contention X%
The percentage of attempts to lock the queue that
resulted in waiting for another process to release the lock first. Decreasing lock contention is
likely to increase the maximum throughput of your system because taking a lock that is not currently
locked is a more efficient than waiting for a lock to be released.
- queue avoided puts X%
If a message is put to a queue when there is a
waiting getter, the message might not need to be queued as it can be possible for it to be passed to
the getter immediately. So this message is said to have avoided the queue, and "queue avoided puts"
is the count of such messages. Increasing queue avoidance is likely to increase the maximum
throughput of your system because it avoids the cost of putting the message onto the queue and
getting it off again.
- queue avoided bytes X%
If a message is put to a queue when there is a
waiting getter, the message might not need to be queued as it can be possible for it to be passed to
the getter immediately. So this message is said to have avoided the queue, and "queue avoided bytes"
is the count of such bytes. Increasing queue avoidance is likely to increase the maximum throughput
of your system because it avoids the cost of putting the message onto the queue and getting it off
again.
- GET (MQGET)
- MQGET count X
- MQGET byte count X
- destructive MQGET non-persistent message count X
- destructive MQGET persistent message count X
- rolled back MQGET count X
- destructive MQGET non-persistent byte count X
- destructive MQGET persistent byte count X
- MQGET browse non-persistent message count X
- MQGET browse persistent message count X
- MQGET browse non-persistent byte count X
- MQGET browse persistent byte count X
- messages expired X (moved to GENERAL from
IBM MQ 9.3)
- queue purged count X (moved to GENERAL from
IBM MQ 9.3)
- average queue time X uSec (moved to GENERAL from
IBM MQ 9.3)
- Queue depth X (moved to GENERAL from
IBM MQ 9.3)
- destructive MQGET fails X
- destructive MQGET fails with MQRC_NO_MSG_AVAILABLE
X
- destructive MQGET fails with MQRC_TRUNCATED_MSG_FAILED
X
- MQGET browse fails X
- MQGET browse fails with MQRC_NO_MSG_AVAILABLE
X
- MQGET browse fails with MQRC_TRUNCATED_MSG_FAILED
X
STATAPP (per-application usage statistics)
- INSTANCE (instance statistics)
- Instance count X absolute
- Movable instance count X absolute
- Instance shortfall count X absolute
- Instances started X interval
- Initiated outbound instance moves X interval
- Completed outbound instance moves X interval
- Instances ended during reconnect X interval
- Instances ended X interval
NHAREPLICA (per-instance Native HA statistics)
- REPLICATION (replication statistics)
- Synchronous log bytes sent X
- Catch-up log bytes sent X
- Log write average acknowledgment latency X uSec
- Log write average acknowledgment size X
- Backlog bytes X
- Backlog average bytes X