IBM MQ Queue Depth Monitor

IBM.MQ.QueueDepth.Monitor (UnitMonitor)

Element properties:

TargetIBM.MQ.Queue
Parent MonitorSystem.Health.AvailabilityState
CategoryAvailabilityHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeIBM.MQ.QueueDepth.Monitor.MonitorType
RemotableTrue
AccessibilityPublic
Alert Message
IBM MQ Queue Depth exceeds threshold
The current queue depth is above the threshold.
Queue Depth: {2}
Queue Name: {1}
Queue Manager Name {0}
RunAsDefault

Source Code:

<UnitMonitor ID="IBM.MQ.QueueDepth.Monitor" Accessibility="Public" Enabled="true" Target="IBM.MQ.Queue" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="IBM.MQ.QueueDepth.Monitor.MonitorType" ConfirmDelivery="false">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="IBM.MQ.QueueDepth.Monitor.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Property[@Name="QueueManagerName"]$</AlertParameter1>
<AlertParameter2>$Data/Context/Property[@Name="QueueName"]$</AlertParameter2>
<AlertParameter3>$Data/Context/Property[@Name="QueueDepth"]$</AlertParameter3>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Error" MonitorTypeStateID="Error" HealthState="Error"/>
<OperationalState ID="Warning" MonitorTypeStateID="Warning" HealthState="Warning"/>
<OperationalState ID="Success" MonitorTypeStateID="Success" HealthState="Success"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>901</IntervalSeconds>
<TimeoutSeconds>300</TimeoutSeconds>
<QueueName>$Target/Property[Type="IBM.MQ.Queue"]/QueueName$</QueueName>
<QueueManagerName>$Target/Property[Type="IBM.MQ.Queue"]/QueueManagerName$</QueueManagerName>
<WarningThreshold>10</WarningThreshold>
<CriticalThreshold>50</CriticalThreshold>
</Configuration>
</UnitMonitor>