The following describes how to define and package a plugin that is fully compliant with The Grid, and Uptime Infrastructure Monitor's Extension Manager. Creating a compliant plugin ensures it is correctly categorized, and can be installed as seamlessly as possible from within Uptime Infrastructure Monitor. A plugin has the following guidelines:
the main distributable is in .ZIP format
the plugin scripts and other contents are structured in subdirectories:
/files: contains all files commonly used across different platforms (required)
an XML file at the root of the distributable that defines the plugin
Understanding the Plugin's XML Definition
A plugin's XML definition performs several key tasks:
provides metadata for the plugin for categorization and management in Uptime Infrastructure Monitor's Extension Manager and Add Service Monitor page
indicates the core script and auxiliary files that are required to run the plugin monitor
defines the input fields on the plugin's configuration page that allow users to pass data to the plugin when it is run
defines the output that the plugin returns to Uptime Infrastructure Monitor (to be included in alert messages, or for retention in the DataStore for graphing and reporting), and allows users to define comparative criteria for returned output that triggers alerts
Each input or output field on the plugin's configuration page is built from instances of <element>, which is a child element of <elements>. The following is an example of an XML definition that includes three input fields and three output fields.
For the first output element, the plugin accepts a string value that will be compared against output from the executed script. The string data type determines the comparative options to determine warning and critical conditions.
The next two output elements are similar enough to be paired on the configuration screen using <group> as a parent element. The name attribute is the grouping label in the user interface. The units attribute adds a label after the field to assist the user.
The first of the two elements accepts integer values and compares them to integer values returned through the script.
The second of the two elements accepts decimal values and compares them to a range of values returned through the script.
Definition XML Reference
The following table summarizes valid values for the various XML elements, child elements, and attributes that define a plugin.
Child element of <elements>
Determines whether the plugin is hidden in the Uptime Infrastructure Monitor interface. Enabling this allows you to create hidden plugins.
optional; default false
The name of the plugin as displayed in the Uptime Infrastructure Monitor interface (for example, the Add Service Monitor page).
References to any support classes that are required to run the plugin.
The version scheme supported is 0.0 (major and minor version). A minor-minor version (for example, 1.2.1) is not processed.
The main category this plugin belongs to. This will help others find the plugin on the Grid, and this is where the plugin will be listed on the Add Monitors page.
Advanced and Script Monitors
Applications - All Types
Applications - Databases
Applications - Email
Applications - General
Applications - Web Services
End User Experience Monitors
Network Device Monitors
Network Service Monitors
Operating System Monitors
Other categories the plugin is related to, separated by commas.
This element wraps child elements that describe the plugin specifically for the Grid.
Child element of <grid_info>
The versions of the Uptime Infrastructure Monitor Monitoring Station supported by this plugin. The version scheme supported must match Uptime Infrastructure Monitor releases (in 0.0 format), and it needs to be a comma-separated list of every version supported.
If "true," indicates that the administrator is also going to have to install or deploy agent-side scripts as a follow-up step to installing the plugin on the Monitoring Station. If this is enabled, the user will see a related message on the Extension Manager, directing them to the plugin's Grid page for more information.
optional; default false
If "true," indicates this version will overwrite previous versions of the plugin as part of an automatic upgrade.
optional; default false
Help text for the plugin that is displayed when the user screams "help!" as loud as they can. lol j/k – it's what appears as a tool tip for the plugin on the Add Service Monitor page.
Describes what the plugin processes and inputs and outputs, and how these are presented to, and configured by, Uptime Infrastructure Monitor users.
Attributes of <elements>
The label of the input or output field in the Uptime Infrastructure Monitor interface, during plugin configuration.
Determines whether this child element is taking data from the Uptime Infrastructure Monitor user and passing it to the plugin script, or taking data output by the plugin script for use in Uptime Infrastructure Monitor.
The expected data type that will be sent to, or returned by, the plugin script.
ranged (output only)
Determines whether the element appears in a standard or advanced view in the configuration screen.
default enabled (1)
default is disabled (0)
adds a label in the GUI to help the user determine what to input
Child elements of <element>
Determines the size of the text input field during plugin configuration.
Populates the field with a default value.
The name of the configuration field in the Uptime Infrastructure Monitor interface.
The description that appears as a tool tip.
Optionally use a child element (for example, <integer/> or <alphanumeric/>) to indicate how to validate the input data.
Message provided to the user if the validation rule fails.
Indicates how the element is presented and configured in the UI. Use one of the following child elements:
The single_select child element uses a type attribute (for example, dropdown or radio) that indicates the type of GUI selection widget that will be used. A value child element then defines each of the selector options. For example: