Veeam Hyper-V: VM CPU Usage

Veeam.Virt.Extensions.HyperV.VM.Monitor.GuestRunTime (UnitMonitor)

Knowledge Base article:

Summary

This monitor tracks threshold breaches for the following metric:

Causes

This VM is experiencing high CPU usage. The usage of CPU versus available CPU (including any configured limit) has exceeded the threshold.

Resolutions

Review the alert description (which is dynamically generated depending on the metrics that have breached the threshold) for specific guidance relevant to this alert. General troubleshooting information is given below.

Use the Alerts View to see all current open issues for this object. Use the Events View to review any error and warning events for this object. Open a Performance View to see the performance metrics for this object and all contained objects. Open a Diagram View to analyze the relationships of this object to other components.

External

See the Help Center for more information including reference lists of all Rules and Monitors and User Guide for the Veeam Hyper-V MP.

See the Microsoft Online Documentation for more information on Microsoft Hyper-V.

Element properties:

TargetVeeam.Virt.Extensions.HyperV.VirtualMachine
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityHigh
Alert Auto ResolveTrue
Monitor TypeVeeam.Virt.Extensions.HyperV.MonitorType.VMPerf.GuestRunTime
RemotableTrue
AccessibilityPublic
Alert Message
Veeam Hyper-V: VM CPU Usage
Hyper-V Virtual Machine {0} on Host {1} has high CPU usage of {2}\% over {3} samples.
RunAsDefault

Source Code:

<UnitMonitor ID="Veeam.Virt.Extensions.HyperV.VM.Monitor.GuestRunTime" Accessibility="Public" Enabled="onEssentialMonitoring" Target="VVEHL!Veeam.Virt.Extensions.HyperV.VirtualMachine" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Veeam.Virt.Extensions.HyperV.MonitorType.VMPerf.GuestRunTime" ConfirmDelivery="true">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Veeam.Virt.Extensions.HyperV.VM.Monitor.GuestRunTime_AlertMessageResourceID">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>High</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="System!System.Entity"]/DisplayName$</AlertParameter1>
<AlertParameter2>$Target/Property[Type="VVEHL!Veeam.Virt.Extensions.HyperV.VirtualMachine"]/HostName$</AlertParameter2>
<AlertParameter3>$Data/Context/DataItem/Property[@Name='Value']$</AlertParameter3>
<AlertParameter4>$Data/Context/DataItem/Property[@Name='SampleCount']$</AlertParameter4>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="UnderThreshold1" HealthState="Success" MonitorTypeStateID="UnderThreshold1"/>
<OperationalState ID="OverThreshold1UnderThreshold2" HealthState="Warning" MonitorTypeStateID="OverThreshold1UnderThreshold2"/>
<OperationalState ID="OverThreshold2" HealthState="Error" MonitorTypeStateID="OverThreshold2"/>
</OperationalStates>
<Configuration>
<VMID>$Target/Property[Type="VVEHL!Veeam.Virt.Extensions.HyperV.VirtualMachine"]/id$</VMID>
<Threshold1>80</Threshold1>
<Threshold2>95</Threshold2>
<NumSamples>3</NumSamples>
<Frequency>300</Frequency>
</Configuration>
</UnitMonitor>