Info | ||
---|---|---|
| ||
This page is being updated with protocol changes introduced in M4 (and are unchanged in release 0.5) |
Protocol Header
The body segments of management messages are composed of sequences of binary-encoded data fields, in a manner consistent with the 0-10 version of the AMQP specification.
...
No Format |
---|
+-----+-----+-----+-----+-----------------------+ | 'A' | 'M' | '2' | 's' | seq | +-----+-----+-----+-----+------------+----------+ | kind (uint8) 1=Object, 2=Event | +------------------------------------+---------------------+ | packageName (str8) packageName (str8) | +----------------------------------------------------------+ | className (str8) className (str8) | +----------------------------------------------------------+ | schema-hash (bin128) schema-hash (bin128) | +-----------+--------------+-----------+-----------+----------+ | propCnt | statCntpropCount (uint16) | methodCnt | eventCnt | +-----------+-------------------------+-----------+ | statCount (uint16) | +-----------+------------------------------------+ | propCnt property records methodCount (uint16) | +------------------------------------------------+----------------------------+ | statCntpropCount statisticproperty records | +----------------------------------------------------------------------------+ | methodCntstatCount methodstatistic records | +----------------------------------------------------------------------------+ | eventCntmethodCount eventmethod records | +----------------------------------------------------------------------------+ |
Each property record is an AMQP map with the following fields. Optional fields may optionally be omitted from the map.
field name | optional | description |
---|---|---|
name | no | Name of the property |
type | no | Type code for the property |
access | no | Access code for the property |
index | no | 1 = index element, 0 = not an index element |
optional | no | 1 = optional element (may be not present), 0 = mandatory (always present) |
unit | yes | Units for numeric values (i.e. seconds, bytes, etc.) |
min | yes | Minimum value for numerics |
max | yes | Maximum value for numerics |
maxlen | yes | Maximum length for strings |
desc | yes | Description of the property |
Each statistic record is an AMQP map with the following fields:
field name | optional | description |
---|---|---|
name | no | Name of the statistic |
type | no | Type code for the statistic |
unit | yes | Units for numeric values (i.e. seconds, bytes, etc.) |
desc | yes | Description of the statistic |
method and event records contain a main map that describes the method or header followed by zero or more maps describing arguments. The main map contains the following fields:
field name | optional | description |
---|---|---|
name | no | Name of the method or event |
argCount | no | Number of argument records to follow |
desc | yes | Description of the method or event |
Argument maps contain the following fields:
field name | method | eventoptional | description | |
---|---|---|---|---|
nameyes | yes | no | Argument name | |
type | yes | yes | no | Type code for the argument |
dir | yesno | yes | Direction code for method arguments | |
unit | yes | yes | yes | Units for numeric values (i.e. seconds, bytes, etc.) |
min | yes | no | yes | Minimum value for numerics |
max | yes | no | yes | Maximum value for numerics |
maxlen | yes | no | yes | Maximum length for strings |
descyes | yes | yes | Description of the argument | |
default | yes | no | yes | Default value for the argument |
type codes are numerics with the following values:
value | type |
---|---|
1 | uint8 |
2 | uint16 |
3 | uint32 |
4 | uint64 |
6 | str8 |
7 | str16 |
8 | absTime(uint64) |
9 | deltaTime(uint64) |
10 | objectReference(uint64) |
11 | boolean(uint8) |
12 | float |
13 | double |
14 | uuid |
15 | map |
16 | int8 |
17 | int16 |
18 | int32 |
19 | int64 |
access codes are numerics with the following values:
value | access |
---|---|
1 | Read-Create access |
2 | Read-Write access |
3 | Read-Only access |
direction codes are numerics strings with the following values:
value | direction |
---|---|
1"I" | Input (from client to broker) |
2"O" | Output (from broker to client) |
3"IO" | IO (bidirectional) |
Heartbeat Indication
...
No Format |
---|
+-----+-----+-----+-------+-----------------------+ | 'A' | 'M' | '2' |'g/c/i'| seq | +-----+-----+-----+-------+-----------------------+--------+ | packageName (str8) | +----------------------------------------------------------+ | className (str8) | +----------------------------------------------------------+ | class hash (bin128) | +-----+-----+-----+-----+-----+-----+-----+-----+----------+ | timestamp of current sample (datetime) | +-----+-----+-----+-----+-----+-----+-----+-----+ | time object was created (datetime) | +-----+-----+-----+-----+-----+-----+-----+-----+ | time object was deleted (datetime) | +-----+-----+-----+-----+-----+-----+-----+-----+ | objectId (uint64bin128) | +-----+-----+-----+-----+-----+-----+-----+-----+ | presence bitmasks (0 or more uint8 fields) | +-----+-----+-----+-----+-----+-----+-----+-----+------------------------+ | config/inst values (in schema order) | +------------------------------------------------------------------------+ |
All timestamps are uint64 values representing nanoseconds since the epoch (January 1, 1970). The objectId is a uint64 bin128 value that uniquely identifies this object instance.
...
The content of a get request is a field table that specifies what objects are being requested. Most of the fields are optional and are available for use in more extensive deployments.
Field Key | Mandatory | Type | Description |
---|---|---|---|
"_class" | yes | short-string | The name of the class of objects being requested. |
"_package" | no | short-string | The name of the extension package the class belongs to. If omitted, the package defaults to "qpid" for access to objects in the connected broker. |
"_agent" | no | uuid | The management agent that is the target of the request. If omitted, agent defaults to the connected broker. |
...