CPU Utilization (\%)

Microsoft.SQLServer.AnalysisServices.Windows.Monitoring.Monitor.Instance.CpuUsage (UnitMonitor)

The monitor alerts if SSAS process CPU usage exceeds the Threshold.

Knowledge Base article:

Summary

The monitor alerts if a SSAS process CPU usage is too high.

Causes

CPU of a certain computer is too busy processing a SSAS instance.

Resolutions

Evaluate why SSAS instance processing is using such high percentage of CPU facilities.

Overridable Parameters

Name

Description

Default Value

Enabled

Enables or disables the workflow

Yes

Generates Alerts

Defines whether the workflow generates an Alert

Yes

Interval Seconds

The recurring interval of time in seconds in which to run the workflow.

900

Number of samples

Indicates how many times a measured value should breach a threshold before the state is changed.

4

Synchronization Time

The synchronization time specified by using a 24-hour format. May be omitted.

 

Critical Threshold (%)

The monitor alerts, if the CPU utilization caused by SSAS process is higher than the threshold.

95

Timeout (seconds)

Specifies the time the workflow is allowed to run before being closed and marked as failed.

300

Element properties:

TargetMicrosoft.SQLServer.AnalysisServices.Windows.Instance
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.AnalysisServices.Windows.Monitoring.MonitorType.Instance.CpuUsage
RemotableTrue
AccessibilityPublic
Alert Message
SSAS: CPU usage is too high
CPU Utilization of SSAS instance "{0}" on computer "{1}" is too high. See "Alert Context" tab for more details.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.AnalysisServices.Windows.Monitoring.Monitor.Instance.CpuUsage" Target="SQLAS!Microsoft.SQLServer.AnalysisServices.Windows.Instance" ParentMonitorID="SystemHealth!System.Health.PerformanceState" TypeID="Microsoft.SQLServer.AnalysisServices.Windows.Monitoring.MonitorType.Instance.CpuUsage" Accessibility="Public" Enabled="true" Remotable="true" Priority="Normal" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.AnalysisServices.Windows.Monitoring.Monitor.Instance.CpuUsage.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<!-- [ServerRole]/InstanceName ?-->
<AlertParameter1>$Target/Property[Type="ASCore!Microsoft.SQLServer.AnalysisServices.Core.Instance"]/InstanceName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type='Windows!Microsoft.Windows.Computer']/NetworkName$</AlertParameter2>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Error" MonitorTypeStateID="Error" HealthState="Error"/>
<OperationalState ID="Success" MonitorTypeStateID="Success" HealthState="Success"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>900</IntervalSeconds>
<Threshold>95</Threshold>
<NumSamples>4</NumSamples>
<SyncTime/>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>