/api/tree/rule

树中的每个规则都是存储中的单个对象,因此/api/tree/rule端点允许轻松修改集合中的单个规则。规则由其tree ID,levelorder寻址,并且所有请求都需要这三个参数。

Note

如果手动树同步在某个地方运行,或者正在创建或编辑大量 TSMeta 对象,则可能会缓存树规则,并且对树规则集的修改可能需要花费一些时间才能传播。如果您对规则集进行了任何修改,而不是对诸如descriptionnotes之类的元信息进行了修改,则可能需要刷新树数据并执行手动同步,以使分支和叶子都能反映出新规则。

Verbs

  • GET-检索一个或多个规则

  • POST-创建或修改规则

  • PUT-创建或替换规则

  • 删除-删除规则

Requests

以下字段可用于所有规则端点请求:

NameData TypeRequiredDescriptionDefaultQSRWExample
treeIdIntegerRequired请求的规则所属的树 treeidRO1
levelIntegerRequired规则所在层次结构中的级别。必须为 0 或更大。0levelRW2
orderIntegerRequired规则所在级别中的 Sequences。必须为 0 或更大。0orderRW1
descriptionStringOptional规则目的的简要说明 descriptionRW用点分隔 Metrics
notesStringOptional有关规则的详细说明 notesRW
typeStringRequired*表示的规则类型。参见Trees*在创建新规则时是必需的。 typeRWMETRIC
fieldStringOptional规则所依据的栏位名称 fieldRWhost
customFieldStringOptional用于操作规则的TSMeta自定义字段的名称。请注意,还必须配置field值,否则将引发异常。 custom_fieldRWowner
regexStringOptional正则表达式模式,用于处理关联的字段或自定义字段的值。 regexRW^.*\.([a-zA-Z]{3,4})[0-9]{0,1}\..*\..*$
separatorStringOptional如果应将字段值分为多个分支,请提供分隔符。 separatorRW\.
regexGroupIdxIntegerOptional组索引,用于从给定的正则表达式模式中提取模式的一部分。必须为 0 或更大。0regex_group_idxRW1
displayFormatStringOptional显示格式字符串,用于更改所得分支或叶子的display_name值。见Trees display_formatRWPort: {ovalue}

Note

提供separatorregex值时,必须提供有效的正则表达式。对于分隔符,最常见的用途是将点状度量拆分为分支。例如。您可能希望将“ sys.cpu.0.user”拆分为“ sys”,“ cpu”,“ 0”和“ user”分支。您不能仅提供“。”分隔符值,因为该值将不正确匹配。而是通过“。”转义句点。请注意,如果要通过 POST 请求提供 JSON,则还必须转义反斜杠并提供“ \。”。 GET 请求响应将转义所有反斜杠。

Response

GETPOSTPUT请求的成功响应将返回完整规则对象以及可选的请求更改。成功的DELETE呼叫将返回204状态代码且没有正文。修改数据时,如果不存在任何更改,即调用未提供要存储的任何数据,则响应将为304而没有任何正文内容。如果请求的树或规则在系统中不存在,将返回404并显示错误消息。如果提供了无效数据,将返回400错误。

GET

GET请求需要特定的树 ID,规则级别和 Sequences。否则将返回400。要获取树的所有规则,请使用/api/tree端点和`` treeId'值。

GET 查询示例

http://localhost:4242/api/tree/rule?treeId=1&level=0&order=0

Example Response

{
    "type": "METRIC",
    "field": "",
    "regex": "",
    "separator": "\\.",
    "description": "Split the metric on periods",
    "notes": "",
    "level": 1,
    "order": 0,
    "treeId": 1,
    "customField": "",
    "regexGroupIdx": 0,
    "displayFormat": ""
}

POST/PUT

使用POSTPUT方法,您可以创建新规则或编辑现有规则。新规则要求type值。现有树需要有效的treeId ID 以及任何需要修改的字段。成功的请求将返回修改后的规则对象。请注意,如果规则以给定的级别和 Sequences 存在,则所有更改都将与现有规则合并或覆盖。

查询字符串请求示例

http://localhost:4242/api/tree/rule?treeId=1&level=0&order=0&type=METRIC&separator=\.&method_override=post

内容请求示例

{
    "type": "METRIC",
    "separator": "\\.",
    "description": "Split the metric on periods",
    "level": 1,
    "order": 0,
    "treeId": 1
}

Example Response

{
    "type": "METRIC",
    "field": "",
    "regex": "",
    "separator": "\\.",
    "description": "Split the metric on periods",
    "notes": "",
    "level": 1,
    "order": 0,
    "treeId": 1,
    "customField": "",
    "regexGroupIdx": 0,
    "displayFormat": ""
}

DELETE

使用DELETE方法将从树中删除规则。成功删除将返回204状态代码且没有内容正文。如果规则不存在,将返回404错误。

Warning

此方法无法撤消。

删除请求示例

http://localhost:4242/api/tree/rule?treeId=1&level=0&order=0&method_override=delete