更新时间:2020-10-22 16:45
多值的模型是针对数据源建模,我们每一行数据针对的是一个数据源,它的被测量的多个指标在同一列上,所以每一个数据源,数据的来源在每一个时间点上都有一行,这就是多值的模型。比如某个机器的cpu ,mem 和load 指标。每次是数据操作可以使用多个指标数据。
请求路径 | 请求方法 | 描述 |
---|---|---|
/api/mput | POST | 一次写入多个数据点 |
注意:
名称 | 类型 | 是否必需 | 描述 | 默认值 | 举例 |
---|---|---|---|---|---|
summary | 无类型 | 否 | 是否返回摘要信息 | false | /api/mput?summary |
details | 无类型 | 否 | 是否返回详细信息 | false | /api/mput?details |
sync_timeout | Integer | 否 | 超时时间,单位毫秒,0为永不超时 | 0 | /api/mput/?sync&sync_timeout=60000 |
ignoreErrors | 无类型 | 否 | 是否忽略部分数据点的写入异常 | false | /api/mput/?ignoreErrors |
注意:
数据点格式为 JSON 格式,各参数说明如下:
名称 | 类型 | 是否必需 | 是否有使用限制 | 描述 | 举例 |
---|---|---|---|---|---|
metric | String | 是 | 只可包含大小写英文字母、中文、数字,以及特殊字符 - _ . / ( ) : , [ ] = ‘ # |
存储的指标名 | sys.cpu 注: 高可用版本支持的metric长度最多为255字节 |
timestamp | Long | 是 | 无 | 时间戳;单位为秒或者毫秒,判断规则详见下面的时间戳说明。 | 1499158925 |
fields | Map | 是 | field 名字限制和 metric 限制一样,field 值只支持 String, Number, Boolean | 域数据值 | “fields” : {“speed” : 20.8, “level” : 4, “direction” : “East”, “description” : “Fresh breeze”} |
tags | Map | 是 | 可以包含大小写英文字母、中文、数字,以及特殊字符 - _ . / ( ) : , [ ] = ‘ # |
Tagk 和 Tagv 是字符串键值对,至少一个键值对 | {“host”:”web01”},非字符串类型的tagk,tagv会强制转换为字符串类型 |
本说明适用于读写数据 (/api/put
& /api/mput
) 和查询数据 (/api/query
& /api/mquery
) 两个接口。时间戳的单位可以是秒或者毫秒。TSDB 会通过数值大小来判断时间戳的单位,规则如下:
[{"metric":"fakemetric", "tags":{"tagk":"tagv1"},"timestamp":1514736000, "values":{"field1":"val", "field2": 111.11}, {"metric":"fakemetric", "tags":{"tagk":"tagv1"},"timestamp":1514736030, "values":{"field1":"val2", "field2": 222.22}}]
[{"metric":"fakemetric", "tags":{"tagk":"tagv2"},"timestamp":1514736000, "values":{"field1":12.34, "field2": 333.33}}, {"metric":"fakemetric", "tags":{"tagk":"tagv2"},"timestamp":1514736030, "values":{"field1":43.21, "field2": 444.44}}}]
String数值类型的数据值可以为任意字符,支持JSON字符串存储,最大为20KB
请求:POST/api/mput
请求体:
[
{
"metric" : "wind",
"fields" : {
"speed" : 20.8,
"level" : 4,
"direction" : "East",
"description" : "Fresh breeze"
},
"tags" : {
"sensor":"IOTE_8859_0001",
"city":"hangzhou",
"province":"zhejiang",
"country":"china"
},
"timestamp" : 1346846400
},
{
"metric" : "wind",
"fields" : {
"speed" : 40.2,
"level" : 6,
"direction" : "South",
"description" : "Fresh breeze"
},
"tags" : {
"sensor":"IOTE_8859_0002",
"city":"hangzhou",
"province":"zhejiang",
"country":"china"
},
"timestamp" : 1346846401
}
]
如果所有数据点写入成功,返回码为204,如果有部分写入失败,返回码400,响应内容为具体错误信息。如果请求参数包含 summary 或者 details,返回信息包括如下属性:名称|数据类型|描述-|-|-success|Integer|写入成功的数据点数failed|Integer|未写入的数据点数errors|Array|一个描述哪些数据点未写入以及其原因的数组,仅在指定 details 有效。
请求: POST/api/mput?summary
请求体:
```json Invalid Timestamp
[
{
"metric" : "wind",
"fields" : {
"speed" : 50.2,
"level" : 7,
"direction" : "North",
"description" : "Fresh breeze"
},
"tags" : {
"sensor":"IOTE_8859_0003",
"city":"hangzhou",
"province":"zhejiang",
"country":"china"
},
"timestamp" : 401
}
]
```
响应内容:
{
"failed": 1,
"success": 0
}
表示0个点写入成功,1个点写入失败。
请求:POST/api/mput?details
请求体:
[
{
"metric" : "wind",
"fields" : {
"speed" : 50.2_string,
"level" : 7,
"direction" : "North",
"description" : "Fresh breeze"
},
"tags" : {
"sensor":"IOTE_8859_0003",
"city":"hangzhou",
"province":"zhejiang",
"country":"china"
},
"timestamp" : 400
}
]
响应内容:
{
"errors": [
{
"datapoint": {
"metric" : "wind",
"fields" : {
"speed" : 50.2,
"level" : 7,
"direction" : "North",
"description" : "Fresh breeze"
},
"tags" : {
"sensor":"IOTE_8859_0003",
"city":"hangzhou",
"province":"zhejiang",
"country":"china"
},
"timestamp" : 400
},
"error": "Invalid timestamp"
}
],
"failed": 1,
"success": 0
}
表示0个点写入成功,1个点写入失败。失败的点由 datapoint 指定。该点写入失败的原因由 error 字段指定。
在文档使用中是否遇到以下问题
更多建议
匿名提交