Длина очереди заданий

Microsoft.SystemCenter.ServiceManagementAutomation.Monitor.MessageQueueLength (UnitMonitor)

Проверка количества заданий в очереди Runbook Worker.

Knowledge Base article:

Сводка

Определяет превышение указанного порогового значения длины очереди заданий. Эта очередь хранится в базе данных Service Management Automation, поэтому для монитора необходимо настроить доступ к базе данных. Дополнительные сведения см. в разделе "Конфигурация".

Причины

Если длина очереди превышает критическое ограничение, компоненты Worker не смогут адекватно обрабатывать нагрузку заданий. Частота отправки заданий превышает скорость их обработки.

Разрешение

Увеличьте число ролей Worker.

Конфигурация

Для правильной работы этого монитора ему требуется разрешение на чтение базы данных Service Management Automation. Создайте учетную запись запуска от имени, имеющую разрешения на чтение базы данных, и добавьте ее в профиль запуска от имени с именем "Учетная запись базы данных Microsoft Service Management Automation".

Для этого монитора можно настроить следующие параметры:

Параметр

Определение

По умолчанию

Оповещение о состоянии

Состояние работоспособности для монитора, создавшего оповещение.

Монитор в критическом состоянии работоспособности

Приоритет оповещения

Приоритет оповещений, созданных для этого монитора.

Средний

Серьезность оповещений

Приоритет оповещений, созданных для этого монитора.

Критическое

Автоматическое разрешение оповещения

Указывает, должно ли оповещение разрешаться автоматически, когда монитор возвращается в работоспособное состояние.

True

Включено

Указывает на необходимость запуска монитора.

True

ErrorThreshold

Число сообщений в очереди, которое вызывает критическое состояние работоспособности.

20

Создает оповещение

Указывает, должен ли монитор создавать оповещение при переходе в критическое состояние или состояние предупреждения.

True

Интервал

Интервал в секундах между запусками монитора.

300

WarningThreshold

Число сообщений в очереди, которое вызывает состояние предупреждения работоспособности.

10

Element properties:

TargetMicrosoft.SystemCenter.ServiceManagementAutomation.Server.RunbookWorker
Parent MonitorSystem.Health.PerformanceState
CategoryAvailabilityHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SystemCenter.ServiceManagementAutomation.MonitorType.MessageQueueLength
RemotableTrue
AccessibilityPublic
Alert Message
Длина очереди заданий превысила пороговое значение.
Длина очереди заданий превысила пороговое значение. Последнее измеренное значение: {0}.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SystemCenter.ServiceManagementAutomation.Monitor.MessageQueueLength" Accessibility="Public" Enabled="true" Target="Microsoft.SystemCenter.ServiceManagementAutomation.Server.RunbookWorker" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SystemCenter.ServiceManagementAutomation.MonitorType.MessageQueueLength" ConfirmDelivery="false">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Microsoft.SystemCenter.ServiceManagementAutomation.Monitor.MessageQueueLength.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Value$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="UnderThreshold" MonitorTypeStateID="UnderThreshold" HealthState="Success"/>
<OperationalState ID="OverWarningThreshold" MonitorTypeStateID="OverWarningThreshold" HealthState="Warning"/>
<OperationalState ID="OverErrorThreshold" MonitorTypeStateID="OverErrorThreshold" HealthState="Error"/>
</OperationalStates>
<Configuration>
<Interval>300</Interval>
<DatabaseServer>$Target/Property[Type="SMA!Microsoft.SystemCenter.ServiceManagementAutomation.Server"]/DatabaseServerName$</DatabaseServer>
<DatabaseInstance>$Target/Property[Type="SMA!Microsoft.SystemCenter.ServiceManagementAutomation.Server"]/DatabaseServerInstance$</DatabaseInstance>
<DatabaseName>$Target/Property[Type="SMA!Microsoft.SystemCenter.ServiceManagementAutomation.Server"]/DatabaseName$</DatabaseName>
<WarningThreshold>10</WarningThreshold>
<ErrorThreshold>20</ErrorThreshold>
</Configuration>
</UnitMonitor>