数据推送 API
接收地址
https://nb-pipeline.qiniuapi.com
数据推送
请求语法
POST /v2/repos/<RepoName>/data?tags=<tags>
Content-Type: text/plain
Authorization: Pandora <auth>
keyName=valName<TAB>keyName=valName ...
keyName=valName<TAB>keyName=valName ...
...
请求内容
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
RepoName | string | 是 | 消息队列名称 |
keyName | string | 是 | 字段名称 |
valName | string | 是 | 对应字段名称的数据内容 注意:如果是 string 类型那么 \t 、\r 、\n \ 需要用\ 转义空格' ' 可以不转义 |
tags | string | 否 | 自定义字段 |
多个
keyName
和valName
之间应使用单个<TAB>
分隔。对于
array
类型:打点格式为
[e1,e2,...,en]
,数组元素采用逗号分割,且所有元素使用[]
包括,当元素类型为string
时,需要加上双引号;对于
map
类型:打点格式为 json 字符串,比如
{"f1":123,"f2":"abc"}
,注意所有元素使用{}
包括;
tags
为base64编码之后的字符串,编码之前是由若干个kv对拼接而成的字符串,每个kv对之间由\t
分隔,k和v之间由=
分隔,形如"key0=Value0\tkey1=value1"
, 其中key0
,key1
均为仓库的某个字段名,value0
,value1
为对应字段的值。注意:value中若存在\t
、\r
、\n
\
需要用\
转义,空格' '
可以不转义。tags
字段用来自定义一些字段的值,若打点时相同字段上也有数据,则由tags
字段定义的值将其覆盖。
示例
curl -X POST https://nb-pipeline.qiniuapi.com/v2/repos/test_Repo/data?tags=dGFnMD12YWx1ZTAJdGFnMT12YWx1ZTE=\
-H 'Content-Type: text/plain' \
-H 'Authorization: Pandora 2J1e7iG13J66GA8vWBzZdF-UR_d1MF-kacOdUUS4:NTi3wH_WlGxYOnXsvgUrO4XMD6Y=' \
-d '
userName=小张 age=22 addresses=["beijing","shanghai"] profile={"position":"engineer",salary:15000}
userName=小王 age=28 addresses=["hangzhou","shenzhen"] profile={"position":"engineer",salary:12000}
'
日志原始文本上传接口
请求语法
POST /v2/streams/<RepoName>/data?tags=<tags>&rules=<rules>
Content-Type: text/plain
Authorization: Pandora <auth>
[日志原始文本]
请求内容
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
RepoName | String | 是 | 消息队列名称 |
tags | String | 否 | 自定义字段 |
rules | String | 否 | 指定解析规则 |
每个数据仓库最多可以绑定 5 条解析规则。 上传数据时,如果数据仓库绑定了解析规则,则按照解析规则进行解析。多个解析规则依次解析时有覆盖效果,举例如下: 假定当前有两个规则,规则 1 解析后结果为
{A : "aa" , B : "bb"}
,规则 2 解析后结果为{A : "abcd" , C : "cc"}
,则最终的解析结果为{A : "abcd" , B : "bb" , C : "cc"}
。
tags
为base64编码之后的字符串,编码之前是由若干个kv对拼接而成的字符串,每个kv对之间由\t
分隔,k和v之间由=
分隔,形如"key0=Value0\tkey1=value1"
, 其中key0
,key1
均为仓库的某个字段名,value0
,value1
为对应字段的值。注意:value中若存在\t
、\r
、\n
\
需要用\
转义,空格' '
可以不转义。tags
字段用来自定义一些字段的值,若打点时相同字段上也有数据,则由tags
字段定义的值将其覆盖。
rules
为形如"r1,r2,r3"
的字符串,其中r1
,r2
,r3
均为该用户账号下拥有的规则名称,不同名称之间用逗号分隔。
如果rules
字段里传了规则,则解析使用传入的rules字段传入的规则,否则使用仓库已绑定的规则。
如果rules
字段没有传入规则,并且数据仓库没有绑定解析规则,上传数据格式遵从POST /v2/repos/{RepoName}/data
接口规定的形式。
示例
curl -X POST https://nb-pipeline.qiniuapi.com/v2/streams/token_agent__test2/data?tags=dGFnMD12YWx1ZTAJdGFnMT12YWx1ZTE=&rules=rule1,rule2 \
-H 'content-type: text/plain' \
-H 'Authorization: Pandora 2J1e7iG13J66GA8vWBzZdF-UR_d1MF-kacOdUUS4:NTi3wH_WlGxYOnXsvgUrO4XMD6Y=' \
-d '
200 {} POST 000.00.00.00 fusion_applog 43274 pipe.niuniu.ggeh.com FgAAABCbBb4s9zsV PostData ["lili:97"] text/plain /n5/sche/applog/file REQ 1000 1328438666 application/json pipeline-apiserver-31355784-jnk2f STRONGER 2 938343 2 1536863302210 2018-06-27T08:31:09.961094Z
200 {} POST 000.00.00.00 kodo_pfdstg 4821 pipe.niuniu.io FgAAA4s9zsV PostData ["STREAMING:350"] text/plain /nb/sche/kodo_pfdstg/file REQ 1500 1538921591 application/json pipeline-apiserver-3179997084-gxvmf STRONGER 2 3505878 2 1530088274411 2018-06-27T08:31:09.960729Z
'