CPU utilization (\%)

Microsoft.SQLServer.ReportingServices.Windows.Monitor.Instance.CpuUsageByInstance (UnitMonitor)

The monitor alerts if the CPU usage by the SSRS process is close to 100\%.

Knowledge Base article:

Summary

The monitor alerts if an SSRS process consumes more CPU resources than allowed by the threshold.

Causes

SSRS instance processing consumes a lot of CPU resources.

Resolutions

Evaluate why SSRS instance processing is using such a high CPU capacity percentage.

External

Monitoring Report Server Performance

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.

300

Number of samples

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

6

Synchronization Time

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

 

Threshold

The monitor alerts if the CPU utilization caused by the SSRS 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.ReportingServices.Windows.Instance
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.ReportingServices.Windows.MonitorType.Instance.CpuUsageByInstance
RemotableTrue
AccessibilityPublic
Alert Message
SSRS: CPU usage is too high
CPU usage by SSRS ({0} \%) is too high.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.ReportingServices.Windows.Monitor.Instance.CpuUsageByInstance" Accessibility="Public" Enabled="true" Target="RsDiscW!Microsoft.SQLServer.ReportingServices.Windows.Instance" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.ReportingServices.Windows.MonitorType.Instance.CpuUsageByInstance" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.ReportingServices.Windows.Monitor.Instance.CpuUsageByInstance.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Property[@Name='CpuUsage']$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Error" MonitorTypeStateID="Error" HealthState="Error"/>
<OperationalState ID="Success" MonitorTypeStateID="Success" HealthState="Success"/>
</OperationalStates>
<Configuration>
<ServiceName>$Target/Property[Type="RsDiscW!Microsoft.SQLServer.ReportingServices.Windows.Instance"]/ServiceName$</ServiceName>
<Threshold>95</Threshold>
<NumSamples>6</NumSamples>
<TimeoutSeconds>300</TimeoutSeconds>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
</Configuration>
</UnitMonitor>