Previous Topic: Monitor using SNMPNext Topic: High Availability


Data Collection on MON Appliances

You can collect counter data and configuration for appliances connected to the MON appliance by sending HTTP GET requests to the aux input terminal of the MON appliance. Collection is done using a custom REST-based protocol, running over HTTP.

This protocol defines three types of resources:

Each of these types is embedded in the scope of the previous. Entities only have meaning in the scope of appliances. Counters are only meaningful in the scope of a particular entity. The data collection API allows for retrieving all counter configurations and values known to MON.

MON exports requested data configuration and values in any of the following structured text formats:

Enable Data Collection

The API protocol provides reading functionality and only uses the GET HTTP method. You can define every supported type of protocol request by its URI and the output structure. Characters considered special for the URI should be escaped using the standard %-encoding.

The output is defined by its XML schema. The primary output format is XML. Translation into other output formats, such as UDL and JSON, is achieved by direct usage of the respective output format's means of expressing structure and attributes. For example, UDL entities vs. XML entities, UDL attributes vs. XML attributes, JSON objects vs. XML entities, JSON object properties vs. XML attributes.

The root node of all outputs contains a timestamp attribute. This provides the server time at the moment the response was created.

The following is a description of all supported URL calls.

Counter Configuration Calls

/monapi/desc[?fmt=<format>] 

Returns a list of all available appliances in a specified output format. <format> is one of the known output formats, such as xml.

Output

<response timestamp="1194967464">
   <appliance name="main.web" />
   <appliance name="main.in" />
</response>

/monapi/desc/<apps>[?fmt=<format>] 

Returns a list of all available entities within the requested appliances (<apps>). <apps> might be a single appliance name, comma-separated list of appliance names, or a wildcard character (*) meaning all available appliances.

Output:

<response timestamp="1194967464">
   <appliance name="main.web">
      <entity name="Terminal in" />
      <entity name="Terminal out" />
      <entity name="Volume data" />
      <entity name="CPU" />
      <entity name="Memory" />
      <entity name="Network" />
   </appliance>
</response>

/monapi/desc/<apps>/<ents>[?fmt=<format>] 

Returns a list of all available counters within the requested appliance entities (<ents>). <ents> might be a single entity name, comma-separated list of entity names, or a wildcard character (*) meaning all available entities. This is also true for <apps>.

Output

<response timestamp="1194967464">
   <appliance name="main.web">
      <entity name="Terminal in">
         <counter name="Sent bytes" />
         <counter name="Received bytes" />
      </entity>
   </appliance>
</response>

/monapi/desc/<apps>/<ents>/<cnts>[?fmt=<format>] 

Returns the descriptions of requested counters (<cnts>). <ents>, <ents> and <ents> might be a single appliance/entity/counter, comma-separated list, or wildcard character (*) meaning all available entities.

Output

<response timestamp="1194967464">
   <appliance name="main.web">
      <entity name="Terminal in">
         <counter name="Sent bytes" description=""  units=""  alarm_below="" alarm_above="" range_lower="" range_upper="" pace="" />
         <counter name="Received bytes" description=""  units=""  alarm_below="" alarm_above="" range_lower="" range_upper="" pace="" />
      </entity>
   </appliance>
</response>

Counter Value Calls

/monapi/val/<apps>/<ents>/<cnts>[?fmt=<format>] 

Returns the values of the specified counters. If any app, ent or cnt parameters are omitted, a wildcard value is assumed. For example, /monapi/val/main.web means the values of all counters in all entities of appliance main.web.

Output

<response timestamp="1194967464">
   <appliance name="main.web">
      <entity name="Terminal in">
         <counter name="Sent bytes" value="23234" />
         <counter name="Received bytes" value="690432" />
      </entity>
   </appliance>
</response>