MSMQ Server Process Private MBytes Threshold Monitor

MSMQ.Server.ProcessPrivateMBytes.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 Process Private MBytes exceeds threshold
The current Process Private MBytes is above the threshold.
Memory in MB for processes: {0}

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

Source Code:

<UnitMonitor ID="MSMQ.Server.ProcessPrivateMBytes.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.ProcessPrivateMBytes.Monitor.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Property[@Name="MemoryValueMB"]$</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>MemoryValueMB</CounterName>
<WarningThreshold>2048</WarningThreshold>
<CriticalThreshold>4096</CriticalThreshold>
</Configuration>
</UnitMonitor>