MSMQ Server Process Percent Processor Time Threshold Monitor

MSMQ.Server.ProcessPercentProcessorTime.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 Percent Processor Time exceeds threshold
The current Process Percent Processor Time is above the threshold.
CPU Value of all processes: {0}

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

Source Code:

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