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
