介绍 -奇异果体育app竞彩官网下载
名词解释
在使用tsdb api前,用户需了解tsdb相关的。
调用方式
概述
tsdb api的设计采用了restful风格,每个api功能(也可以称之为资源)都使用uri(universal resource identifier)来唯一确定。对资源的请求方式是通过向资源对应的uri发送标准的 http 请求,比如 get、put、post等,同时,请求需要遵守签名算法,并包含约定的请求参数。
通用约定
- 所有编码都采用utf-8
- 日期格式采用yyyy-mm-dd方式,如2015-08-10
- 时间格式采用utc格式:yyyy-mm-ddthh:mm:ssz, 如2015-08-20t01:24:32z
-
content-type为application/json; charset=utf-8
- object类型的key必须使用双引号(")括起来
- object类型的key必须使用lowercamelcase表示
公共请求头
头域(header) | 是否必须 | 说明 |
---|---|---|
authorization | 必须 | 包含access key与请求签名 |
host | 必须 | 包含api的域名 |
x-bce-date | 必须 | 表示时间的字符串,符合时间格式要求 |
content-type | 可选 | application/json; charset=utf-8 |
公共响应头
头域(header) | 说明 |
---|---|
content-type | 只支持json格式,application/json; charset=utf-8 |
x-bce-request-id | tsdb后端生成,并自动设置到响应头域中 |
响应状态码
返回的响应状态码遵循
- 1xx: informational - request received, continuing process.
- 2xx: success - the action was successfully received, understood, and accepted.
- 3xx: redirection - further action must be taken in order to complete the request.
- 4xx: client error - the request contains bad syntax or cannot be fulfilled.
- 5xx: server error - the server failed to fulfill an apparently valid request.
请求消息体格式(http request body)
tsdb服务要求使用json格式的结构体来描述一个请求的具体内容。
示例
以下是一个标准的写入data point时的请求消息体格式:
{
"datapoints": [{
"metric": "cpu_idle",
"tags": {
"host": "server1",
"rack": "rack1"
},
"timestamp": 1465376157007,
"value": 51
}]
}
请求返回格式(http response)
tsdb服务均采用json格式的消息体作为响应返回的格式。
示例
以下是一个标准的获取metric列表的请求返回:
{
"metrics": [
"cpu_idle",
"mem_used"
]
}
通用错误返回格式
当调用接口出错时,将返回通用的错误格式。http的返回状态码为4xx或5xx,返回的消息体将包括全局唯一的请求、错误代码以及错误信息。调用方可根据错误码以及错误信息定位问题,当无法定位到错误原因时,可以发工单联系百度技术人员,并提供requestid以便于快速地帮助您解决问题。
消息体定义
参数名 | 类型 | 说明 |
---|---|---|
requestid | string | 请求的唯一标识 |
code | string | 错误类型代码 |
message | string | 错误的信息说明 |
错误返回示例
{
"requestid": "47e0ef1a-9bf2-11e1-9279-0100e8cf109a",
"code":"nosuchkey",
"message":"the resource you requested does not exist"
}
签名认证
tsdb api会对每个访问的请求进行身份认证,以保障用户的安全。安全认证采用access key与请求签名机制。access key由access key id和secret access key组成,均为字符串,由百度智能云官方颁发给用户。其中access key id用于标识用户身份,access key secret 是用于加密签名字符串和服务器端验证签名字符串的密钥,必须严格保密。
对于每个http请求,用户需要使用下文所描述的方式生成一个签名字符串,并将认证字符串放在http请求的authorization头域里。
签名字符串格式
bce-auth-v{version}/{accesskeyid}/{timestamp}/{expiretime}/{signedheaders}/{signature}
其中:
- version是正整数,目前取值为1。
- timestamp是生成签名时的时间。时间格式符合通用约定。
- expiretime表示签名有效期限,单位为秒,从timestamp所指定的时间开始计算。
- signedheaders是签名算法中涉及到的头域列表。头域名字之间用分号(;)分隔,如host;x-bce-date。列表按照字典序排列。当signedheaders为空时表示取默认值。
- signature是256位签名的十六进制表示,由64个小写字母组成,生成方式由如下签名生成算法给出。
签名生成算法
有关签名生成算法的具体介绍,请参看鉴权认证机制。
多区域选择
region代表着一个独立的地域,是百度智能云中的重要概念,请参考区域选择说明。百度智能云中的服务除了极少数如账号服务全局有效之外,绝大部分服务都是区域间隔离的。每个区域的服务独立部署互不影响。服务间共享数据需要通过显式拷贝完成。在api中引用区域必须使用其id。目前tsdb支持http和https调用。
服务域名
服务域名,其中{database-name}为数据库名称。
区域 | id | 域名 | 协议 |
---|---|---|---|
华北-北京 | bj | {database-name}.{database-id}.tsdb.iot.bj.baidubce.com | http和https |
华南-广州 | gz | {database-name}.{database-id}.tsdb.iot.gz.baidubce.com | http和https |
服务域名为
区域 | id | 域名 | 协议 |
---|---|---|---|
华北-北京 | bj | tsdb.bj.baidubce.com | http和https |
华南-广州 | gz | tsdb.gz.baidubce.com | http和https |
通过ip访问数据api
通过上面服务域名可以了解到数据api接口是通过域名的前缀来区分不同的时序数据库的。举个数据点写入的例子,头信息如下:
post /v1/datapoint http/1.1
host: {database-name}.tsdb.iot.gz.baidubce.com
authorization: {authorization}
content-type: application/json; charset=utf-8
x-bce-date: 2016-06-08t16:49:51z
而用ip来访问时序数据库服务,是使用url的parameter来区分不同的时序数据库的,格式是database={database-name}。同样是数据点写入的例子,头信息如下:
post /v1/datapoint?database={database-name} http/1.1
host: {ip}
authorization: {authorization}
content-type: application/json; charset=utf-8
x-bce-date: 2016-06-08t16:49:51z