규칙 오버라이드 API
엔드포인트: /api/metrics/rule-overrides/
오버라이드는 서버 하나가 자신이 붙어 있는 경고 규칙에서 벗어나는 예외입니다. 그 서버만의 임계값, 복귀 임계값, 지속 시간을 따로 두거나, 규칙 자체에서 아예 제외할 수 있습니다. 다른 서버에는 영향을 주지 않습니다. 아직 콘솔 화면은 없으며, 이 API가 유일한 설정 방법입니다. 오버라이드가 규칙 동작에 어떻게 반영되는지는 모니터링 규칙을 참고하세요.
워크스페이스에서 Metrics 확장 기능이 켜져 있어야 하며, 이 자격 증명이 이미 관리할 수 있는 서버에만 접근할 수 있습니다. 다른 서버를 지정하면 찾을 수 없는 것으로 응답합니다.
규칙 오버라이드 목록 조회
규칙 오버라이드 목록을 페이지네이션하여 가져옵니다.
GET /api/metrics/rule-overrides/
쿼리 파라미터
| 파라미터 | 타입 | 설명 |
|---|---|---|
server | string (UUID) | 서버 ID로 필터링 |
rule | string (UUID) | 경고 규칙 ID로 필터링 |
enabled | boolean | 오버라이드 활성 여부로 필터링 (false가 제외 상태) |
search | string | 서버명, 규칙명으로 검색 |
ordering | string | 정렬 순서 (예: added_at, -updated_at). 기본값: -added_at |
page | integer | 페이지 번호 |
page_size | integer | 페이지당 결과 수 (기본값: 15, 최대: 100) |
응답
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"id": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
"server": {
"id": "7e3984de-49ab-4cc6-bcdf-21fbd35858b8",
"name": "web-server-01",
"os": "Ubuntu 22.04",
"is_connected": true
},
"rule": "8c4d6e2a-1b3f-4a5c-8d9e-0f1a2b3c4d5e",
"threshold": 90,
"recovery_threshold": 80,
"duration_s": null,
"enabled": true,
"added_at": "2026-09-10T09:00:00Z",
"updated_at": "2026-09-10T09:00:00Z"
}
]
}
필요한 스코프: rule_override:read
예시
curl -X GET "https://your-workspace.ap1.alpacon.io/api/metrics/rule-overrides/?server=7e3984de-49ab-4cc6-bcdf-21fbd35858b8" \
-H "Authorization: token=\"alpat-xxxxxxxxxxxxxxxxxx\""
규칙 오버라이드 생성
서버 하나에 그 규칙만의 값을 지정하거나, 규칙에서 제외합니다.
POST /api/metrics/rule-overrides/
요청 본문
{
"server": "7e3984de-49ab-4cc6-bcdf-21fbd35858b8",
"rule": "8c4d6e2a-1b3f-4a5c-8d9e-0f1a2b3c4d5e",
"threshold": 90,
"recovery_threshold": 80
}
요청 파라미터
| 필드 | 타입 | 필수 | 설명 |
|---|---|---|---|
server | string (UUID) | Yes | 오버라이드를 적용할 서버. 이 자격 증명이 관리할 수 있는 서버여야 함 |
rule | string (UUID) | Yes | 오버라이드할 경고 규칙 |
threshold | number | No | 이 서버에 한해 규칙의 임계값을 대체. 비워 두면 규칙의 값을 그대로 사용 |
recovery_threshold | number | No | 이 서버에 한해 규칙의 복귀 임계값을 대체. 규칙의 방향을 기준으로, 적용되는 임계값의 회복하는 쪽에 있어야 함. 비워 두면 규칙의 값을 그대로 사용 |
duration_s | integer | No | 이 서버에 한해 규칙의 지속 시간(초)을 대체. 비워 두면 규칙의 값을 그대로 사용하며, 0이면 조건을 만족하는 첫 샘플에서 바로 발생 |
enabled | boolean | No | false이면 다른 필드 값과 관계없이 이 서버를 규칙에서 완전히 제외. 기본값 true |
서버 하나당 규칙 하나에는 오버라이드를 하나만 둘 수 있습니다.
응답
{
"id": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
"server": {
"id": "7e3984de-49ab-4cc6-bcdf-21fbd35858b8",
"name": "web-server-01",
"os": "Ubuntu 22.04",
"is_connected": true
},
"rule": "8c4d6e2a-1b3f-4a5c-8d9e-0f1a2b3c4d5e",
"threshold": 90,
"recovery_threshold": 80,
"duration_s": null,
"enabled": true,
"added_at": "2026-09-10T09:00:00Z",
"updated_at": "2026-09-10T09:00:00Z"
}
필요한 스코프: rule_override:create
예시
curl -X POST "https://your-workspace.ap1.alpacon.io/api/metrics/rule-overrides/" \
-H "Authorization: token=\"alpat-xxxxxxxxxxxxxxxxxx\"" \
-H "Content-Type: application/json" \
-d '{"server": "7e3984de-49ab-4cc6-bcdf-21fbd35858b8", "rule": "8c4d6e2a-1b3f-4a5c-8d9e-0f1a2b3c4d5e", "threshold": 90}'
규칙 오버라이드 상세 조회
특정 규칙 오버라이드를 ID로 조회합니다.
GET /api/metrics/rule-overrides/{override_id}/
경로 파라미터
| 파라미터 | 타입 | 설명 |
|---|---|---|
override_id | string (UUID) | 조회할 오버라이드의 ID |
응답
규칙 오버라이드 생성과 같은 스키마입니다.
필요한 스코프: rule_override:read
예시
curl -X GET "https://your-workspace.ap1.alpacon.io/api/metrics/rule-overrides/1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d/" \
-H "Authorization: token=\"alpat-xxxxxxxxxxxxxxxxxx\""
규칙 오버라이드 수정
기존 오버라이드를 수정합니다. PATCH를 통한 부분 업데이트를 지원합니다.
PATCH /api/metrics/rule-overrides/{override_id}/
경로 파라미터
| 파라미터 | 타입 | 설명 |
|---|---|---|
override_id | string (UUID) | 수정할 오버라이드의 ID |
요청 본문
{
"enabled": false
}
요청 파라미터
규칙 오버라이드 생성과 같은 필드이며, 모두 선택 사항입니다. server와 rule은 생성 후에는 바꿀 수 없습니다. 오버라이드를 삭제하고 새로 만드세요.
응답
수정된 필드를 포함한 전체 오버라이드 객체를 반환합니다 (규칙 오버라이드 상세 조회와 같은 스키마).
필요한 스코프: rule_override:update
예시
curl -X PATCH "https://your-workspace.ap1.alpacon.io/api/metrics/rule-overrides/1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d/" \
-H "Authorization: token=\"alpat-xxxxxxxxxxxxxxxxxx\"" \
-H "Content-Type: application/json" \
-d '{"enabled": false}'
규칙 오버라이드 삭제
오버라이드를 삭제합니다. 서버는 다시 규칙 자체의 값을 따릅니다.
DELETE /api/metrics/rule-overrides/{override_id}/
경로 파라미터
| 파라미터 | 타입 | 설명 |
|---|---|---|
override_id | string (UUID) | 삭제할 오버라이드의 ID |
응답
204 No Content
필요한 스코프: rule_override:delete
예시
curl -X DELETE "https://your-workspace.ap1.alpacon.io/api/metrics/rule-overrides/1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d/" \
-H "Authorization: token=\"alpat-xxxxxxxxxxxxxxxxxx\""
오류 코드
| 상태 | 오류 코드 | 설명 |
|---|---|---|
| 400 | metrics_alert_rule_recovery_threshold_invalid | 적용되는 recovery_threshold가 적용되는 threshold의 회복하는 쪽에 있지 않음 |
| 400 | INVALID_REQUEST | 이 규칙에 대한 오버라이드가 이미 있거나, server 또는 rule을 찾을 수 없음 |
| 401 | UNAUTHORIZED | 유효하지 않거나 누락된 인증 정보 |
| 403 | FORBIDDEN | 권한 부족, 또는 이 워크스페이스에서 Metrics 확장 기능이 꺼져 있음 |
| 404 | NOT_FOUND | 오버라이드를 찾을 수 없거나, server가 이 자격 증명으로 관리할 수 없는 서버를 가리킴 |