Best Practice: Discoveries should have discovery types

 

What does this best practice check for?

All management packs contain component discoveries to find all instances of application elements in an environment. As a best practice, discoveries should have discovery types defined. Discovery types declare the classes and relationships discovered by a particular discovery

Why is it important to follow this best practice? What is the impact of not following this best practice?

For discoveries that do not have discovery types explicitly defined, the result is that the end-user cannot figure out which discovery workflow is responsible for discovering which classes. Also, as a side effect of not defining discovery types, the discovered classes and relationships that are not explicitly defined in discovery types will not show in the Authoring Space of the Operations Console.

How do I fix this?

Using the Authoring Console:

1.        For any discovery, open the Properties dialog. In the Discovered Classes tab, make sure to fill in which classes and/or relationships are being discovered as a result of this discovery.

Using XML:

     < Discovery ID = " Microsoft.Windows.Server.2008.Computer.Discovery" Enabled =" onEssentialMonitoring" Target =" Windows!Microsoft.Windows.Server.Computer" >

       < Category > Discovery </ Category >

        < DiscoveryTypes >

          < DiscoveryClass TypeID = " Microsoft.Windows.Server.2008.Computer" >

            < Property TypeID = " Microsoft.Windows.Server.2008.Computer" PropertyID =" InstallType" />

          </ DiscoveryClass >

          < DiscoveryClass TypeID = " Microsoft.Windows.Server.2008.OperatingSystem" >

            < Property TypeID = " Microsoft.Windows.Server.2008.OperatingSystem" PropertyID =" InstallType" />

          </ DiscoveryClass >

          < DiscoveryClass TypeID = " Microsoft.Windows.Server.2008.Core.Computer" />

          < DiscoveryClass TypeID = " Microsoft.Windows.Server.2008.Core.OperatingSystem" />

          < DiscoveryClass TypeID = " Microsoft.Windows.Server.2008.Full.Computer" />

          < DiscoveryClass TypeID = " Microsoft.Windows.Server.2008.Full.OperatingSystem" />

          < DiscoveryClass TypeID = " Microsoft.Windows.Server.2008.R2.Computer" />

          < DiscoveryClass TypeID = " Microsoft.Windows.Server.2008.R2.OperatingSystem" >

            < Property TypeID = " Microsoft.Windows.Server.2008.R2.OperatingSystem" PropertyID =" PowerPlan" />

          </ DiscoveryClass >

          < DiscoveryClass TypeID = " Microsoft.Windows.Server.2008.R2.Core.Computer" />

          < DiscoveryClass TypeID = " Microsoft.Windows.Server.2008.R2.Core.OperatingSystem" />

          < DiscoveryClass TypeID = " Microsoft.Windows.Server.2008.R2.Full.Computer" />

          < DiscoveryClass TypeID = " Microsoft.Windows.Server.2008.R2.Full.OperatingSystem" />

        </ DiscoveryTypes >

       < DataSource ID = " DS" TypeID =" Microsoft.Windows.Server.2008.Discovery.DataSource" >

         < IntervalSeconds > 86400 </ IntervalSeconds >

         < TimeoutSeconds > 360 </ TimeoutSeconds >

         < SourceId > $MPElement$ </ SourceId >

       </ DataSource >

     </ Discovery >