Monitor State Report


OpsMgr Health Explorer allows you to look at the State of all Monitors for a specific object.  But, what if you want to look at the State of a specific Monitor on ALL objects that it applies to?  For example, I want to see the state of the “SQL Server Windows Service” Monitor on all objects that it applies to….or maybe just those that are in a Critical State….or maybe just for the version of the monitor that is targeted at the SQL 2005 DB Engine class.  Here is a report that should help with this.

The report allows you to select a Monitor and view the state of all objects targeted by the monitor.  It requires a data source for the Operations database (the data source should be named “OpsDB”.  Kevin Holman has instructions on how to create this here.

The report has four parameters to select:

Selecting a Target Class will narrow down the list of monitors to choose from.  If you know what class the monitor you are interested in targets, select it here.  Otherwise, use the default of <ALL>

Monitor Name Filter
If you know part of the name of the monitor you are interested in, enter it here to narrow down the list of monitors.  Otherwise, use the default of “%”

Monitor Name
This will give a list of monitors to choose from, based on selection in the Target and Monitor Name Filter Parameters.  This uses the Display Name property of the monitors, and there could be more than one monitor with the same display name.  For example, the SQL MP has a “SQL Server Windows Service” monitor targeted at both SQL 2005 DB Engine and SQL 2008 DB Engine.  If the Target parameter is set to "<ALL>”, we will show the state of both monitors.  If you need to narrow it down, select the desired target.

Select the state(s) that you want to show in the report (Unmonitored, Healthy, Warning, Critical)




Right now, the report is pretty basic in what it displays…I’m open to feedback and suggestions for improvement.

Monitor State

Comments (4)
  1. J Harper says:

    Here's a quick query to show all alerts from all monitors…although you'll probably want to narrow it down to a specific monitor or date range:






    ,vds.Name as WorkflowName

    ,vmp.ManagementPackDefaultName as ManagementPack

    from Alert.vAlert a

    join vMonitor r on r.MonitorRowId=a.WorkflowRowId

    join vManagementPack vmp on vmp.ManagementPackRowID=r.ManagementPackRowId

    join vDisplayString vds on vds.ElementGuid=r.MonitorGuid

    join vManagedEntity vme on vme.ManagedEntityRowId=a.ManagedEntityRowId

    where a.MonitorAlertInd=1

    order by a.RaisedDateTime desc

  2. Rama says:

    What if someone needs to run a report of any servers that has Drive space less than 50% or CPU is over 80% (report based on threshold values)…

    Would you be able to post a sample rdl on this issue??

  3. Ramesh says:

    Could you let me know the SQL query for populating the alerts raised by a monitor from OpsMgr DW DB?

  4. Dominique says:


    Is it possible to have the same reports for a certain period of time?

    Apparently it is only a current status that I am getting…for now

    I will need to have the up and down of the service?(with graphs if possible?)



Comments are closed.

Skip to main content