Transaction Execution Time

Microsoft.SqlServer.Azure.UnitMonitor.DatabaseTransactionsMaxRunTime (UnitMonitor)

Monitors the longest elapsed (wall clock) time of all transactions for a database.

Knowledge Base article:

Summary

Monitors the maximum amount of wall clock execution time by any transaction for this database.

Causes

An unhealthy state is caused by the amount of wall clock execution time approaching or exceeding the configured limit for the monitor.

Resolutions

Element properties:

TargetMicrosoft.SqlServer.Azure.Database
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SqlServer.Azure.UnitMonitorType.DatabaseTransactionsMaxRunTime
RemotableTrue
AccessibilityPublic
Alert Message
Transaction execution time exceeds configured limit
Transaction execution time for database "{0}" on server "{1}" exceeds the configured limit with value of {2} minutes.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SqlServer.Azure.UnitMonitor.DatabaseTransactionsMaxRunTime" TypeID="Microsoft.SqlServer.Azure.UnitMonitorType.DatabaseTransactionsMaxRunTime" Target="Microsoft.SqlServer.Azure.Database" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal" Accessibility="Public" Enabled="false" ConfirmDelivery="true">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SqlServer.Azure.UnitMonitor.DatabaseTransactionsMaxRunTime.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="Microsoft.SqlServer.Azure.Database"]/DatabaseName$</AlertParameter1>
<AlertParameter2>$Target/Property[Type="Microsoft.SqlServer.Azure.Database"]/ServerName$</AlertParameter2>
<AlertParameter3>$Data/Context/Property[@Name='MaxRunTimeMinutes']$</AlertParameter3>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Healthy" MonitorTypeStateID="Healthy" HealthState="Success"/>
<OperationalState ID="Warning" MonitorTypeStateID="Warning" HealthState="Warning"/>
<OperationalState ID="Critical" MonitorTypeStateID="Critical" HealthState="Error"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>300</TimeoutSeconds>
<ServerName>$Target/Property[Type="Microsoft.SqlServer.Azure.Database"]/ServerName$</ServerName>
<DatabaseName>$Target/Property[Type="Microsoft.SqlServer.Azure.Database"]/DatabaseName$</DatabaseName>
<WarningThreshold>10</WarningThreshold>
<CriticalThreshold>15</CriticalThreshold>
</Configuration>
</UnitMonitor>