SCOM Dashboard

Above is my version of a SCOM dashboard. This dashboard is actually report that was created in Visual Studio 2008. The idea for this dashboard is based on another persons work here http://contoso.se/blog/?p=1409, the dasboard is based on the SCCM dashboard that is then customized for SCOM and is running on SharePoint using webparts. This SCCM dashboard is still in beta and it seems there is no plans to do one for SCOM. My dashboard is build using Visual Studio 2008 and is hosted on the SCOM reporting server running SQL reporting services 2008.

The Agent Status pie chart is using the following query – copied from http://contoso.se/blog/?p=1409
SELECT ‘Responding’ as Status, COUNT(*) as TotalMachines FROM ManagedEntityGenericView INNER JOIN ManagedTypeView
ON ManagedEntityGenericView.MonitoringClassId = ManagedTypeView.Id
WHERE (ManagedEntityGenericView.IsAvailable = ‘True’) AND (ManagedTypeView.Name = ‘Microsoft.SystemCenter.Agent’)
Union
SELECT ‘Not Responding’ as Status, COUNT(*) as TotalMachines FROM ManagedEntityGenericView INNER JOIN ManagedTypeView
ON ManagedEntityGenericView.MonitoringClassId = ManagedTypeView.Id
WHERE (ManagedEntityGenericView.IsAvailable = ‘false’) AND (ManagedTypeView.Name = ‘Microsoft.SystemCenter.Agent’)

The agent health bar chart is using the following query – copied from http://contoso.se/blog/?p=1409
SELECT [State] = CASE ManagedEntityGenericView.HealthState
WHEN 1 THEN ‘Healthy’
WHEN 2 THEN ‘Warning’
WHEN 3 THEN ‘Critical’
ELSE ‘Unknown’
END
, COUNT(1) AS GroupCount
FROM ManagedEntityGenericView INNER JOIN
ManagedTypeView ON ManagedEntityGenericView.MonitoringClassId = ManagedTypeView.Id
WHERE (ManagedTypeView.Name LIKE ‘Microsoft.Windows.Computer’)
GROUP BY ManagedEntityGenericView.HealthState
ORDER BY GroupCount

The alert severity bar chart is using this query – own work
SELECT COUNT(1) AS activeAlerts, ‘Information’
FROM Alert WHERE ResolutionState = ‘0’
and severity =0
group by severity
union
SELECT COUNT(1) AS activeAlerts,’Warning’
FROM Alert WHERE ResolutionState = ‘0’
and severity =1
group by severity
union
SELECT COUNT(1) AS activeAlerts,’Critical’
FROM Alert WHERE ResolutionState = ‘0’
and severity =2
group by severity

The gauge for agents is using this query – copied from http://contoso.se/blog/?p=1409
SELECT COUNT(*) AS NumManagedComps FROM (
SELECT bme2.BaseManagedEntityID
FROM BaseManagedEntity bme WITH (NOLOCK)
INNER JOIN BaseManagedEntity bme2 WITH (NOLOCK) ON bme2.BaseManagedEntityID = bme.TopLevelHostEntityID
WHERE bme2.IsDeleted = 0
AND bme2.IsDeleted = 0
AND bme2.BaseManagedTypeID = (SELECT TOP 1 ManagedTypeID FROM ManagedType WHERE TypeName = ‘microsoft.windows.computer’)
GROUP BY bme2.BaseManagedEntityID
) AS Comps

The top 10 Alerts grid uses the following query – copied from http://contoso.se/blog/?p=1409
SELECT TOP 10 SUM(1) AS AlertCount, AlertStringName
FROM Alertview WITH (NOLOCK)
WHERE TimeRaised is not NULL
GROUP BY AlertStringName, AlertStringDescription, MonitoringRuleId, Name
ORDER BY AlertCount DESC

Advertisements

2 thoughts on “SCOM Dashboard

  1. Hi,

    Great stufs you got there. Would you be able to advise on how should the system uptime counter be setup as well as I tried the query you have provided but i seems cant to get pass this line (line 9) in the first query

    and datetime>=getdate() – ’04:28:00′

    Would you be able to help? Thanks!

  2. How is your datasource configured /? are you using the operations manager DW /? I dont see it .. can you show the equivalent queries against the operations manager DW

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s