MSSQL: SQL Server Always On High Availability Group Discovery

Microsoft.SQLServer.Core.Discovery.AlwaysOnGroupOfGroups (Discovery)

This object discovery populates the Always On High Availability Group to contain all SQL Server Always On Availability groups.

Knowledge Base article:

Summary

This object discovery populates the Always On High Availability Group to contain all SQL Server Always On Availability groups.

Overridable Parameters

Name

Description

Default Value

Enabled

Enables or disables the workflow.

Yes

Element properties:

TargetMicrosoft.SQLServer.Core.AlwaysOnHighAvailabilityGroup
EnabledTrue
RemotableFalse

Object Discovery Details:

Discovered Classes and their attribuets:
Discovered relationships and their attribuets:

Member Modules:

ID Module Type TypeId RunAs 
DS DataSource Microsoft.SystemCenter.GroupPopulator Default

Source Code:

<Discovery ID="Microsoft.SQLServer.Core.Discovery.AlwaysOnGroupOfGroups" Enabled="true" Target="Microsoft.SQLServer.Core.AlwaysOnHighAvailabilityGroup" ConfirmDelivery="true" Remotable="true" Priority="Normal">
<Category>Discovery</Category>
<DiscoveryTypes>
<DiscoveryClass TypeID="Microsoft.SQLServer.Core.AlwaysOnHighAvailabilityGroup"/>
<DiscoveryRelationship TypeID="Microsoft.SQLServer.Core.AlwaysOnHighAvailabilityGroupContainsAvailabilityGroupGroup"/>
<DiscoveryRelationship TypeID="Microsoft.SQLServer.Core.AlwaysOnHighAvailabilityGroupContainsAvailabilityReplicaGroup"/>
<DiscoveryRelationship TypeID="Microsoft.SQLServer.Core.AlwaysOnHighAvailabilityGroupContainsDatabaseReplicaGroup"/>
</DiscoveryTypes>
<DataSource ID="DS" TypeID="SC!Microsoft.SystemCenter.GroupPopulator">
<RuleId>$MPElement$</RuleId>
<GroupInstanceId>$Target/Id$</GroupInstanceId>
<MembershipRules>
<MembershipRule>
<MonitoringClass>$MPElement[Name="Microsoft.SQLServer.Core.AvailabilityGroupGroup"]$</MonitoringClass>
<RelationshipClass>$MPElement[Name="Microsoft.SQLServer.Core.AlwaysOnHighAvailabilityGroupContainsAvailabilityGroupGroup"]$</RelationshipClass>
<IncludeList>
<MonitoringObjectId>$MPElement[Name="Microsoft.SQLServer.Core.AvailabilityGroupGroup"]$</MonitoringObjectId>
</IncludeList>
</MembershipRule>
<MembershipRule>
<MonitoringClass>$MPElement[Name="Microsoft.SQLServer.Core.AvailabilityReplicaGroup"]$</MonitoringClass>
<RelationshipClass>$MPElement[Name="Microsoft.SQLServer.Core.AlwaysOnHighAvailabilityGroupContainsAvailabilityReplicaGroup"]$</RelationshipClass>
<IncludeList>
<MonitoringObjectId>$MPElement[Name="Microsoft.SQLServer.Core.AvailabilityReplicaGroup"]$</MonitoringObjectId>
</IncludeList>
</MembershipRule>
<MembershipRule>
<MonitoringClass>$MPElement[Name="Microsoft.SQLServer.Core.DatabaseReplicaGroup"]$</MonitoringClass>
<RelationshipClass>$MPElement[Name="Microsoft.SQLServer.Core.AlwaysOnHighAvailabilityGroupContainsDatabaseReplicaGroup"]$</RelationshipClass>
<IncludeList>
<MonitoringObjectId>$MPElement[Name="Microsoft.SQLServer.Core.DatabaseReplicaGroup"]$</MonitoringObjectId>
</IncludeList>
</MembershipRule>
</MembershipRules>
</DataSource>
</Discovery>