Microsoft Azure Stack App Service Role Available Workers Rule

Microsoft.SystemCenter.AzureStack.AppsRole.AvailableWorkerCount.Rule (Rule)

Microsoft Azure Stack App Service Role Available Workers Rule.

Knowledge Base article:

Summary

The rule checks an available worker count property in the web worker roles. If the percent of available worker count is less than or equal to critical threshold the rule will raise a critical alert. If the percent of available worker count is less than or equal to warning threshold and more than critical threshold the rule will raise a warning alert.

Causes

The percent of available worker count is less than thresholds.

Resolutions

Check if App Service Web Worker Role Instances is available and working correctly.

Element properties:

TargetMicrosoft.SystemCenter.AzureStack.Region
CategoryAlert
EnabledTrue
Alert GenerateTrue
RemotableTrue

Member Modules:

ID Module Type TypeId RunAs 
DS DataSource Microsoft.SystemCenter.AzureStack.AppsRole.AvailableWorkerCount.DS Default
Alert WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="Microsoft.SystemCenter.AzureStack.AppsRole.AvailableWorkerCount.Rule" Enabled="true" Target="Microsoft.SystemCenter.AzureStack.Region" ConfirmDelivery="true" Remotable="true" Priority="Normal" DiscardLevel="100">
<Category>Alert</Category>
<DataSources>
<DataSource ID="DS" TypeID="Microsoft.SystemCenter.AzureStack.AppsRole.AvailableWorkerCount.DS">
<DeploymentId>$Target/Host/Property[Type="Microsoft.SystemCenter.AzureStack.Deployment"]/EndpointUrl$</DeploymentId>
<TimeoutSeconds>120</TimeoutSeconds>
<IntervalSeconds>900</IntervalSeconds>
<RegionId>$Target/Property[Type="Microsoft.SystemCenter.AzureStack.Region"]/RegionId$</RegionId>
<RegionName>$Target/Property[Type="Microsoft.SystemCenter.AzureStack.Region"]/Name$</RegionName>
<MonitorWebAppService>$Target/Host/Property[Type="Microsoft.SystemCenter.AzureStack.Deployment"]/MonitorWebAppService$</MonitorWebAppService>
<WebAppServiceEndpointUrl>$Target/Host/Property[Type="Microsoft.SystemCenter.AzureStack.Deployment"]/WebAppServiceEndpointUrl$</WebAppServiceEndpointUrl>
<WebAppServiceApiVersion>$Target/Host/Property[Type="Microsoft.SystemCenter.AzureStack.Deployment"]/WebAppServiceApiVersion$</WebAppServiceApiVersion>
<OverrideWebAppServiceEndpointUrl>$Target/Host/Property[Type="Microsoft.SystemCenter.AzureStack.Deployment"]/OverrideWebAppServiceEndpointUrl$</OverrideWebAppServiceEndpointUrl>
<WarningThreshold>30</WarningThreshold>
<CriticalThreshold>19</CriticalThreshold>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="Alert" TypeID="Health!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>$Data/Property[@Name='Severity']$</Severity>
<AlertName/>
<AlertDescription/>
<AlertMessageId>$MPElement[Name='Microsoft.SystemCenter.AzureStack.AppsRole.AvailableWorkerCount.Rule.AlertMessage']$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/Property[@Name='Name']$</AlertParameter1>
<AlertParameter2>$Target/Property[Type="Microsoft.SystemCenter.AzureStack.Region"]/Name$</AlertParameter2>
<AlertParameter3>$Data/Property[@Name='AvailableWorkerCount']$</AlertParameter3>
<AlertParameter4>$Data/Property[@Name='AvailableWorkerPercent']$</AlertParameter4>
<AlertParameter5>$Data/Property[@Name='RegisteredWorkerCount']$</AlertParameter5>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/Property[@Name='Id']$</SuppressionValue>
</Suppression>
<Custom1>WebWorkerAlert</Custom1>
<Custom2>$Data/Property[@Name='Id']$</Custom2>
<Custom3>$Data/Property[@Name='Name']$</Custom3>
</WriteAction>
</WriteActions>
</Rule>