更新时间:2021-09-07 16:56:12
直播业务中,不同的业务放在不同的发布点上,或者有些代理性质客户,用同一个域名,而采用不同发布点来区分其客户,因此需要提供发布点粒度的带宽/流量查询,为满足客户的查询需求,网宿提供目录带宽/流量查询接口,可通过指定时间内查询一个域名底下指定发布点的带宽或流量。
下面将介绍单域名下多个发布点带宽/流量查询接口。
API 地址
https://open.chinanetcenter.com/api/report/flow/dir/detail
调用示例
采用Post方式请求,具体示例如下:
curl -i --url "https://open.chinanetcenter.com/api/report/flow/dir/detail" -X POST -u {user}:{password} -H 'Date: Fri, 26 Oct 2012 06:33:26 GMT' -H 'Accept: application/json' -d @file file中: {"dateFrom": "2016-12-02T10:00:00+08:00", "dateTo": "2016-12-03T10:00:00+08:00", "domainDir": [{ "domain": "www.baidu1.com", "dir": ["live1","live2"]}], "dataInterval": "5m", "dataType": "flow ", "protocolType": "http " }
其中
user=SI 账号
Date=` env LANG=en_US.UTF-8 date -u “+%a, %d %b %Y %H:%M:%S GMT”` password=Base64(HMAC-SHA1(UTF-8(Date), UTF-8(API_KEY)) =`echo -en "$DATE" | openssl dgst -sha1 -hmac "$API_KEY" -binary | openssl enc -base64`
入参参数说明
参数名称 | 类型 | 必选 | 描述 |
dateFrom | String | 是 | 开始时间,格式为yyyy-MM-dd'T'HH:mm:ss+08:00; |
dateTo | String | 是 | 结束时间,格式为yyyy-MM-dd'T'HH:mm:ss+08:00; |
domain | String | 是 | 域名,一次传入的域名个数上限为20个,可调整。 |
dir | Array | 否 | 空值和不传代表查询所有目录,一次传入目录个数上限默认200个,可调整。 |
protocolType | String | 否 | 查询协议,代表统计http协议或https协议; |
dataInterval | String | 否 | 查询粒度,默认5m,不传则默认返回,即数据按5分钟粒度返回,可配置1m,1分钟粒度。 |
dataType | String | 是 | 查询类型,可选值:flow 或bandwidth;,bandwidth代表获取带宽值。5m流量数据5分钟点*8除以300,1m流量数据*8除以60,默认查询所有区域的数据。flow代表输出流量数据,响应的时候给出每路流的总和。 |
数据返回
查询dataType为flow {"result":[ {"domain":"test.com", "details":[ { "dir":"live1", "totalFlow":"3147.04", "details":[ {"timestamp":"2017-05-24 16:20","value":"730.68"}, {"timestamp":"2017-05-24 16:25","value":"752.67"} ] } ] }] } //查询dataType为bandwidth {"result":[ {"domain":"test.tv", "details":[ { "dir":"live2", "bandwidthPeakValue":"15.65", "details":[ {"timestamp":"2017-05-24 16:40","value":"15.65"}, {"timestamp":"2017-05-24 16:45","value":"15.00"} ] }] }] }
出参参数说明
参数名称 | 类型 | 描述 |
domain | String | 域名 |
dir | String | 目录 |
timestamp | String | 时间,格式为yyyy-MM-dd HH:mm |
value | String | 时间点的数据,保留2位小数 |
bandwidthPeakValue | String | 当dataType为bandwidth时返回;每路流在该时间段内的带宽峰值单位Mbps,保留2位小数; |
totalFlow | String | 当dataType为flow时返回;每路流的总流量单位MB,保留2位小数; |
错误返回码说明
HTTP状态码 | 描述 | 语义 |
400 | There was an error in the body of your HTTP request. | 请求体格式错误 |
400 | The date specified is invalid. | dateFrom或dateTo不符合规范 |
400 | You cannot specify a period greater than 7. | dateFrom和dateTo相差超过7天 |
404 | The specified domain does not exist. | 传递的域名不存在 |
403 | The number of domain is excessive once. | 传递的域名个数超过账号限制 |
403 | The number of dir is excessive once. | 传递的目录个数超过账号限制 |
400 | param: dataInterval is null or invalid. | 参数dataInterval不符合规范 |
400 | param: dataType is null or invalid. | 参数dataType不符合规范 |
400 | param: domainDir is null or invalid. | 参数domainDir不符合规范 |
400 | param: domain is null or invalid. | 参数domain不符合规范 |
400 | param: protocolType is null or invalid. | 参数protocolType不符合规范 |
400 | param: dir is null or invalid. | 参数dir不符合规范 |
500 | We encountered an internal error. Please try again. | 系统发生错误 |
所有直播业务中,直播平台需要了解指定时间段内发布点的带宽或流量数据。
1) Date为格林尼治标准时间。
2) 鉴权所需APIKEY,由网宿项目经理提供。
3) 开始时间不得大于接口调用当前时间,且开始和结束时间的间隔不得大于7天;
4) 单次查询最多只能携带20个域名,200个发布点,若要增加,需与网宿协商。
5) 当粒度选择为1分钟时,一天开始的时间片是yyyy-MM-dd 00:01,最后一个时间片是(yyyy-MM-dd+1) 00:00,五分钟粒度同理。
6) 接口调用限制5分钟30次;