SSRS 2012: On-demand executions per minute

Microsoft.SQLServer.2012.ReportingServices.PerformanceRule.DeploymentWatcher.OnDemandExecutions (Rule)

The rule collects the number of on-demand executions per minute for entire SSRS Deployment. The rule queries SSRS Catalog database to get the information.

Knowledge Base article:

Summary

The rule collects the number of on-demand executions per minute for entire SSRS Deployment. The rule queries SSRS Catalog database to get the information.

On-demand executions are report executions which get up-to-date query results when you select the report. These executions are logged into the ExecutionLogStorage table in the catalog database.

Overrideable Parameters

Name

Description

Default Value

Enabled

 

1

Generates Alerts

 

No

Interval (seconds)

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

900

Synchronization Time

 

 

Time out for database connection

The workflow will fail and register an event if it cannot access the database during specified time interval.

300

Element properties:

TargetMicrosoft.SQLServer.2012.ReportingServices.DeploymentWatcher
CategoryPerformanceCollection
EnabledTrue
Alert GenerateFalse
RemotableTrue

Member Modules:

ID Module Type TypeId RunAs 
DS DataSource Microsoft.SQLServer.2012.ReportingServices.DataSource.TSQLCountersReportingServiceCustom Microsoft.SQLServer.2012.ReportingServices.RunAsProfile.Monitoring
Mapper ConditionDetection System.Performance.DataGenericMapper Default
WriteToDB WriteAction Microsoft.SystemCenter.CollectPerformanceData Microsoft.SQLServer.2012.ReportingServices.RunAsProfile.Monitoring
WriteToDW WriteAction Microsoft.SystemCenter.DataWarehouse.PublishPerformanceData Microsoft.SQLServer.2012.ReportingServices.RunAsProfile.Monitoring

Source Code:

<Rule ID="Microsoft.SQLServer.2012.ReportingServices.PerformanceRule.DeploymentWatcher.OnDemandExecutions" Enabled="true" Target="SQLRS!Microsoft.SQLServer.2012.ReportingServices.DeploymentWatcher" ConfirmDelivery="false" Remotable="true" Priority="Normal" DiscardLevel="100">
<Category>PerformanceCollection</Category>
<DataSources>
<DataSource ID="DS" TypeID="Microsoft.SQLServer.2012.ReportingServices.DataSource.TSQLCountersReportingServiceCustom" RunAs="SQLRS!Microsoft.SQLServer.2012.ReportingServices.RunAsProfile.Monitoring">
<DatabaseServerName>$Target/Property[Type="SQLRS!Microsoft.SQLServer.2012.ReportingServices.DeploymentWatcher"]/ServerFQDN$</DatabaseServerName>
<DatabaseInstanceName>$Target/Property[Type="SQLRS!Microsoft.SQLServer.2012.ReportingServices.DeploymentWatcher"]/DBInstanceName$</DatabaseInstanceName>
<DatabaseName>$Target/Property[Type="SQLRS!Microsoft.SQLServer.2012.ReportingServices.DeploymentWatcher"]/DBName$</DatabaseName>
<ServerName/>
<InstanceName/>
<TSQLCounterClassName>PerformanceStatistics</TSQLCounterClassName>
<TSQLCounterPropertyName>OnDemandExecutions</TSQLCounterPropertyName>
<TimeOut>300</TimeOut>
<IntervalSeconds>900</IntervalSeconds>
<DividerIfGreater>0</DividerIfGreater>
<Divider>1</Divider>
<SyncTime/>
</DataSource>
</DataSources>
<ConditionDetection ID="Mapper" TypeID="SystemPerf!System.Performance.DataGenericMapper">
<ObjectName>SQL RS Deployment Watcher</ObjectName>
<CounterName>On-demand executions/min</CounterName>
<InstanceName/>
<Value>$Data/Property[@Name='OnDemandExecutions']$</Value>
</ConditionDetection>
<WriteActions>
<WriteAction ID="WriteToDB" TypeID="SC!Microsoft.SystemCenter.CollectPerformanceData" RunAs="SQLRS!Microsoft.SQLServer.2012.ReportingServices.RunAsProfile.Monitoring"/>
<WriteAction ID="WriteToDW" TypeID="SCDW!Microsoft.SystemCenter.DataWarehouse.PublishPerformanceData" RunAs="SQLRS!Microsoft.SQLServer.2012.ReportingServices.RunAsProfile.Monitoring"/>
</WriteActions>
</Rule>