该接口用于查询多个域名在指定传输协议下的流量数据,查询的是所有边缘节点的数据。用户需指定域名、起止时间、传输协议等参数,并可选择数据粒度和分组维度。默认情况下,查询会返回HTTPS协议的流量数据,输出结果为每个域名在不同时间点的流量值。此接口适用于需要查询和分析多域名不同传输协议流量的场景。
参数名称 | 描述 |
---|---|
dateFromString | 开始时间
1.时间格式为 yyyy-MM-ddTHH:mm:ss±HH:mm。请注意:±HH:mm 为时区偏移量,可根据您的数据需要进行调整,例如 +00:00 代表 UTC 时间,+08:00 代表东八区,-05:00 代表西五区。2024-01-15T10:30:45+00:00,表示UTC 时间 2024 年 1 月 15 日上午 10 点 30 分 45 秒;
2.必须大于当前时间-183天,并且小于当前时间和dateTo;
3.dateFrom和dateTo相差不能超过7天(可联系技术支持调整);
4.dateFrom和dateTo要么都传递,要么都不传递;
5.dateFrom和dateTo都未传递,则默认查询过去24小时的数据 |
dateToString | 结束时间
1.时间格式为 yyyy-MM-ddTHH:mm:ss±HH:mm。请注意:±HH:mm 为时区偏移量,可根据您的数据需要进行调整,例如 +00:00 代表 UTC 时间,+08:00 代表东八区,-05:00 代表西五区。2024-01-15T10:30:45+00:00,表示UTC 时间 2024 年 1 月 15 日上午 10 点 30 分 45 秒;
2.必须大于dateFrom;
3.如果大于当前时间,则重新赋值为当前时间; |
*domainList | 域名,域名个数限制根据账号可调,默认为20个 |
dataIntervalString | 数据粒度:
支持1m(1分钟),5m(5分钟),1h(1小时),1d(1天) |
protocolTypeString | 传输协议
1.可选值为http、https;
2.不传默认查询https;
3.查询http时出参展示httpFlowData,查询https时出参展示httpsFlowData; |
groupByList | 分组维度
1.可选值为domain;
2.有传入则按照该维度展示明细数据; |
参数名称 | 描述 |
---|---|
resultList | 结果 |
domainString | 域名 |
httpsFlowDataList | |
timestampString | 时间,格式为yyyy-MM-dd HH:mm;每一个时间片数据值代表的是前一个时间粒度范围内的数据值。一天开始的时间片是yyyy-MM-dd 00:05,最后一个时间片是(yyyy-MM-dd+1)00:00。 |
valueString | 流量值,单位MB,保留2位小数 |
错误代码(code) | 描述(message) | HTTP状态码 | 语义 |
---|---|---|---|
NotAcceptable | The accept header specified in your request is not acceptable. | 400 | Accept请求头不支持,接口仅支持json和xml格式,默认为json格式 |
MissingBody | This operation requires a body. Ensure that the body is present and the Content-Type header is set. | 400 | 请求体没有传递 |
InvalidHTTPRequest | There was an error in the body of your HTTP request. | 400 | 请求体格式错误 |
InvalidDatePeriod | The date specified is invalid. | 400 | dateFrom或dateTo不符合规范 |
DateSpanError | You cannot specify a period greater than 7. | 400 | dateFrom和dateTo相差超过7天 |
NumberLimitExceeded | The request was rejected because the number of domain({actual}) exceeds the limit ({expect}). | 400 | 传递的域名个数超过账号限制 |
PARAM_INVALID | param: groupBy is null or invalid. | 400 | 参数groupBy不符合规范 |
InternalError | We encountered an internal error. Please try again. | 500 | 系统发生错误 |
PARAM_INVALID | param: domain is null or invalid. | 400 | 参数domain不符合规范 |
PARAM_INVALID | param: dataInterval is null or invalid. | 400 | 参数dataInterval不符合规范 |
PARAM_INVALID | param: protocolType is null or invalid. | 400 | 参数protocolType不符合规范 |
#!/bin/bash
# Please remember to change the param (-H "X-Time-Zone") in this demo to the TimeZone you want in response
username='example_username'
apiKey='example_apiKey'
date=`env LANG="en_US.UTF-8" date -u "+%a, %d %b %Y %H:%M:%S GMT"`
password=`echo -en "$date" | openssl dgst -sha1 -hmac $apiKey -binary | openssl enc -base64`
curl -i --url "https://api.cdnetworks.com/api/report/flow/protocol" \
-X "POST" \
-H "X-Time-Zone:GMT+00:00" \
-u "$username:$password" \
-H "Date: $date" \
-H "Accept: application/json" \
-d '{
"dateFrom":"2017-07-05T00:00:00+00:00",
"dateTo":"2017-07-05T23:00:00+00:00",
"domain":[
"test.com"
],
"dataInterval":"5m",
"protocolType":"https",
"groupBy":[
"domain"
]
}'
{
"result":[
{
"domain":"test.com",
"httpsFlowData":[
{
"timestamp":"2017-07-05 00:00",
"value":"0.00"
},
{
"timestamp":"2017-07-05 00:05",
"value":"0.00"
}
]
}
]
}