查询数据接口
更新时间:2023-09-19
接口描述
获取指定指标的一个或多个统计数据的时间序列数据。可获取云产品监控数据、站点监控数据或您推送的自定义监控数据。
接口限制
• 一次返回的数据点数目不能超过1440个。
请求参数
名称 | 类型 | 描述 | 是否必须 | 参数位置 |
---|---|---|---|---|
user_id | String | 租户ID | 是 | URL参数 |
scope | String,仅限于使用如下字符集合:"0~9、A~Z、a~z"、 "_" | 名字空间 | 是 | URL参数 |
metric_name | String,仅限于使用如下字符集合:"0~9、A~Z、a~z"、 "_" | 监控指标名 | 是 | URL参数 |
statistics | Statistics,按照statistics1,statistics2,statistics3格式,可选值为average,maximum,minimum,sum,sampleCount | 统计方法类型 | 是 | Query参数 |
dimensions | String,由dimensionName:dimensionValue组成。当监控项具备多个维度时使用分号连接,例如dimensionName:dimensionValue;dimensionName:dimensionValue,相同维度只能指定一个维度值 | 维度列表 | 是 | Query参数 |
start_time | DateTime,请参考日期与时间,UTC日期表示 | 查询起始时间 | 是 | Query参数 |
end_time | DateTime,请参考日期与时间,UTC日期表示 | 查询截止时间 | 是 | Query参数 |
period_in_second | Integer,60的倍数,单位:秒(s) | 统计周期 | 是 | Query参数 |
参数解释
- 名字空间scope、监控项metric、统计方法Statistic、维度Dimension等的概念请参考核心概念。
响应参数
名称 | 类型 | 描述 |
---|---|---|
request_id | String | 请求标识 |
code | String | 返回码 |
message | String | 错误信息 |
data_points | List(data_point) | 监控指标 |
data_point
名称 | 类型 | 描述 |
---|---|---|
average | double | 统计周期内监控项的平均值 |
sum | double | 统计周期内监控项的和值 |
minimum | double | 统计周期内监控项的最小值 |
maximum | double | 统计周期内监控项的最大值 |
sample_count | Integer | 统计周期内监控项数据点数 |
timestamp | DateTime,请参考日期与时间,UTC日期表示 | 监控项统计周期对应的时间 |
请求示例
# params definition
user_id = "fakeuser1ba678asdf8as7df6a5sdf67"
scope = "BCE_BCC"
metric_name = "vCPUUsagePercent"
dimensions = "InstanceId:fakeid-2222-8888-1111-13a8469b1fb2"
statistics = "average,maximum,minimum"
start_time = "2019-04-16T13:55:01Z"
end_time = "2019-04-16T14:00:01Z"
period_in_second = 60
# create a bcm client
bcm_client = BcmClient(bcm_sample_conf.config)
# query metric data from bcm interface
try:
response = bcm_client.get_metric_data(user_id=user_id,
scope=scope,
metric_name=metric_name,
dimensions=dimensions,
statistics=statistics,
start_time=start_time,
end_time=end_time,
period_in_second=period_in_second)
print(response)
except BceHttpClientError as e:
if isinstance(e.last_error, BceServerError):
__logger.error('send request failed. Response %s, code: %s, msg: %s'
% (e.last_error.status_code, e.last_error.code, e.last_error.message))
else:
__logger.error('send request failed. Unknown exception: %s' % e)