Share via


How to Query for Monitors

Applies To: System Center 2012 - Operations Manager

[This topic is pre-release documentation and is subject to change in future releases. Blank topics are included as placeholders.]

In Operations Manager, monitors can be used to assess various conditions that can occur in monitored objects. For example, you can use a monitor to assess the values of a performance counter, the existence of an event, the occurrence of data in a log file, or the status of a Windows service. The result of this assessment determines the health state of a target and the alerts that are generated.

You can query for monitors by defining criteria in the Microsoft.EnterpriseManagement.Configuration.ManagementPackMonitorCriteria class constructor. The criteria syntax is defined in Criteria Expression Syntax. The following property names are valid names that can be used in the criteria expression:

  • Id

  • Name

  • ManagementPackId

  • Accessibility

  • DisplayName

  • Description

  • Target

  • Algorithm

  • AlgorithmParameter

  • RelationshipType

  • CategoryOld

  • MemberMonitor

  • ParentMonitorId

  • IsUnitMonitor

  • IsInternalRollupMonitor

  • IsExternalRollupMonitor

  • AlertOnState

  • AlertAutoResolve

  • AlertPriority

  • AlertMessage

  • HasNonCategoryOverride

  • TimeAdded

  • LastModified

  • Category

The following code queries for all state collection monitors that have an alert priority equal to one:

/// <summary> 
/// Query for monitors.
/// </summary>
using System;
using System.Collections.Generic;
using Microsoft.EnterpriseManagement;
using Microsoft.EnterpriseManagement.Configuration;
using Microsoft.EnterpriseManagement.Monitoring;

namespace SDKSamples
{
    class Program
    {
        static void Main(string[] args)
        {
            ManagementGroup mg = new ManagementGroup("localhost");

            // The criteria specifies the monitors you want to collect.
            ManagementPackMonitorCriteria monitorCriteria =
                new ManagementPackMonitorCriteria(
                "Category = 'StateCollection' AND AlertPriority = 1");

            Console.WriteLine("Querying for data...");
            IList<ManagementPackMonitor> monitors =
                mg.Monitoring.GetMonitors(monitorCriteria);

            // Display information about each monitor.
            foreach (ManagementPackMonitor monitor in monitors)
            {
                Console.WriteLine("Monitor name: " + monitor.Name);
                Console.WriteLine("Status: " + monitor.Status.ToString());
                Console.WriteLine("Description: " + monitor.Description +
                    Environment.NewLine);
            }

        }
    }
}

See Also

Concepts

Operations Manager Data Queries Overview