MSMQ Server Total KBytes In All Queues Threshold Monitor

MSMQ.Server.TotalKBytesInAllQueues.Monitor (UnitMonitor)

Element properties:

TargetMSMQ.Server
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMSMQ.ServerPerformance.MonitorType
RemotableTrue
AccessibilityPublic
Alert Message
MSMQ Server Total KBytes In All Queues exceeds threshold
The current Total KBytes In All Queues is above the threshold.
Total KBytes In All Queues: {0}

Additional Information:
Server: {1}
MSMQ Process Count: {2}
Sessions: {3}
CPU Value of all processes: {4}
Memory in MB for processes: {5}
Incoming Messages Sec: {6}
Outgoing Messages Sec: {7}
RunAsDefault

Source Code:

<UnitMonitor ID="MSMQ.Server.TotalKBytesInAllQueues.Monitor" Accessibility="Public" Enabled="true" Target="MSMQ.Server" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="MSMQ.ServerPerformance.MonitorType" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="MSMQ.Server.TotalKBytesInAllQueues.Monitor.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Property[@Name="TotalKBytesInAllQueues"]$</AlertParameter1>
<AlertParameter2>$Data/Context/Property[@Name="NetBIOSName"]$</AlertParameter2>
<AlertParameter3>$Data/Context/Property[@Name="ProcessesRunning"]$</AlertParameter3>
<AlertParameter4>$Data/Context/Property[@Name="Sessions"]$</AlertParameter4>
<AlertParameter5>$Data/Context/Property[@Name="CPUValue"]$</AlertParameter5>
<AlertParameter6>$Data/Context/Property[@Name="MemoryValueMB"]$</AlertParameter6>
<AlertParameter7>$Data/Context/Property[@Name="IncomingMessagesSec"]$</AlertParameter7>
<AlertParameter8>$Data/Context/Property[@Name="OutgoingMessagesSec"]$</AlertParameter8>
</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>901</IntervalSeconds>
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</ComputerName>
<DebugLogging>false</DebugLogging>
<TimeoutSeconds>300</TimeoutSeconds>
<CounterName>TotalKBytesInAllQueues</CounterName>
<WarningThreshold>500</WarningThreshold>
<CriticalThreshold>1000</CriticalThreshold>
</Configuration>
</UnitMonitor>