Comprimento da fila de trabalhos

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

Verifica o número de trabalhos na fila do Runbook Worker.

Knowledge Base article:

Resumo

Determina se o comprimento da Fila de Trabalhos excedeu o limite especificado. Essa fila é armazenada no banco de dados do Service Management Automation, de maneira que o monitor deve estar configurado para acessar o banco de dados. Consulte a seção Configuração para obter informações.

Causas

Caso o comprimento da fila de trabalhos tenha atingido um limite crítico, os trabalhadores não podem lidar adequadamente com a carga de trabalho. A taxa de envio de trabalhos é superior à taxa de processamento de trabalhos.

Solução

Aumente o número de funções do trabalhador.

Configuração

Para que esse monitor funcione corretamente, ele deve ter permissão de leitura do banco de dados do Service Management Automation. Crie uma Conta Executar Como que tenha permissões para leitura do banco de dados e adicione-a ao Perfil Executar Como chamado Conta de Banco de Dados do Microsoft Service Management Automation.

As seguintes opções podem ser configuradas nesse monitor:

Opção

Definição

Padrão

Estado de Alerta Ativo

Estado de integridade para o monitor que gera um alerta.

O monitor está em um estado de integridade crítico

Prioridade do Alerta

Prioridade do alerta gerado para esse monitor.

Média

Severidade do Alerta

Prioridade do alerta gerado para esse monitor.

Crítica

Alerta de Resolução Automática

Especifica se o alerta deve ser solucionado automaticamente quando o monitor retorna a um estado íntegro.

Verdadeiro

Habilitado

Especifica se o monitor deve ser executado.

Verdadeiro

ErrorThreshold

Número de mensagens na fila que gera um estado de integridade crítico.

20

Gera Alerta

Especifica se o monitor deve gerar um alerta ao mudar para um estado de aviso ou crítico.

Verdadeiro

Intervalo

Número de segundos entre os momentos em que o monitor é executado.

300

WarningThreshold

Número de mensagens na fila que gera um estado de integridade de aviso.

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
O comprimento da fila de trabalhos excedeu o limite.
O comprimento da Fila de Trabalhos excedeu o limite. O último valor medido é {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>