You can create an override for a property or configuration parameter for a monitor. A property override changes the default value of a monitor property, and a configuration override changes the default value of a custom configuration setting for a monitor. If you want to create an override for a monitor, use the Microsoft.EnterpriseManagement.Configuration.ManagementPackMonitorPropertyOverride or Microsoft.EnterpriseManagement.Configuration.ManagementPackMonitorConfigurationOverride class. These classes are derived from the Microsoft.EnterpriseManagement.Configuration.ManagementPackMonitorOverride class.

The following properties can be overridden for unit monitors.

The following properties can be overridden for rollup monitors.

The following properties can be overridden for dependency monitors.

To figure out which parameters can be overridden, you must look at the definition of the monitor in the Management Pack that defines the monitor. All the parameters that can be overridden are defined in the OverrideableParameters element of the monitor You can also call the GetOverrideableParameters method to get the list of parameters programmatically.

The following example creates an override for the Enabled property of a monitor.

Visual Basic  Copy Code
Imports System
Imports System.Collections.Generic
Imports System.Text
Imports Microsoft.EnterpriseManagement
Imports Microsoft.EnterpriseManagement.Administration
Imports Microsoft.EnterpriseManagement.Common
Imports Microsoft.EnterpriseManagement.Configuration
Imports Microsoft.EnterpriseManagement.Monitoring


Namespace SDKSamples
	Class Program
		Public Overloads Shared Function Main(ByVal args() As String) As Integer

			Dim mg As ManagementGroup
			Dim mp As ManagementPack
			Dim monitoringClass As MonitoringClass
			Dim classCriteria As MonitoringClassCriteria
			Dim monitorCriteria As MonitorCriteria
			Dim monitor As ManagementPackMonitor
			Dim monitorOverride As ManagementPackMonitorPropertyOverride

			mg = New ManagementGroup("localhost")

			mp = mg.GetManagementPacks("OverrideTestMP")(0)

			classCriteria = New MonitoringClassCriteria("Name='Microsoft.SQLServer.2005.Database'")

			monitoringClass = mg.GetMonitoringClasses(classCriteria)(0)

			monitorCriteria = New MonitorCriteria("DisplayName='Database Status'")

			monitor = mg.GetMonitors(monitorCriteria)(0)

			monitorOverride = New ManagementPackMonitorPropertyOverride(mp, "SampleMonitorOverride")

			monitorOverride.Monitor = monitor
			monitorOverride.Property = ManagementPackMonitorProperty.Enabled
			monitorOverride.Value = "false"
			monitorOverride.Context = monitoringClass
			monitorOverride.DisplayName = "SampleMonitorOverride"

			mp.Verify()

			' Save the changes into the management pack.
			mp.AcceptChanges()
		End Function
	End Class
End Namespace
C#  Copy Code
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Text;
using Microsoft.EnterpriseManagement;
using Microsoft.EnterpriseManagement.Administration;
using Microsoft.EnterpriseManagement.Common;
using Microsoft.EnterpriseManagement.Configuration;
using Microsoft.EnterpriseManagement.Monitoring;

namespace SDKSamples
{
	class Program
	{
		//---------------------------------------------------------------------
		static void Main(string[] args)
		{
			ManagementGroup						 mg;
			ManagementPack						mp;
			MonitoringClassCriteria				 classCriteria;
			MonitoringClass						 monitoringClass;
			MonitorCriteria						 monitorCriteria;
			ManagementPackMonitor				 monitor;
			ManagementPackMonitorPropertyOverride   monitorOverride;

			mg = new ManagementGroup("localhost");

			mp = mg.GetManagementPacks("OverrideTestMP")[0];

			classCriteria = new MonitoringClassCriteria("Name='Microsoft.SQLServer.2005.Database'");

			monitoringClass = mg.GetMonitoringClasses(classCriteria)[0];

			monitorCriteria = new MonitorCriteria("DisplayName='Database Status'");

			monitor = mg.GetMonitors(monitorCriteria)[0];

			monitorOverride = new ManagementPackMonitorPropertyOverride(mp, "SampleMonitorOverride");

			monitorOverride.Monitor	 = monitor;
			monitorOverride.Property	= ManagementPackMonitorProperty.Enabled;
			monitorOverride.Value	 = "false";
			monitorOverride.Context	 = monitoringClass;
			monitorOverride.DisplayName = "SampleMonitorOverride";

			mp.Verify();
		
			//Save the changes into the management pack.
			mp.AcceptChanges();
	}	
}
}

Send comments about this topic to Microsoft.