获取metric数据(GetMetricData)
GetMetricData
用于获得metric的数据:GetMetricData namespace=ZStack/Host metricName=NetworkAllOutBytes
参数(Parameters)
名字 | 描述 | 可选的 | 可选的参数值 | 起始支持版本 |
---|---|---|---|---|
namespace | 名字空间 | 2.3 | ||
metricName | 监控项 | 2.3 | ||
startTime | 起始时间 | 是 | 2.3 | |
endTime | 结束时间 | 是 | 2.3 | |
period | 数据精度 | 是 | 2.3 | |
labels | 过滤标签 | 是 | 2.3 | |
functions | 函数列表 | 是 | 2.3 | |
offsetAheadOfCurrentTime | 是 | 2.3 | ||
userTags | 用户标签,请参见 创建用户标签(CreateUserTag) | 是 | 2.3 | |
systemTags | 系统标签,请参见 创建系统标签(CreateSystemTag) | 是 | 2.3 | |
timeout | 是 |
返回metric的时序数据:
{
"data": [
{
"labels": {
"HostUuid": "a133cbcfdc1d462c9b51d7bce6ac6b11"
},
"time": 1516363957,
"value": 1678.9
},
{
"labels": {
"HostUuid": "a133cbcfdc1d462c9b51d7bce6ac6b11"
},
"time": 1516364017,
"value": 1920.1000000000001
}
],
"success": true
}
- 其中
value
为double型的数据值,time
是epoch time(单位秒),labels
为标签组,可以用于过滤返回值。例如只获取UUID为a133cbcfdc1d462c9b51d7bce6ac6b11
物理机的数据:GetMetricData namespace=ZStack/Host metricName=NetworkAllOutByte labels=HostUuid=a133cbcfdc1d462c9b51d7bce6ac6b11
- 标签支持
=
(等于)和=~
正则两种匹配方式,可以用正则匹配多个标签值。例如返回UUID为a133cbcfdc1d462c9b51d7bce6ac6b11
和506bd3b46a6543718488b5ba5850aaaa
两个物理机的metric值,可以用:GetMetricData namespace=ZStack/Host metricName=NetworkAllOutByte labels=HostUuid=~a133cbcfdc1d462c9b51d7bce6ac6b11|506bd3b46a6543718488b5ba5850aaaa
- 可以传入多个标签作为过滤条件,例如:
GetMetricData namespace=ZStack/PrimaryStorage metricName=SnapshotCount labels=PrimaryStorageUuid=b632652cc16044cdb6b4f516ed93a118,PrimaryStorageType=Ceph
- 可以通过
startTime
和endTime
指定查询的时间范围:GetMetricData namespace=ZStack/PrimaryStorage metricName=SnapshotCount labels=PrimaryStorageUuid=b632652cc16044cdb6b4f516ed93a118,PrimaryStorageType=Ceph startTime=1516364017 endTime=1516365000
Note: startTime/endTime均为epoch time。若都省略,默认返回最近1分钟内的数据。若endTime省略,则其值默认为当前时间。 period
用于指定返回数据的时间精度 TODO- 可以通过
functions
传入一组函数对数据进行后处理,例如:GetMetricData namespace=ZStack/PrimaryStorage metricName=SnapshotCount labels=PrimaryStorageUuid=b632652cc16044cdb6b4f516ed93a118,PrimaryStorageType=Ceph startTime=1516364017 endTime=1516365000 functions=sort(by=\"value\"\\,direction=\"desc\")
- 这里使用
sort
函数对返回结果的value
进行降序排序。传入多个函数时按顺序执行,例如:GetMetricData namespace=ZStack/PrimaryStorage metricName=SnapshotCount labels=PrimaryStorageUuid=b632652cc16044cdb6b4f516ed93a118,PrimaryStorageType=Ceph startTime=1516364017 endTime=1516365000 functions=sort(by=\"value\"\\,direction=\"desc\"),limit(limit=1)
Note: 在CLI中需要对函数中的"
用\
转移,用于分隔函数参数的,
需要用\\
转译 - 先对数据排序,然后返回第一个数据。Note: 函数具体支持列表见附录