Scope Space Available Monitor

Microsoft.Windows.DHCPServer.Library.MonitorType.ScopeSpaceAvailable (UnitMonitorType)

The monitor compares the scope free addresses against a threshold

Element properties:

RunAsMicrosoft.Windows.DHCPServer.Library.ActionAccount
AccessibilityInternal
Support Monitor RecalculateFalse

Member Modules:

ID Module Type TypeId RunAs 
DS DataSource System.Scheduler Default
Probe ProbeAction Microsoft.Windows.DHCPServer.Library.Probe.ScopeMonitor Default
AvailableMapper ConditionDetection System.Performance.DataGenericMapper Default
ExhaustedMapper ConditionDetection System.Performance.DataGenericMapper Default
LowMapper ConditionDetection System.Performance.DataGenericMapper Default
ScopeAddressesAvailableCheck ConditionDetection System.ExpressionFilter Default
ScopeAddressesExhaustedCheck ConditionDetection System.ExpressionFilter Default
ScopeAddressesLowCheck ConditionDetection System.ExpressionFilter Default

Overrideable Parameters:

IDParameterTypeSelectorDisplay NameDescription
IntervalSecondsstring$Config/IntervalSeconds$Interval Seconds
SyncTimestring$Config/SyncTime$Sync Time
TimeoutSecondsstring$Config/TimeoutSeconds$Timeout Seconds
Namestring$Config/Name$Name
Thresholdint$Config/Threshold$Threshold

Source Code:

<UnitMonitorType ID="Microsoft.Windows.DHCPServer.Library.MonitorType.ScopeSpaceAvailable" Accessibility="Internal" RunAs="Microsoft.Windows.DHCPServer.Library.ActionAccount">
<MonitorTypeStates>
<MonitorTypeState ID="ScopeAddressesAvailable" NoDetection="false"/>
<MonitorTypeState ID="ScopeAddressesLow" NoDetection="false"/>
<MonitorTypeState ID="ScopeAddressesExhausted" NoDetection="false"/>
</MonitorTypeStates>
<Configuration>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="IntervalSeconds" type="xsd:integer"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="SyncTime" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="TimeoutSeconds" type="xsd:integer"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="TargetComputer" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="Name" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="Threshold" type="xsd:integer"/>
</Configuration>
<OverrideableParameters>
<OverrideableParameter ID="IntervalSeconds" Selector="$Config/IntervalSeconds$" ParameterType="string"/>
<OverrideableParameter ID="SyncTime" Selector="$Config/SyncTime$" ParameterType="string"/>
<OverrideableParameter ID="TimeoutSeconds" Selector="$Config/TimeoutSeconds$" ParameterType="string"/>
<OverrideableParameter ID="Name" Selector="$Config/Name$" ParameterType="string"/>
<OverrideableParameter ID="Threshold" Selector="$Config/Threshold$" ParameterType="int"/>
</OverrideableParameters>
<MonitorImplementation>
<MemberModules>
<DataSource ID="DS" TypeID="System!System.Scheduler">
<Scheduler>
<SimpleReccuringSchedule>
<Interval>$Config/IntervalSeconds$</Interval>
<SyncTime>$Config/SyncTime$</SyncTime>
</SimpleReccuringSchedule>
<ExcludeDates/>
</Scheduler>
</DataSource>
<ProbeAction ID="Probe" TypeID="Microsoft.Windows.DHCPServer.Library.Probe.ScopeMonitor">
<TimeoutSeconds>$Config/TimeoutSeconds$</TimeoutSeconds>
<TargetComputer>$Config/TargetComputer$</TargetComputer>
</ProbeAction>
<ConditionDetection ID="ScopeAddressesAvailableCheck" TypeID="System!System.ExpressionFilter">
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="Integer">Property[@Name='$Config/Name$/Free']</XPathQuery>
</ValueExpression>
<Operator>GreaterEqual</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">$Config/Threshold$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</ConditionDetection>
<ConditionDetection ID="ScopeAddressesLowCheck" TypeID="System!System.ExpressionFilter">
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="Integer">Property[@Name='$Config/Name$/Free']</XPathQuery>
</ValueExpression>
<Operator>Less</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">$Config/Threshold$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="Integer">Property[@Name='$Config/Name$/Free']</XPathQuery>
</ValueExpression>
<Operator>Greater</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">0</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="Integer">Property[@Name='$Config/Name$/Disabled']</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">0</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</ConditionDetection>
<ConditionDetection ID="ScopeAddressesExhaustedCheck" TypeID="System!System.ExpressionFilter">
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="Integer">Property[@Name='$Config/Name$/Free']</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">0</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="Integer">Property[@Name='$Config/Name$/Disabled']</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">0</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</ConditionDetection>
<ConditionDetection ID="AvailableMapper" TypeID="Performance!System.Performance.DataGenericMapper">
<ObjectName>DHCP Scope/Superscope</ObjectName>
<CounterName>State</CounterName>
<InstanceName>$Config/Name$</InstanceName>
<Value>0</Value>
</ConditionDetection>
<ConditionDetection ID="LowMapper" TypeID="Performance!System.Performance.DataGenericMapper">
<ObjectName>DHCP Scope/Superscope</ObjectName>
<CounterName>State</CounterName>
<InstanceName>$Config/Name$</InstanceName>
<Value>1</Value>
</ConditionDetection>
<ConditionDetection ID="ExhaustedMapper" TypeID="Performance!System.Performance.DataGenericMapper">
<ObjectName>DHCP Scope/Superscope</ObjectName>
<CounterName>State</CounterName>
<InstanceName>$Config/Name$</InstanceName>
<Value>2</Value>
</ConditionDetection>
</MemberModules>
<RegularDetections>
<RegularDetection MonitorTypeStateID="ScopeAddressesAvailable">
<Node ID="AvailableMapper">
<Node ID="ScopeAddressesAvailableCheck">
<Node ID="Probe">
<Node ID="DS"/>
</Node>
</Node>
</Node>
</RegularDetection>
<RegularDetection MonitorTypeStateID="ScopeAddressesLow">
<Node ID="LowMapper">
<Node ID="ScopeAddressesLowCheck">
<Node ID="Probe">
<Node ID="DS"/>
</Node>
</Node>
</Node>
</RegularDetection>
<RegularDetection MonitorTypeStateID="ScopeAddressesExhausted">
<Node ID="ExhaustedMapper">
<Node ID="ScopeAddressesExhaustedCheck">
<Node ID="Probe">
<Node ID="DS"/>
</Node>
</Node>
</Node>
</RegularDetection>
</RegularDetections>
</MonitorImplementation>
</UnitMonitorType>