跳到主要内容
版本:latest

REST API

状态码

状态码描述
200请求成功。
204请求成功,异步操作调用成功,不反回请求结果。
400请求失败,参数错误或缺失。
401请求失败,用户名密码错误或用户不存在。
404请求失败,错误的请求路径。
405请求失败,请求的路径不支持对应的请求方式。
413请求失败,消息体过大,超过限制。
422请求失败,操作执行失败。
429请求失败,数据库同一时间接受的请求太多,请稍后重试。
500请求失败,查询超时或外部环境引起的异常。
503请求失败,服务不可用。

接口列表

/api/v1/write

请求方法

  • POST

请求头

  • Authorizaton: Basic

    basic64(user_name + ":" + password)

请求参数

  • db:数据库名称(可选,默认 public
  • tanent:租户名称(可选,默认cnosdb
  • precision:时间精度(可选,可用值为 msusns

请求体

  • 行协议:有关行协议的具体内容可以看这里

请求示例

curl -i -u "username:password" -XPOST "http://localhost:8902/api/v1/write?db=example" -d 't1,foo=a,bar=b v=1'
请求成功
  HTTP/1.1 200 OK{'\n'}
content-length: 0{'\n'}
date: Sat, 08 Oct 2022 06:59:38 GMT{'\n'}
请求失败
HTTP/1.1 500 Internal Server Error{'\n'}
content-length: 0{'\n'}
date: Sat, 08 Oct 2022 07:03:33 GMT{'\n'}

/api/v1/sql

请求方法

  • POST

请求头

  • Authorizaton: Basic

    basic64(user_name + ":" + password)

请求参数

  • db:数据库名称(可选,默认 public
  • tenant:租户名称(可选,默认cnosdb
  • chunked :是否流式返回结果数据。默认为false

请求示例

curl -i -u "username:password" -H "Accept: application/json" -XPOST "http://localhost:8902/api/v1/sql?db=example" -d 'SELECT * from t1'
请求成功
HTTP/1.1 200 OK
content-type: application/json
content-length: 139
date: Sat, 08 Oct 2022 07:17:06 GMT
... ...
请求失败
HTTP/1.1 500 Internal Server Error
content-type: application/json
content-length: 139
date: Sat, 08 Oct 2022 07:17:06 GMT
... ...

/api/v1/ping

请求方法

  • GET
  • HEAD

请求示例

curl -G 'http://localhost:8902/api/v1/ping'
请求成功
{
"version":"2.x.x",
"status":"healthy"
}
请求失败

不返回任何结果

/api/v1/opentsdb/write

请求方法

  • POST

请求头

  • Authorizaton: Basic

    basic64(user_name + ":" + password)

请求参数

  • db:数据库名称(可选,默认 public
  • tanent:租户名称(可选,默认cnosdb
  • precision:时间精度(可选,可用值为 msusns

请求体

<metric> <timestamp> <value> <tagk_1>=<tagv_1>[ <tagk_n>=<tagv_n>]

请求示例

curl -i -u "username:password" -XPOST "http://localhost:8902/api/v1/opentsdb/write?db=example" -d 'sys.if.bytes.out 1666165200290401000 1 host=web01 interface=eth0'
请求成功
HTTP/1.1 200 OK
content-length: 0
date: Sat, 08 Oct 2022 06:59:38 GMT
请求失败
HTTP/1.1 500 Internal Server Error
content-length: 0
date: Sat, 08 Oct 2022 07:03:33 GMT
... ...

/apv/v1/es/write

请求方法

  • POST

请求头

  • Authorizaton: Basic

    basic64(user_name + ":" + password)

请求参数

  • db:数据库名称(可选,默认 public
  • tanent:租户名称(可选,默认cnosdb
  • table: 表名称 (必填)
  • msg_field: 输入日志中消息列 (可选, 默认_msg。 如果同时没有_msg列和msg_field会报错)
  • time_field: 输入日志中时间列 (可选, 默认_time。 如果同时没有使用当前时间)

请求体

  • ES bulk格式 目前仅支持 index和create,其中create会建表,如果表存在会报错并且后续指令不再执行;index则是无表就创建写入,有表就直接写入 参考:bulk

请求示例

echo '{"create":{}}
{"msg":"test", "time":"2024-03-27T02:51:11.687Z"}
{"index":{}}
{"msg":"test", "time":"2024-03-27T02:51:11.688Z"}
' | curl -X POST -u "username:password" --data-binary @- 'http://127.0.0.1:8902/api/v1/es/write?table=test&msg_field=msg&time_field=time'

请求成功

HTTP/1.1 200 OK
content-length: 0
date: Sat, 08 Oct 2022 06:59:38 GMT

or

The 2th command fails because the table tablename already exists and cannot be created repeatedly

请求失败

{"error_code":"0100XX","error_message":"XXXXXXXXXXXXXXXXXXXXXXX"}