Memory consumed by running Power BI reports

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

This monitor raises an alert if the amount of memory consumed by running Power BI reports exceeds the value specified in the 'Threshold' override (specified in GB).

Knowledge Base article:

Summary

This monitor raises an alert if the amount of memory consumed by running reports exceeds the value specified in the 'Threshold' override (specified in GB).

Causes

Complex reports and reports that display lots of data are requested.

External

Configure Available Memory for Report Server Applications

Configure a Report Server (Reporting Services Native Mode)

Overridable Parameters

Name

Description

Default Value

Enabled

Enables or disables the workflow.

No

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

Synchronization Time

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

 

Top memory-heavy reports count

The number of the most memory-heavy reports that are counted in memory consumption.

10

Threshold (GB)

The monitor changes its state to 'Critical' if the amount of memory consumed by running reports exceeds the threshold (specified in GB).

0

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
EnabledFalse
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.ReportingServices.Windows.MonitorType.Instance.ReportMemoryUsage
RemotableTrue
AccessibilityPublic
Alert Message
SSRS: Power BI report memory usage is too high

Most memory heavy reports:
{0}
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.ReportingServices.Windows.Monitor.Instance.PowerBIReportMemoryUsage" Accessibility="Public" Enabled="false" Target="RsDiscW!Microsoft.SQLServer.ReportingServices.Windows.Instance" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.ReportingServices.Windows.MonitorType.Instance.ReportMemoryUsage" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.ReportingServices.Windows.Monitor.Instance.PowerBIReportMemoryUsage.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Property[@Name='MemoryHeavyReports']$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Error" MonitorTypeStateID="Error" HealthState="Error"/>
<OperationalState ID="Success" MonitorTypeStateID="Success" HealthState="Success"/>
</OperationalStates>
<Configuration>
<ConfigurationFile>$Target/Property[Type="RsDiscW!Microsoft.SQLServer.ReportingServices.Windows.Instance"]/ConfigurationFile$</ConfigurationFile>
<MaxMemoryHeavyReportCount>10</MaxMemoryHeavyReportCount>
<InstanceEdition>$Target/Property[Type="RsCore!Microsoft.SQLServer.ReportingServices.Core.Instance"]/Edition$</InstanceEdition>
<Threshold>0</Threshold>
<TimeoutSeconds>300</TimeoutSeconds>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
</Configuration>
</UnitMonitor>