Clustered Data ONTAP: Health Summary Discovery

DataONTAP.Cluster.HealthSummaryStat.Discovery (Discovery)

The Health Summary Discovery displays the number and state of all storage controllers and SnapMirror relationships.

Knowledge Base article:

Summary

The Health Summary Discovery displays the number and state of all storage controllers and SnapMirror relationships.

Element properties:

TargetDataONTAP.Cluster.AdminVserversGroup
EnabledTrue
Frequency300
RemotableFalse

Object Discovery Details:

Discovered Classes and their attribuets:

Member Modules:

ID Module Type TypeId RunAs 
PS DataSource Microsoft.Windows.TimedPowerShell.DiscoveryProvider DataONTAP.SecureReference.RunAsProfile

Source Code:

<Discovery ID="DataONTAP.Cluster.HealthSummaryStat.Discovery" Enabled="true" Target="DataONTAP.Cluster.AdminVserversGroup" ConfirmDelivery="true" Remotable="true" Priority="Normal">
<Category>Discovery</Category>
<DiscoveryTypes>
<DiscoveryClass TypeID="DataONTAP.Cluster.HealthSummary.DashboardStat"/>
</DiscoveryTypes>
<DataSource ID="PS" TypeID="Windows!Microsoft.Windows.TimedPowerShell.DiscoveryProvider" RunAs="DS!DataONTAP.SecureReference.RunAsProfile">
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<ScriptName>HealthSummary.ps1</ScriptName>
<ScriptBody><Script>##############################################################################
# Copyright (c) 2013 NetApp.
#
# HealthSummary.ps1
#
# This script gets a summary of the health of clusters, storage virtual machines
# nodes and inserts to the SCOM database to be shown in the dashboard
##############################################################################
param($sourceId,$managedEntityId)

import-module operationsmanager

$api = new-object -comObject 'MOM.ScriptAPI'
$discoveryData = $api.CreateDiscoveryData(0, $SourceId, $ManagedEntityId)

$logMessage = "Calling script to get health summary statistics"
$api.LogScriptEvent("HealthSummary.ps1", 6000, 0, $logMessage)

function CreateSummaryStat($className, $displayName)
{
# Add discovered management server to discovery data
$instance = $discoveryData.CreateClassInstance("$MPElement[Name='DataONTAP.Cluster.HealthSummary.DashboardStat']$")

$totalNumber = (Get-SCOMClass -Name $className | Get-SCOMClassInstance).Count
$criticalNumber = (Get-SCOMClass -Name $className | Get-SCOMClassInstance | where {$_.HealthState -eq "Error"}).Count
$warningNumber = (Get-SCOMClass -Name $className | Get-SCOMClassInstance | where {$_.HealthState -eq "Warning"}).Count
$healthyNumber = (Get-SCOMClass -Name $className | Get-SCOMClassInstance | where {$_.HealthState -eq "Success"}).Count
$maintenanceModeNumber = (Get-SCOMClass -Name $className | Get-SCOMClassInstance | where {$_.InMaintenanceMode}).Count
$unknownNumber = (Get-SCOMClass -Name $className | Get-SCOMClassInstance | where {$_.HealthState -eq "Uninitialized"}).Count

$instance.AddProperty("SummaryObjectName", $displayName)
$instance.AddProperty("TotalNumber", $totalNumber)
$instance.AddProperty("CriticalNumber", $criticalNumber)
$instance.AddProperty("WarningNumber", $warningNumber)
$instance.AddProperty("HealthyNumber", $healthyNumber)
$instance.AddProperty("MaintenanceModeNumber", $maintenanceModeNumber)
$instance.AddProperty("UnknownNumber", $unknownNumber)
$discoveryData.AddInstance($instance)
}

CreateSummaryStat "DataONTAP.Cluster.AdminVserver" "Clusters"
CreateSummaryStat "DataONTAP.Cluster.DataVserver" "Storage Virtual Machines"
CreateSummaryStat "DataONTAP.Cluster.NodeVserver" "Nodes"

# Return discovery data
$discoveryData
</Script></ScriptBody>
<Parameters>
<Parameter>
<Name>sourceID</Name>
<Value>$MPElement$</Value>
</Parameter>
<Parameter>
<Name>managedEntityID</Name>
<Value>$Target/Id$</Value>
</Parameter>
</Parameters>
<TimeoutSeconds>300</TimeoutSeconds>
</DataSource>
</Discovery>