/api/uid/assign

通过此端点,可以将 UID 分配给新的 Metrics,标签名称和标签值。可以在一个调用中提供多种类型和名称,API 会分别处理每个名称,报告哪些名称已成功分配了 UID,以及分配的 UID,以及哪些由于无效字符或已经分配而失败。可以通过查询字符串或内容数据执行分配。

Verbs

  • GET

  • POST

Requests

每个请求必须具有以下一个或多个字段:

NameData TypeRequiredDescriptionDefaultQSRWExample
metricStringOptional分配的度量标准名称列表 metricRWsys.cpu.0
tagkStringOptional分配的标签名称列表 tagkRWhost
tagvStringOptional分配的标签值列表 tagvRWweb01

发出查询字符串请求时,可以以逗号分隔的方式提供给定类型的多个名称。例如。 metric=sys.cpu.0,sys.cpu.1,sys.cpu.2,sys.cpu.3。命名约定适用:请参见。

Example Request

Query String

http://localhost:4242/api/uid/assign?metric=sys.cpu.0,sys.cpu.1&tagk=host&tagv=web01,web02,web03

JSON Content

{
    "metric": [
        "sys.cpu.0",
        "sys.cpu.1",
        "illegal!character"
    ],
    "tagk": [
        "host"
    ],
    "tagv": [
        "web01",
        "web02",
        "web03"
    ]
}

Response

该响应将包含成功分配的 Map 以及十六进制编码的 UID 值。如果未分配一个或多个值,则单独的 Map 将包含这些值的列表以及未分配它们的原因。只有提供一个或多个该类型的值时,才会生成类型名称为<type>_errors的 Map。

分配所有值后,端点将返回 200 状态代码,但是如果任何值分配失败,它将返回 400.

Example Response

{
    "metric": {},
    "metric_errors": {
        "sys.cpu.0": "Name already exists with UID: 000042",
        "sys.cpu.1": "Name already exists with UID: 000043",
        "illegal!character": "Invalid metric (illegal!character): illegal character: !",
    },
    "tagv": {},
    "tagk_errors": {
        "host": "Name already exists with UID: 0007E5"
    },
    "tagk": {
        "web01": "000012",
        "web02": "000013",
        "web03": "000014"
    }
}