POST - Agent definition

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