跳转至

批量获取每日可用率



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"
} 

文档评价

文档内容是否对您有帮助?