批量获取每日可用率¶
POST /api/v1/slo/availability/list
概述¶
批量获取当前 API Key 所属工作空间内监控器型 SLO 的每日可用率,可同时查询指定秒级窗口的可用率。指标型 SLO 不支持此接口。
Body 请求参数¶
| 参数名 | 类型 | 必选 | 说明 |
|---|---|---|---|
| window | object | 可选精确秒时间窗口,采用半开区间 [startTime, endTime),最长 604800 秒;配置后在每个 SLO 结果中增加 window 汇总 |
|
| window.startTime | integer | 条件必填 | 配置 window 时必填,窗口开始时间,Unix 秒时间戳 |
| window.endTime | integer | 条件必填 | 配置 window 时必填,窗口结束时间,Unix 秒时间戳 |
| sloUUIDs | array | Y | SLO UUID 列表,最多 100 个 允许为空: False |
| startDate | string | Y | 开始业务日期,格式 YYYY-MM-DD,闭区间 允许为空: False |
| endDate | string | Y | 结束业务日期,格式 YYYY-MM-DD,闭区间 允许为空: False |
| timezone | string | Y | IANA 时区,例如 Asia/Shanghai 允许为空: False |
| interval | string | 聚合粒度,当前只支持 1d 允许为空: False 可选值: ['1d'] |
参数补充说明¶
window仅补充精确窗口汇总,不替代必填的startDate、endDate和timezone。窗口必须完全位于指定时区的业务日期范围内,结束时间不晚于服务器当前时间,且满足0 < endTime - startTime <= 604800。-
仅支持当前工作空间内未删除的监控器型 SLO;传入指标型 SLO 会被拒绝。
-
单次最多查询 100 个 SLO,日期范围最多包含 90 个自然日。
interval当前只支持1d。- 每个自然日按请求
timezone划分,并使用该自然日实际秒数计算可用率。 - 无指标数据的日期返回
availability=null、hasData=false和level=unknown。 level根据 SLO 的goal/minGoal返回normal、warning、critical或unknown。
请求例子¶
curl 'https://openapi.guance.com/api/v1/slo/availability/list' \
-H 'DF-API-KEY: <DF-API-KEY>' \
-H 'Content-Type: application/json;charset=UTF-8' \
--data-raw '{"sloUUIDs":["monitor_xxx"],"startDate":"2026-05-03","endDate":"2026-07-31","timezone":"Asia/Shanghai","interval":"1d"}'
同时查询精确窗口¶
以下请求保留业务日期与时区,同时增加当天一小时的 window:
{
"sloUUIDs": [
"monitor_xxx"
],
"startDate": "2026-07-31",
"endDate": "2026-07-31",
"timezone": "Asia/Shanghai",
"interval": "1d",
"window": {
"startTime": 1785427200,
"endTime": 1785430800
}
}
成功响应仍返回原有 content.data[*].points;配置 window 时,每个 content.data[*] 额外返回:
| 字段 | 类型 | 说明 |
|---|---|---|
| window.startTime / window.endTime | integer | 请求的窗口起止时间,单位为秒,结束时间不包含在窗口内。 |
| window.value | number | 窗口可用率,范围为 0~100,按窗口实际秒数与累计故障成本计算。 |
| window.hasData | boolean | 当前实现查询成功时为 true,不能据此判断是否存在原始样本。 |
| window.dataState | string | 当前实现成功返回 complete;查询失败时请求报错。 |
| window.updatedAt | integer / null | 窗口内最后一个非修正样本的时间戳,单位为秒;没有此类样本时为 null。 |
窗口查询成功但没有成本样本时,按零成本计算,返回 value=100、hasData=true、updatedAt=null;这与每日 points 缺少数据时的返回规则不同。未传 window 时不返回该对象。
响应¶
{
"code": 200,
"content": {
"data": [
{
"sloUUID": "monitor_xxx",
"name": "Metrics",
"status": 0,
"goal": 99.9,
"minGoal": 99.5,
"tagInfo": [
{
"name": "site:cn1"
}
],
"points": [
{
"date": "2026-07-31",
"availability": 99.98,
"level": "normal",
"hasData": true
}
]
}
]
},
"errorCode": "",
"message": "",
"success": true,
"traceId": "TRACE-XXXX"
}