Data ONTAP: LUN Latency Rule

DataONTAP.Performance.Rule.LunLatency (Rule)

This rule inserts the LUN Latency performance counter into the System Center Operations Manager database and into the Data Warehouse.

Knowledge Base article:

Summary

This rule inserts the LUN Latency performance counter into the System Center Operations Manager database and into the Data Warehouse.

Element properties:

TargetDataONTAP.ManagementServer
CategoryPerformanceCollection
EnabledTrue
Alert GenerateFalse
RemotableTrue

Member Modules:

ID Module Type TypeId RunAs 
DS DataSource System.SimpleScheduler Default
GetLunLatencyScript WriteAction Microsoft.Windows.ScriptWriteAction Default

Source Code:

<Rule ID="DataONTAP.Performance.Rule.LunLatency" Enabled="true" Target="DataONTAP.ManagementServer" ConfirmDelivery="true" Remotable="true" Priority="Normal" DiscardLevel="100">
<Category>PerformanceCollection</Category>
<DataSources>
<DataSource ID="DS" TypeID="System!System.SimpleScheduler">
<IntervalSeconds>3600</IntervalSeconds>
<SyncTime>06:30</SyncTime>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GetLunLatencyScript" TypeID="Windows!Microsoft.Windows.ScriptWriteAction">
<ScriptName>GetLunLatency.vbs</ScriptName>
<Arguments>$Target/Property[Type="DataONTAP.ManagementServer"]/Fqdn$</Arguments>
<ScriptBody><Script>
'**********************************************************************************
' Script Name - GetLunLatency.vbs
'
' Description:
' Gets LUN latency performance values and insert them into the database
'
' (c) Copyright NetApp Inc. 2011 - All rights reserved
'**********************************************************************************

Option Explicit
SetLocale("en-us")

Dim oAPI
Set oAPI = CreateObject("MOM.ScriptAPI")

Dim oArgs
Set oArgs = WScript.Arguments

Dim errorMessage
if oArgs.Count &lt; 1 Then
errorMessage = "GetLunLatency.vbs was called with the incorrect # of parameters (param count = " &amp; oArgs.Count &amp; ")."
'WScript.Echo(errorMessage)
Call oAPI.LogScriptEvent("GetLunLatency.vbs",1201,0,errorMessage)
Wscript.Quit -1
End If

Dim ManagementServer

ManagementServer = oArgs(0)

Dim oNetAppSCOMAPI
Set oNetAppSCOMAPI = CreateObject("NetApp.OM.Server.Monitoring.StorageMonitoring")

If Err Then
errorMessage = "Failed to create NetAppSCOM object" &amp; vbNewLine &amp; _
"Err.description = """ &amp; Err.description &amp; """" &amp; vbNewLine &amp; _
"Err.helpcontext = """ &amp; Err.helpcontext &amp; """" &amp; vbNewLine &amp; _
"Err.helpfile = """ &amp; Err.helpfile &amp; """" &amp; vbNewLine &amp; _
"Err.number = """ &amp; Err &amp; """ (&amp;H" &amp; hex(Err) &amp; ")" &amp; vbNewLine &amp; _
"Err.source = """ &amp; Err.source &amp; """" &amp; vbNewLine
'WScript.Echo(errorMessage)
Call oAPI.LogScriptEvent("GetLunLatency.vbs",1202,0,errorMessage)
WScript.Quit -1
End If

Dim result
result = oNetAppSCOMAPI.GetLUNLatency(ManagementServer)

If Err Then
errorMessage = "Failed to call GetLUNLatency" &amp; vbNewLine &amp; _
"Err.description = """ &amp; Err.description &amp; """" &amp; vbNewLine &amp; _
"Err.helpcontext = """ &amp; Err.helpcontext &amp; """" &amp; vbNewLine &amp; _
"Err.helpfile = """ &amp; Err.helpfile &amp; """" &amp; vbNewLine &amp; _
"Err.number = """ &amp; Err &amp; """ (&amp;H" &amp; hex(Err) &amp; ")" &amp; vbNewLine &amp; _
"Err.source = """ &amp; Err.source &amp; """" &amp; vbNewLine
'WScript.Echo(errorMessage)
Call oAPI.LogScriptEvent("GetLunLatency.vbs",1203,0,errorMessage)
WScript.Quit -1
End If

Call oAPI.LogScriptEvent("GetLunLatency.vbs",1204,0,"Event collection succeeded for " &amp; ManagementServer &amp; ".")

Set oNetAppSCOMAPI = Nothing
Set oAPI = Nothing



</Script></ScriptBody>
<TimeoutSeconds>900</TimeoutSeconds>
</WriteAction>
</WriteActions>
</Rule>