All monitors reflect a certain aspect of the health of a specific entity or component. In management pack terms, this means that all monitors target a specific class. As a best practice, all monitors should target classes that have Public accessibility.
Classes that have internal accessibility cannot be customized in any manner that is not coded into the same .mp file as where the class is defined. This means that if our monitors and class definitions are in two separate .mp files, having your classes have Internal accessibility means that your monitors cannot target this class.
Also, this means that the customer cannot customize against these classes – they cannot create their own monitoring functionality that targets an Internalclass, nor can they apply any overrides to an Internal class. This typically results in a lot of customer dissatisfaction, and forces customer to reverse engineer the management pack with Public classes.
Using the Authoring Console:
1. For all classes that have monitoring, open the Properties dialog. Check that Accessibility is set to Public.
< ClassType ID = " Microsoft.Windows.Server.2008.LogicalDisk" Abstract =" false" Accessibility = " Public" Base =" WindowsServer!Microsoft.Windows.Server.LogicalDisk" Hosted =" true" Singleton =" false" />
< UnitMonitor ID = " Microsoft.Windows.Server.2008.LogicalDisk.AvailabilityHealth" Accessibility =" Public" Enabled =" true" Target = " Server2008!Microsoft.Windows.Server.2008.LogicalDisk" ParentMonitorID =" SystemHealth!System.Health.AvailabilityState" Remotable =" true" Priority =" Normal" TypeID =" Microsoft.Windows.Server.2008.LogicalDisk.Monitortype" ConfirmDelivery =" false" >
< Category > StateCollection </ Category >
</ UnitMonitor >