调用者查询
调用者可以通过 agent_query_static(dynamic) 查询
需要传入 token / static(dynamic)_data_query:
json
{
"token": "demo_token",
"static(dynamic)_data_query": {
"fields": [
// DataQueryField 结构体,该结构体参考 Monitoring 总览
// 该字段为 Vec<_>,可指定多个
],
"condition": [
// QueryCondition 结构体,该结构体参考 Monitoring 总览
// 该字段为 Vec<_>,可指定多个
]
}
}返回结构:
json
[
// Monitoring 回报结构体,该结构体参考 Monitoring 总览
// 该字段为 Vec<_>,可指定多个
// 只会存在 DataQueryField 结构中指定的数据字段
]分段平均查询
为了直接按时间段做聚合,新增两个方法:
agent_query_static_avgagent_query_dynamic_avg
需要传入 token / static(dynamic)_data_avg_query:
json
{
"token": "demo_token",
"static(dynamic)_data_avg_query": {
"fields": [
// DataQueryField 结构体,该结构体参考 Monitoring 总览
// 该字段为 Vec<_>,可指定多个
],
"uuid": "AGENT_UUID",
"timestamp_from": 1,
"timestamp_to": 2,
"points": 100
}
}其中 timestamp_from / timestamp_to 可选,points 必须 >= 1。
语义说明:
- 在筛选后的数据范围内(仅包含有数据的时间段)分成
points份。 - 每一份内对所选字段做平均值计算并返回。
- 返回格式与
agent_query_static(dynamic)一致:固定包含uuid/timestamp,并包含fields指定字段。 system字段仅保留process_count的平均值。disk/network/gpu字段中无法平均的子项将返回null。
限制说明:
agent_query_static_avgagent_query_dynamic_avg
这两个方法当前仅支持 PostgreSQL。
删除历史监控数据
新增两个删除方法:
agent_delete_staticagent_delete_dynamic
需要传入 token / conditions:
json
{
"token": "demo_token",
"conditions": [
{
"uuid": "830cec66-8fc9-5c21-9e2d-2da2b2f2d3b3"
},
{
"timestamp_to": 1769344168646
}
]
}语义说明:
conditions使用与agent_query_static(dynamic)相同的QueryCondition结构。- 删除语义与查询语义一致:查询能选中的数据,就是删除会影响的数据。
- 若包含
last/limit,会按时间倒序选中对应记录后删除。 - 返回值包含删除数量
deleted。
权限要求:
agent_delete_static需要StaticMonitoring::Delete。agent_delete_dynamic需要DynamicMonitoring::Delete。
两者都要求 Token 在 conditions 中涉及的 agent_uuid Scope(或 Global Scope)下具备对应权限。
批量获取多个 Agent 的最新数据
为了便于直接查询多个 Agent 的最新一条监控数据,新增了两个方法:
agent_static_data_multi_last_queryagent_dynamic_data_multi_last_query
这两个方法等价于原 agent_query_static(dynamic) 中为每个 UUID 设置 condition last 的效果,但调用更直接。
需要传入 token / uuids / fields:
json
{
"token": "demo_token",
"uuids": [
"e8583352-39e8-5a5b-b66c-e450689088fd",
"830cec66-8fc9-5c21-9e2d-2da2b2f2d3b3"
],
"fields": [
// DataQueryField 结构体,该结构体参考 Monitoring 总览
// 该字段为 Vec<_>,可指定多个
]
}返回结构:
json
[
// 每个 UUID 最多返回一条最新数据
// 固定包含 uuid / timestamp
// 只会包含 fields 指定的数据字段
]