Worker Database Requests Per Second

Microsoft.SystemCenter.ServiceManagementAutomation.2012R2.Monitor.WorkerDatabaseRequestsPerSec (UnitMonitor)

Monitors performance counter Worker Database Requests Per Second.

Knowledge Base article:

Summary

Monitors the number of requests to the Service Management Automation database being made per second.

Causes

Both web role as well as the worker role make requests to the database. A high database request rate indicates heavy traffic and could result in degraded performance.

Resolution

Reducing the workload or the number of workers may reduce the database hit rate and resolve the issue.

Configuration

The following options can be configured on this monitor:

Option

Definition

Default

Alert On State

Health state for the monitor that generates an alert.

The monitor is in a critical health state

Alert Priority

Priority of the alert generated for this monitor.

Medium

Alert Severity

Priority of the alert generated for this monitor.

Critical

Auto-Resolve Alert

Specifies whether the alert should automatically be resolved when the monitor returns to a healthy state.

True

CounterName

Name of the performance counter. This value should not be overridden except by a language pack.

WorkerDatabaseRequestsPerSec

Enabled

Specifies whether the monitor should run.

True

Generates Alert

Specifies whether the monitor should generate an alert when changing to a warning or critical state.

True

Element properties:

TargetMicrosoft.SystemCenter.ServiceManagementAutomation.2012R2.Server.Worker
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SystemCenter.ServiceManagementAutomation.2012R2.Performance.MonitorType.ConsecutiveSamplesThreshold
RemotableTrue
AccessibilityPublic
Alert Message
Worker Database Requests Per Second
Worker Database Requests Per Second has exceeded threshold. Last measured value is {0}.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SystemCenter.ServiceManagementAutomation.2012R2.Monitor.WorkerDatabaseRequestsPerSec" Accessibility="Public" Enabled="true" Target="Microsoft.SystemCenter.ServiceManagementAutomation.2012R2.Server.Worker" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SystemCenter.ServiceManagementAutomation.2012R2.Performance.MonitorType.ConsecutiveSamplesThreshold" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SystemCenter.ServiceManagementAutomation.2012R2.Monitor.WorkerDatabaseRequestsPerSec.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Value$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="ConditionTrue" MonitorTypeStateID="ConditionTrue" HealthState="Warning"/>
<OperationalState ID="ConditionFalse" MonitorTypeStateID="ConditionFalse" HealthState="Success"/>
</OperationalStates>
<Configuration>
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<CounterName>Worker Database Requests Per Sec</CounterName>
<ObjectName>Orchestrator Worker Performance Counters</ObjectName>
<InstanceName/>
<AllInstances>true</AllInstances>
<Frequency>600</Frequency>
<ScaleBy>1</ScaleBy>
<Threshold>300</Threshold>
<Direction>greater</Direction>
<NumSamples>3</NumSamples>
</Configuration>
</UnitMonitor>