The agent structure is defined in a JSON definition. This definition is then registered towards the AIMS API. Once registered it can be viewed under "settings -> custom agents".
Example of JSON definition:
{ "id": "aims.int-sys", "majorVersion": 1, "minorVersion": 0, "name": "AIMS Internal System", "metadata": { "nodeTypes": [ { "name": "aims.int-sys.server", "displayName": "AIMS Server", "eventTypes": [ "aims.int-sys.server-error" ], "propertyTypes": [ "aims.int-sys.server-os" ], "statTypes": [ "aims.int-sys.server-cpu" ], "statuses": [ "aims.int-sys.unavailable", "aims.core.stopped", "aims.core.started" ] } ], "nodePropertyTypes": [ { "name": "aims.int-sys.server-os", "displayName": "operating system" } ], "nodeStatuses": [ { "name": "aims.int-sys.unavailable", "displayName": "unavailable", "type": "stopped" } ], "eventTypes": [ { "name": "aims.int-sys.server-error", "displayName": "AIMS server error" } ], "statTypeGroups": [ { "name": "aims.int-sys.server-stats", "displayName": "AIMS server statistics" } ], "statTypes": [ { "name": "aims.int-sys.server-cpu", "displayName": "CPU load", "group": "aims.int-sys.server-stats", "aggregation": "avg", "nodeAggregation": "avg", "unitType": "percent" } ] } }
- "id" - a unique identifier for your agent. Consists of two parts: <company-name>.<agent-name>. Length is 5-16 characters
- "majorVersion" - optional, primarely used for updating the version of an agent. If major / minor is dropped, it will default to major=1, minor=0
- "minorVersion - optional, primarely used for updating the version of an agent
- "name" - a name for your agent
- "metadata" - the section that defines the agent structure
- "nodeTypes" - define the nodes for the agent. An agent can have multiple nodes
- "name" - name of node
- "displayName" - displayed name of the node
- "eventTypes" - eventtypes for the node, see section below
- "propertyTypes" -properties connected to the node, see section below
- "statTypes" - what statistic types belong to the node, see section below
- "statuses" - what statuses can the node have, see section below
- "nodePropertyTypes" - a node can have multiple properties
- "name" - name of the property
- "displayName" - displayed name of the property
- "nodeStatuses" - a node can have multiple statuses
- "name" - name of status
- "displayName" - displayed name of status
- "type" - running / paused / stopped / undefined.
- "eventTypes" - what type of events are associated with the node
- "name" - name of event
- "displayName" - displayed name of event
- "statTypeGroups" - statTypes can be grouped in statTypeGroups
- "name" - name of statTypeGroup
- "displayName" - displayed name of statTypeGroup
- "statTypes" - time series based statistics provided by the agent. Multiple statTypes can be defined
- "name" - name of statType
- "displayName" - displayed name of statType
- "group" - statTypeGroup
- "aggregation" - avg / sum / max. The aggregation done by the agent
- "nodeAggregation" - avg / sum / max. The aggregation done by the node
- "unitType" - quantity / percent / milliseconds / bytes / hertz
- "nodeTypes" - define the nodes for the agent. An agent can have multiple nodes