MSMQ KBytes In Journal Queue Threshold Monitor

MSMQ.Queue.KBytesInJournalQueue.Monitor (UnitMonitor)

Monitor the number of KBytes in the Journal queue against a threshold.

Element properties:

TargetMSMQ.Queue
Parent MonitorSystem.Health.PerformanceState
CategoryAvailabilityHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMSMQ.QueuePerformance.MonitorType
RemotableTrue
AccessibilityPublic
Alert Message
MSMQ KBytes In Journal Queue exceeds threshold
The current KBytes In Journal Queue is above the threshold.
Queue Name: {0}
KBytes In Journal Queue: {1}

Additional Information:
Server: {2}
Messages In Queue: {3}
KBytes In Queue: {4}
Queue Percent Used: {5}
Messages In Journal Queue: {6}
Journal Percent Used: {8}
RunAsDefault

Source Code:

<UnitMonitor ID="MSMQ.Queue.KBytesInJournalQueue.Monitor" Accessibility="Public" Enabled="true" Target="MSMQ.Queue" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="MSMQ.QueuePerformance.MonitorType" ConfirmDelivery="false">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="MSMQ.Queue.KBytesInJournalQueue.Monitor.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Property[@Name="QueueName"]$</AlertParameter1>
<AlertParameter2>$Data/Context/Property[@Name="KBytes In Journal Queue"]$</AlertParameter2>
<AlertParameter3>$Data/Context/Property[@Name="NetBIOSName"]$</AlertParameter3>
<AlertParameter4>$Data/Context/Property[@Name="Messages In Queue"]$</AlertParameter4>
<AlertParameter5>$Data/Context/Property[@Name="KBytes In Queue"]$</AlertParameter5>
<AlertParameter6>$Data/Context/Property[@Name="Queue Percent Used"]$</AlertParameter6>
<AlertParameter7>$Data/Context/Property[@Name="Messages In Journal Queue"]$</AlertParameter7>
<AlertParameter8>$Data/Context/Property[@Name="KBytes In Journal Queue"]$</AlertParameter8>
<AlertParameter9>$Data/Context/Property[@Name="Journal Percent Used"]$</AlertParameter9>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Success" MonitorTypeStateID="Success" HealthState="Success"/>
<OperationalState ID="Warning" MonitorTypeStateID="Warning" HealthState="Warning"/>
<OperationalState ID="Error" MonitorTypeStateID="Error" HealthState="Error"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>903</IntervalSeconds>
<ComputerName>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</ComputerName>
<DebugLogging>false</DebugLogging>
<TimeoutSeconds>300</TimeoutSeconds>
<QueueName>$Target/Property[Type="MSMQ.Queue"]/QueueName$</QueueName>
<CounterName>KBytes In Journal Queue</CounterName>
<WarningThreshold>500</WarningThreshold>
<CriticalThreshold>1000</CriticalThreshold>
</Configuration>
</UnitMonitor>