You can develop a custom runtime script to create monitoring data for use in a Management Pack. To create monitoring data, a script creates a MOMPropertyBag object, which stores a set of name-value pairs. After adding as many name-value pairs to the object as are needed, a script submits the data to a Management Server for processing.
To develop a monitoring script
-
Create a new script in any script authoring environment. For more information about creating scripts, see Getting Started Developing Runtime Scripts.
-
Create an instance of the Operations Manager scripting object (MOMScriptAPI).
-
Create a new property bag instance by calling the scripting object's MOMScriptAPI.CreatePropertyBag method.
-
Add any number of name-value pairs to the property bag by calling the MOMPropertyBag.AddValue method for each name-value pair.
-
Submit the property bag to Operations Manager for processing by calling the scripting object's MOMScriptAPI.Return method.
-
Add the script to a Management Pack. The Management Pack defines the script, configures the script's arguments, and defines how frequently the script runs. For more information, see How to Use Monitoring Data in a Management Pack.
Example
This section provides a simple example script written in VBScript. The example script reads the size of all files in a specified directory and creates a name-value pair for each file. The pair consists of the file's name and size (expressed in kilobytes). The script then submits the monitoring data to a Management Server for processing.
The script requires the following argument:
- sPathThe directory containing the files whose size
should be monitored.
The argument's value is passed to the script by the monitor, rule, or task that runs the script.
| Visual Basic Script | Copy Code |
|---|---|
Option Explicit
Dim oAPI
Set oAPI = CreateObject("MOM.ScriptAPI")
' Check for the required script arguments.
Dim oArgs
Set oArgs = WScript.Arguments
if oArgs.Count < 1 Then
' If the script is called without the required arguments,
' create an information event and then quit.
Call oAPI.LogScriptEvent("CollectAppYComponentFileSize.vbs",101,0, _
"CollectAppYComponentFileSize script was called without any " _
& "arguments and was not executed. ")
Wscript.Quit -1
End If
Dim sPath
sPath = oArgs(0) ' The path of the directory containing the files.
Dim oFso, oFile, oFolder, oBag, oSize
Set oFso = CreateObject("Scripting.FileSystemObject")
if (oFso.FolderExists(sPath)) Then
Set oBag = oAPI.CreatePropertyBag()
Set oFolder = oFso.GetFolder(sPath)
For Each oFile in oFolder.Files
oSize = oFile.Size/1024
Call oBag.AddValue(oFile.Name, oSize)
Next
Call oAPI.Return(oBag)
End If
|
|
See Also
Send comments about this topic to Microsoft.
