Collect Local Resolution Time

Microsoft.Windows.DNSServer.2003.Rule.CollectLocalResolutionTime (Rule)

Knowledge Base article:

Summary

This rule will perform a test nslookup query against each listening IP on the server for each specified target. The time required for the query will be stored as performance data. Only results from successful queries will be stored.

Configuration

By default, the rule will use the local server name as its target. One or more clients may be specified in a comma delimited list through an override. While no validation is performed to ensure that this is an internal address, it is recommended that external addresses not be used. The rule will work properly, but the results will be more a function of external DNS servers rather than the one being tested.

The test will be performed for each IP address that DNS is listening on. By default, the results will only be stored for the worst successful result. This can be modified to all results by modifying the WorstOrAll parameter to "A".

Element properties:

TargetMicrosoft.Windows.DNSServer.2003.Server
CategoryPerformanceCollection
EnabledTrue
Alert GenerateFalse
RemotableTrue

Member Modules:

ID Module Type TypeId RunAs 
Microsoft.Windows.DNSServer.2003.Module DataSource Microsoft.Windows.DNSServer.Library.DataSource.NSLookupTest.PropertyBag Default
MapToPerf ConditionDetection System.Performance.DataGenericMapper Default
WriteDB WriteAction Microsoft.SystemCenter.CollectPerformanceData Default

Source Code:

<Rule ID="Microsoft.Windows.DNSServer.2003.Rule.CollectLocalResolutionTime" Enabled="onEssentialMonitoring" Target="Microsoft.Windows.DNSServer.2003.Server" ConfirmDelivery="false" Remotable="true" Priority="Normal" DiscardLevel="100">
<Category>PerformanceCollection</Category>
<DataSources>
<DataSource ID="Microsoft.Windows.DNSServer.2003.Module" TypeID="DNS!Microsoft.Windows.DNSServer.Library.DataSource.NSLookupTest.PropertyBag">
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>360</TimeoutSeconds>
<Host>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</Host>
<Server>$Target/Property[Type="DNS!Microsoft.Windows.DNSServer.Library.Server"]/ListeningIP$</Server>
<QueryType>a</QueryType>
<IsConditional>false</IsConditional>
<ForwarderName>none</ForwarderName>
<Option>2</Option>
<DebugFlag>false</DebugFlag>
</DataSource>
</DataSources>
<ConditionDetection ID="MapToPerf" TypeID="Perf!System.Performance.DataGenericMapper">
<ObjectName>DNS Server</ObjectName>
<CounterName>Response Time</CounterName>
<InstanceName/>
<Value>$Data/Property[@Name='WorstTime']$</Value>
</ConditionDetection>
<WriteActions>
<WriteAction ID="WriteDB" TypeID="SC!Microsoft.SystemCenter.CollectPerformanceData"/>
</WriteActions>
</Rule>