Alert Subscription Query Performance Monitor

Microsoft.SystemCenter.HealthServiceModules.AlertSubscriptionDSModule.QueryPerformanceMonitor (UnitMonitor)

This monitor checks the query performance of the Alert Subscription Data Source module.

Knowledge Base article:

Summary

This monitor tracks the performance of the queries that select Alerts matching the subscription criteria. If these queries are too slow it could result in delay of notifications sent out by the Notification subsystem.

Causes

The Alert queries can slow down usually because the Query processor in SQL Database is overloaded. IT is possible that the Operations database is under heavy load. If the alert query is complex it can slow down processing of the query.

Resolutions

Notification subsystem is taking a long time to generate notification messages. This is due to slowing down of the query processing used to match alert criteria presented in the subscription against the alerts in the Operations database.

Element properties:

TargetMicrosoft.SystemCenter.AlertNotificationSubscriptionServer
Parent MonitorMicrosoft.SystemCenter.HealthServiceModules.AlertSubscriptionDSModule.PerformanceRollup
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityHigh
Alert Auto ResolveTrue
Monitor TypeMicrosoft.Windows.2SingleEventLog2StateMonitorType
RemotableTrue
AccessibilityPublic
Alert Message
Alert subscription data source module queries taking longer than expected.
{0}
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SystemCenter.HealthServiceModules.AlertSubscriptionDSModule.QueryPerformanceMonitor" Accessibility="Public" Enabled="true" Target="Microsoft.SystemCenter.AlertNotificationSubscriptionServer" ParentMonitorID="Microsoft.SystemCenter.HealthServiceModules.AlertSubscriptionDSModule.PerformanceRollup" Remotable="true" Priority="Normal" TypeID="Windows!Microsoft.Windows.2SingleEventLog2StateMonitorType" ConfirmDelivery="true">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SystemCenter.HealthServiceModules.AlertSubscriptionDSModule.QueryPerformanceMonitorMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>High</AlertPriority>
<AlertSeverity>Warning</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/EventDescription$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="AlertSubscriptionDataSourceQueriesRunningSlow" MonitorTypeStateID="FirstEventRaised" HealthState="Warning"/>
<OperationalState ID="AlertSubscriptionDataSourceQueriesRunningNormal" MonitorTypeStateID="SecondEventRaised" HealthState="Success"/>
</OperationalStates>
<Configuration>
<FirstComputerName>.</FirstComputerName>
<FirstLogName>Operations Manager</FirstLogName>
<FirstExpression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="Integer">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="Integer">11410</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Health Service Modules</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</FirstExpression>
<SecondComputerName>.</SecondComputerName>
<SecondLogName>Operations Manager</SecondLogName>
<SecondExpression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="Integer">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="Integer">11413</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Health Service Modules</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</SecondExpression>
</Configuration>
</UnitMonitor>