/api/tree/test¶
For debugging a rule set, the test endpoint can be used to run a TSMeta object through a tree’s rules and determine where in the heirarchy the leaf would appear. Or find out why a timeseries failed to match on a rule set or collided with an existing timeseries. The only method supported is GET
and no changes will be made to the actual tree in storage when using this endpoint.
The messages
field of the response contains information about what occurred during processing. If the TSUID did not exist or an error occurred, the reason will be found in this field. During processing, each rule that the TSMeta is processed through will generate a message. If a rule matched on the TSMeta successfully or failed, the reason will be recorded.
Verbs¶
GET
Requests¶
The following fields are required for this endpoint.
Name |
Data Type |
Required |
Description |
Default |
QS |
RW |
Example |
---|---|---|---|---|---|---|---|
treeId |
Integer |
Required |
The ID of the tree to pass the TSMeta objects through |
treeid |
1 |
||
tsuids |
String |
Required |
A list of one or more TSUIDs to fetch TSMeta for. If requesting testing of more than one TSUID, they should be separted by a comma. |
tsuids |
000001000001000001,00000200000200002 |
Response¶
A successful response will return a list of JSON objects with a number of items including the TSMeta object, messages about the processing steps taken and a resulting branch. There will be one object for each TSUID requested with the TSUID as the object name. If the requested tree did not exist in the system, a 404
will be returned with an error message. If invalid data was supplied a 400
error will be returned.
Fields found in the response include:
Name |
Data Type |
Description |
Example |
---|---|---|---|
messages |
Array of Strings |
A list of messages for each level and rule of the rule set |
See Below |
meta |
Object |
The TSMeta object loaded from storage |
See Below |
branch |
Object |
The full tree if successfully parsed |
See Below |
Example Request¶
Example Response¶
{
"000001000001000001000002000002": {
"messages": [
"Processing rule: [1:0:0:TAGK]",
"Matched tagk [host] for rule: [1:0:0:TAGK]",
"Processing rule: [1:1:0:METRIC]",
"Depth [3] Adding leaf [name: sys.cpu.0 tsuid: 000001000001000001000002000002] to parent branch [Name: [web-01.lga.mysite.com]]"
],
"meta": {
"tsuid": "000001000001000001000002000002",
"metric": {
"uid": "000001",
"type": "METRIC",
"name": "sys.cpu.0",
"description": "",
"notes": "",
"created": 1368979404,
"custom": null,
"displayName": ""
},
"tags": [
{
"uid": "000001",
"type": "TAGK",
"name": "host",
"description": "",
"notes": "",
"created": 1368979404,
"custom": null,
"displayName": ""
},
{
"uid": "000001",
"type": "TAGV",
"name": "web-01.lga.mysite.com",
"description": "",
"notes": "",
"created": 1368979404,
"custom": null,
"displayName": ""
},
{
"uid": "000002",
"type": "TAGK",
"name": "type",
"description": "",
"notes": "",
"created": 1368979404,
"custom": null,
"displayName": ""
},
{
"uid": "000002",
"type": "TAGV",
"name": "user",
"description": "",
"notes": "",
"created": 1368979404,
"custom": null,
"displayName": ""
}
],
"description": "",
"notes": "",
"created": 0,
"units": "",
"retention": 0,
"max": "NaN",
"min": "NaN",
"displayName": "",
"lastReceived": 0,
"totalDatapoints": 0,
"dataType": ""
},
"branch": {
"leaves": null,
"branches": [
{
"leaves": [
{
"metric": "",
"tags": null,
"tsuid": "000001000001000001000002000002",
"displayName": "sys.cpu.0"
}
],
"branches": null,
"path": {
"0": "ROOT",
"1": "web-01.lga.mysite.com"
},
"treeId": 1,
"displayName": "web-01.lga.mysite.com",
"branchId": "0001247F7202",
"numLeaves": 1,
"numBranches": 0,
"depth": 1
}
],
"path": {
"0": "ROOT"
},
"treeId": 1,
"displayName": "ROOT",
"branchId": "0001",
"numLeaves": 0,
"numBranches": 1,
"depth": 0
}
}
}
Example Error Response¶
{
"000001000001000001000002000003": {
"branch": null,
"messages": [
"Unable to locate TSUID meta data"
],
"meta": null
}
}