Délka fronty úloh

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

Zkontroluje počet úloh ve frontě služby Runbook Worker.

Knowledge Base article:

Shrnutí

Určuje, zda délka fronty úloh nepřekročila stanovenou prahovou hodnotu. Tato fronta je uložena v databázi služby Service Management Automation. Monitorování musí být proto nakonfigurováno tak, aby mělo k databázi přístup. Další informace naleznete v části Konfigurace.

Příčiny

Pokud délka fronty úloh dosáhne kritické meze, nebudou moci pracovní procesy adekvátně zvládnout pracovní zátěž. Úlohy jsou odesílány rychleji, než jaká je rychlost zpracování úloh.

Řešení

Zvyšte počet rolí pracovních procesů.

Konfigurace

Aby toto monitorování fungovalo správně, musí mít oprávnění ke čtení pro databázi služby Service Management Automation. Vytvořte účet Spustit jako, který bude mít pro databázi oprávnění ke čtení, a přidejte jej do profilu Spustit jako s názvem Microsoft Service Management Automation – účet databáze.

Pro toto monitorování lze nakonfigurovat následující možnosti:

Možnost

Definice

Výchozí

Výstraha stavu

Stav monitorování, který generuje výstrahu

Monitorování má kritický stav.

Priorita výstrahy

Priorita výstrahy generované tímto monitorováním

Střední

Závažnost výstrahy

Priorita výstrahy generované tímto monitorováním

Kritická

Automaticky vyřešená výstraha

Určuje, zda má být výstraha automaticky vyřešena, pokud se monitorování vrátí do bezproblémového stavu.

Pravda

Povoleno

Určuje, zda má být monitorování spuštěno.

Pravda

ErrorThreshold

Počet zpráv ve frontě, který generuje kritický stav

20

Generuje výstrahy

Určuje, zda má monitorování generovat výstrahy, pokud se stav změní na Upozornění nebo Kritický stav.

Pravda

Interval

Počet sekund mezi jednotlivými spuštěními monitorování

300

WarningThreshold

Počet zpráv ve frontě, který generuje stav Upozornění

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
Délka fronty úloh překročila prahovou hodnotu.
Délka fronty úloh překročila prahovou hodnotu. Poslední zjištěná hodnota je {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>