SLO SLA 상태 및 24시간 추세¶
POST /api/v1/slo/runtime/list
개요¶
현재 API Key가 속한 워크스페이스의 SLO에 대한 현재 SLA 상태와 지정된 시점 기준 24시간 상태 추세를 일괄 조회합니다. 모니터 기반 및 메트릭 기반 SLO를 지원합니다.
요청 본문 매개변수¶
| 매개변수 이름 | 유형 | 필수 | 설명 |
|---|---|---|---|
| sloUUIDs | array | Y | SLO UUID 목록으로 1~100개 항목을 전달합니다. 모든 SLO는 현재 워크스페이스에 속해야 하며 삭제되지 않아야 합니다. |
| asOf | integer | 쿼리 종료 시간, Unix 초 타임스탬프입니다. 양의 정수여야 하며 현재 시간보다 늦을 수 없습니다. 생략하면 서버 현재 시간을 사용합니다. |
매개변수 추가 설명¶
- 워크스페이스의 SLO 관리 권한이 필요하며
DF-API-KEY요청 헤더로 인증합니다. runtime24h.points는 24개의 시간 추세 포인트를 반환합니다. 각 포인트의 상태는 해당 포인트의 종료 시점에 대응하는 SLO 통계 주기에 따라 계산되며, 통계 주기는 SLO의checkRange(7일 또는 30일)로 결정됩니다. 단순히 해당 1시간 동안의 가용률만 계산하는 것이 아닙니다.- 현재 상태
current.status는normal,degraded,incident또는unknown입니다. 가용률이goal에 도달하면normal,minGoal에 도달했지만goal보다 낮으면degraded,minGoal보다 낮으면incident, 가용 결과가 없으면unknown입니다. - SLO가 비활성화되었거나
groupBy그룹이 존재하거나 데이터를 가져오지 못한 경우 해당 SLO의 상태는unknown,dataState는unavailable로 반환됩니다. 상태와 데이터 무결성을 함께 확인해야 하며, HTTP 성공만으로 서비스가 정상이라고 판단해서는 안 됩니다. - SLO가 존재하지 않거나, 삭제되었거나, 현재 워크스페이스에 속하지 않으면 전체 요청이 실패합니다.
요청 예시¶
curl 'https://openapi.guance.com/api/v1/slo/runtime/list' \
-H 'DF-API-KEY: <DF-API-KEY>' \
-H 'Content-Type: application/json;charset=UTF-8' \
--data-raw '{"sloUUIDs":["monitor_xxx"]}'
응답¶
응답은 공통 응답 구조를 사용하며, content에는 다음 필드가 포함됩니다.
| 필드 | 유형 | 설명 |
|---|---|---|
| asOf | integer | 이번 쿼리에 사용된 종료 시간(초)입니다. |
| data | array | 각 SLO의 결과입니다. sloUUID로 요청 항목을 연결하되 반환 순서에 의존하지 마십시오. |
| data[*].sloUUID | string | SLO UUID입니다. |
| data[*].current | object | 현재 SLA 상태이며 status, dataState, updatedAt을 포함합니다. |
| data[*].runtime24h | object | 추세 객체이며 startTime, endTime, dataState, points를 포함합니다. 시작 및 종료 시간은 asOf - 86400과 asOf입니다. |
| data[*].runtime24h.points | array | 24개의 추세 포인트이며 시간 오름차순으로 정렬됩니다. |
| data[].runtime24h.points[].startTime | integer | 현재 시간 구간의 시작 시간(초)입니다. |
| data[].runtime24h.points[].endTime | integer | 현재 시간 구간의 종료 시간이자 해당 추세 포인트의 상태 샘플링 시점(초)입니다. |
| data[].runtime24h.points[].status | string | 해당 시점의 SLA 상태이며 current.status와 동일한 열거형을 사용합니다. |
| data[].runtime24h.points[].dataState | string | 해당 포인트의 데이터 상태: complete, no_data 또는 unavailable입니다. |
| data[].runtime24h.points[].availability | object | 통계 주기의 가용률 정보이며 value, dataState, updatedAt, startTime, endTime, dayRange를 포함합니다. value에 사용 가능한 결과가 없으면 null입니다. |
availability.startTime/endTime은 실제 가용률 통계 주기를 나타내며, dayRange는 7d 또는 30d입니다. 이는 추세 포인트의 1시간 표시 구간과 다릅니다. updatedAt은 데이터 업데이트 시간이며 유효한 결과가 없으면 null일 수 있습니다.