수정¶
POST /api/v1/checker/{rule_uuid}/modify
개요¶
rule_uuid를 기반으로 지정된 모니터 정보를 수정합니다.
경로 매개변수¶
| 매개변수명 | 유형 | 필수 | 설명 |
|---|---|---|---|
| rule_uuid | string | Y | 검사 항목의 ID |
본문 요청 매개변수¶
| 매개변수명 | 유형 | 필수 | 설명 |
|---|---|---|---|
| queryType | string | extend.querylist가 전달되지 않았을 때 사용 및 검증되는 DQL 프론트엔드 표시 모드. simple은 Studio가 간단 모드 필드를 파싱 및 주입함을 의미하고, dql은 DQL 텍스트 모드를 의미하며, 기본값은 dql입니다. extend.querylist가 명시적으로 전달되면 원본을 우선 사용하고 queryType의 주입 의미를 무시합니다. simple 변환 실패 시 자동으로 dql로 대체되며, jsonScript.targets에서 실제 실행되는 DQL은 변경되지 않습니다. 빈 값 허용: False 예시: simple |
|
| extend | json | 추가 정보 빈 값 허용: True |
|
| status | integer | 모니터 상태 필드, 0은 활성화 상태, 2는 비활성화 상태, 기본값은 활성화 상태입니다. (2025-02-19 반복 신규 추가) 빈 값 허용: False 선택 가능 값: [0, 2] |
|
| alertPolicyUUIDs | array | 알림 정책 UUID 빈 값 허용: False |
|
| dashboardUUID | string | 연결된 대시보드 ID 빈 값 허용: False |
|
| tags | array | 필터링에 사용되는 태그 이름 빈 값 허용: False 예시: ['xx', 'yy'] |
|
| secret | string | Webhook 주소의 중간 고유 식별자 secret 빈 값 허용: False 예시: secret_xxxxx |
|
| jsonScript | json | 규칙 구성 빈 값 허용: False |
|
| jsonScript.targetWorkspaceUUID | string | 대상 워크스페이스, 교차 공간 조회, 임계값 감지 유형만 지원합니다. (2025-08-13 반복 신규 추가) 빈 값 허용: False 빈 문자열 허용: False |
|
| jsonScript.type | string | Y | 검사 방법 유형 예시: simpleCheck 빈 값 허용: False |
| jsonScript.windowDql | string | window dql 빈 값 허용: False |
|
| jsonScript.title | string | Y | event 제목 생성 예시: 모니터: {{monitor_name}} 검사기:{{monitor_checker_name}} 트리거 값:{{M1}} 빈 값 허용: False 빈 문자열 허용: True 최대 길이: 256 |
| jsonScript.message | string | event 내용 예시: status: {{status}}, title: {{title}} 빈 값 허용: False 빈 문자열 허용: True |
|
| jsonScript.recoverTitle | string | 복구 event 제목 템플릿 출력 예시: 모니터: {{monitor_name}} 검사기:{{monitor_checker_name}} 트리거 값:{{M1}} 빈 값 허용: False 빈 문자열 허용: True |
|
| jsonScript.recoverMessage | string | 복구 event 정보 템플릿 출력 예시: status: {{status}}, title: {{title}} 빈 값 허용: False 빈 문자열 허용: True |
|
| jsonScript.noDataTitle | string | 데이터 없음 event 제목 템플릿 출력 예시: 모니터: {{monitor_name}} 검사기:{{monitor_checker_name}} 트리거 값:{{M1}} 빈 값 허용: False 빈 문자열 허용: True |
|
| jsonScript.noDataMessage | string | 데이터 없음 event 정보 템플릿 출력 예시: status: {{status}}, title: {{title}} 빈 값 허용: False 빈 문자열 허용: True |
|
| jsonScript.openNotificationMessage | boolean | event 알림 내용 활성화 여부, 기본값은 비활성화입니다(event 내용을 알림 내용으로 사용). 예시: False 빈 값 허용: False |
|
| jsonScript.notificationMessage | string | event 알림 내용 예시: 모니터: {{monitor_name}} 검사기:{{monitor_checker_name}} 트리거 값:{{M1}} 빈 값 허용: False 빈 문자열 허용: True |
|
| jsonScript.openNoDataNotificationMessage | boolean | 데이터 단절 event 알림 내용 활성화 여부, 기본값은 비활성화입니다(데이터 단절 event 내용을 알림 내용으로 사용). 예시: False 빈 값 허용: False |
|
| jsonScript.noDataNotificationMessage | string | 데이터 단절 event 알림 내용 예시: status: {{status}}, title: {{title}} 빈 값 허용: False 빈 문자열 허용: True |
|
| jsonScript.noDataRecoverTitle | string | 데이터 복구 업로드 event 제목 템플릿 출력 예시: 모니터: {{monitor_name}} 검사기:{{monitor_checker_name}} 트리거 값:{{M1}} 빈 값 허용: False 빈 문자열 허용: True |
|
| jsonScript.noDataRecoverMessage | string | 데이터 복구 업로드 event 정보 템플릿 출력 예시: status: {{status}}, title: {{title}} 빈 값 허용: False 빈 문자열 허용: True |
|
| jsonScript.every | string | 검사 빈도 예시: 1m 빈 값 허용: False |
|
| jsonScript.customCrontab | string | 사용자 정의 검사 빈도 예시: 0 */12 * * * 빈 값 허용: False |
|
| jsonScript.delaySeconds | integer | 일반 모니터 데이터 대기 창, 단위는 초, 0은 대기하지 않음을 의미합니다. 지능형 모니터는 이 구성을 지원하지 않습니다. 예시: 60 빈 값 허용: False 선택 가능 값: [0, 60, 120, 180, 300, 600, 900, 1800] |
|
| jsonScript.interval | integer | 쿼리 간격, 즉 한 번의 쿼리 시간 범위의 차이입니다. 예시: 60 빈 값 허용: False |
|
| jsonScript.range | integer | 고급 감지, 돌연변이 감지의 range 매개변수, 단위는 초 예시: 3600 빈 값 허용: False |
|
| jsonScript.range_2 | integer | 고급 감지, 돌연변이 감지의 range_2 매개변수, 단위는 초, 특별 설명 (-1은 전월 대비, 0은 periodBefore 필드 사용을 의미) 예시: 600 빈 값 허용: False |
|
| jsonScript.periodBefore | integer | 고급 감지, 돌연변이 감지의 (어제/1시간 전) 매개변수, 단위는 초 예시: 600 빈 값 허용: False |
|
| jsonScript.recoverNeedPeriodCount | integer | 이상 현상이 발생한 후 몇 번의 검사 주기 이후에 복구 event를 생성할지 지정합니다. 검사 빈도가 사용자 정의 customCrontab인 경우, 이 필드는 시간 길이를 나타내며 단위는 초입니다. 그렇지 않으면 검사 빈도 횟수를 나타냅니다. 예시: 60 빈 값 허용: False |
|
| jsonScript.noDataInterval | integer | 지정된 시간 동안 데이터가 없으면 데이터 없음 event를 생성합니다. 예시: 60 빈 값 허용: False |
|
| jsonScript.noDataAction | string | 데이터 없음 처리 작업 빈 값 허용: False 선택 가능 값: ['none', 'checkAs0', 'noDataEvent', 'fatalEvent', 'criticalEvent', 'errorEvent', 'warningEvent', 'okEvent', 'noData', 'recover'] |
|
| jsonScript.checkFuncs | array | 검사 함수 정보 목록 예시: [{'funcId': 'xxx', 'kwargs': {}}] 빈 값 허용: False |
|
| jsonScript.groupBy | array | 트리거 차원 예시: ['병원'] 빈 값 허용: False |
|
| jsonScript.targets | array | 검사 대상 예시: [{'dql': 'M:: 병사 정보:(AVG(잠재력 값)) [::auto] by 성별', 'alias': 'M1'}] 빈 값 허용: False |
|
| jsonScript.checkerOpt | json | 검사 조건 설정 빈 값 허용: False |
|
| jsonScript.checkerOpt.disableLargeScaleEventProtect | boolean | 대규모 event 보호 비활성화 여부, 기본값은 false 예시: True |
|
| jsonScript.checkerOpt.script | string | 프로그래밍 가능 모니터의 스크립트 내용 빈 값 허용: False 빈 문자열 허용: True |
|
| jsonScript.checkerOpt.rules | array | 트리거 조건 목록 예시: [{'status': 'warning', 'conditions': [{'operands': [60], 'operator': '>', 'alias': 'M1'}], 'conditionLogic': 'and', 'matchTimes': 10}] 빈 값 허용: False |
|
| jsonScript.checkerOpt.openOkConditions | boolean | 단계별 복구 활성화, 기본값은 비활성화(false) 예시: True |
|
| jsonScript.checkerOpt.openMatchTimes | boolean | 연속 트리거 판단 활성화, 기본값은 비활성화(false) 예시: True |
|
| jsonScript.checkerOpt.infoEvent | boolean | 지속적으로 정상일 때 info event를 생성할지 여부, 기본값은 false 예시: True |
|
| jsonScript.checkerOpt.infoEventCondition | json | 정보 event 생성 조건, 임계값 모니터만 지원합니다. 빈 객체는 조건 없이 생성을 의미합니다. 예시: {'alias': 'M1', 'operator': '>=', 'operands': [60]} 빈 값 허용: False |
|
| jsonScript.checkerOpt.infoEventCondition.alias | string | 판단 대상 별칭 |
|
| jsonScript.checkerOpt.infoEventCondition.operator | string | 판단 연산자 |
|
| jsonScript.checkerOpt.infoEventCondition.operands | array | 판단 피연산자 목록 |
|
| jsonScript.checkerOpt.diffMode | string | 고급 감지 중 돌연변이 감지의 차이 모드, 열거형 값: value, percent 예시: value 선택 가능 값: ['value', 'percent'] |
|
| jsonScript.checkerOpt.direction | string | 고급 감지 중 돌연변이 감지, 구간 감지의 트리거 조건 방향 예시: up 선택 가능 값: ['up', 'down', 'both'] |
|
| jsonScript.checkerOpt.eps | float | 거리 매개변수,取值范围: 0 ~ 3.0 예시: 0.5 |
|
| jsonScript.checkerOpt.threshold | json | 돌연변이 감지의 트리거 전제 조건 설정 빈 값 허용: False |
|
| jsonScript.checkerOpt.threshold.status | boolean | Y | 돌연변이 감지, 트리거 전제 조건 활성화 여부 예시: True |
| jsonScript.checkerOpt.threshold.operator | string | Y | 돌연변이 감지, 트리거 전제 조건 연산자 예시: |
| jsonScript.checkerOpt.threshold.value | float | Y | 돌연변이 감지, 트리거 전제 조건 감지 값 예시: 90 빈 값 허용: True |
| jsonScript.checkerOpt.combineExpr | string | 조합 모니터, 조합 방식 예시: A && B 빈 문자열 허용: False |
|
| jsonScript.checkerOpt.ignoreNodata | boolean | 조합 모니터, 데이터 없음 결과 무시 여부 (true는 무시를 의미) 예시: True |
|
| jsonScript.checkerOpt.confidenceInterval | integer | 구간 감지 V2 신규 매개변수, 신뢰 구간 범위 값 1-100 예시: 10 |
|
| jsonScript.channels | array | 채널 UUID 목록 예시: ['이름1', '이름2'] 빈 값 허용: False |
|
| jsonScript.atAccounts | array | 일반 감지 시 @되는 계정 UUID 목록 예시: ['xx1', 'xx2'] 빈 값 허용: False |
|
| jsonScript.atNoDataAccounts | array | 데이터 없음 상황에서 @되는 계정 UUID 목록 예시: ['xx1', 'xx2'] 빈 값 허용: False |
|
| jsonScript.subUri | string | OuterEventChecker의 Webhook 주소 접미사, 신규 생성 시 필수이며, 고유할 필요는 없습니다. 예시: datakit/push 빈 값 허용: False |
|
| jsonScript.isChangeEvent | boolean | OuterEventChecker를 변경 event로 처리할지 여부, 기본값은 false입니다. 기존 규칙에 누락된 경우 false로 처리됩니다. 예시: False 빈 값 허용: False |
|
| jsonScript.disableCheckEndTime | boolean | 종료 시간 제한 비활성화 여부 예시: True 빈 값 허용: False |
|
| jsonScript.eventChartEnable | boolean | event 차트 활성화 여부, 기본값은 비활성화입니다. (참고: 주 스토리지 엔진 logging이 doris인 경우에만 적용됩니다) 예시: False 빈 값 허용: False |
|
| jsonScript.eventCharts | array | event 차트 목록 예시: True 빈 값 허용: False |
|
| jsonScript.eventCharts[*] | None | ||
| jsonScript.eventCharts[*].dql | string | event 차트의 쿼리문 예시: M:: cpu:(avg(load5s)) BY host 빈 값 허용: False |
|
| openPermissionSet | boolean | 사용자 정의 권한 구성 활성화, (기본값 false: 비활성화), 활성화 시 해당 규칙의 작업 권한은 permissionSet에 따릅니다. 빈 값 허용: False |
|
| permissionSet | array | 작업 권한 구성, (소유자 제외 역할, 멤버 uuid, 팀 uuid) 구성 가능 예시: ['wsAdmin', 'acnt_xxxx', 'group_yyyy'] 빈 값 허용: False |
매개변수 추가 설명¶
요청 예시¶
curl 'https://openapi.guance.com/api/v1/checker/rul_xxxxxx/modify' \
-H 'DF-API-KEY: <DF-API-KEY>' \
-H 'Content-Type: application/json;charset=UTF-8' \
--data-raw '{"queryType":"simple","extend":{"querylist":[{"datasource":"dataflux","qtype":"dql","query":{"code":"Result","type":"simple","namespace":"metric","dataSource":"ssh","field":"ssh_check","fieldType":"float","alias":"","fieldFunc":"count","groupByTime":"","groupBy":["host"],"q":"M::`ssh`:(count(`ssh_check`)) BY `host`","funcList":[]},"uuid":"aada629a-672e-46f9-9503-8fd61065c382"}],"funcName":"","rules":[{"conditionLogic":"and","conditions":[{"alias":"Result","operands":["90"],"operator":">="}],"status":"critical"},{"conditionLogic":"and","conditions":[{"alias":"Result","operands":["0"],"operator":">="}],"status":"error"}],"issueLevelUUID":"system_level_3","isNeedCreateIssue":false,"needRecoverIssue":false},"jsonScript":{"title":"Host {{ host }} SSH Service Exception","message":">Level:{{status}} \n>Host:{{host}} \n>Content:Host SSH Status {{ Result | to_fixed(2) }}% \n>Suggestion:Check Host SSH Service Status","noDataTitle":"","noDataMessage":"","type":"simpleCheck","every":"1m","groupBy":["host"],"interval":300,"targets":[{"dql":"M::`ssh`:(count(`ssh_check`)) BY `host`","alias":"Result","qtype":"dql"}],"checkerOpt":{"rules":[{"conditionLogic":"and","conditions":[{"alias":"Result","operands":["90"],"operator":">="}],"status":"critical"},{"conditionLogic":"and","conditions":[{"alias":"Result","operands":["0"],"operator":">="}],"status":"error"}],"infoEvent":false},"recoverNeedPeriodCount":2,"channels":[],"atAccounts":[],"atNoDataAccounts":[],"disableCheckEndTime":false},"alertPolicyUUIDs":["altpl_xxxx32"],"tags":["Local Test Combination Detection"]}' \
--compressed
응답¶
{
"code": 200,
"content": {
"createAt": 1710827935,
"createdWay": "manual",
"creator": "acnt_xxxx32",
"crontabInfo": {
"crontab": "*/1 * * * *",
"id": "cron-pwiThsuE9gtQ"
},
"declaration": {
"b": [
"asfawfgajfasfafgafwba",
"asfgahjfaf"
],
"business": "aaa",
"organization": "64fe7b4062f74d0007b46676"
},
"deleteAt": -1,
"extend": {
"funcName": "",
"isNeedCreateIssue": false,
"issueLevelUUID": "system_level_3",
"needRecoverIssue": false,
"querylist": [
{
"datasource": "dataflux",
"qtype": "dql",
"query": {
"alias": "",
"code": "Result",
"dataSource": "ssh",
"field": "ssh_check",
"fieldFunc": "count",
"fieldType": "float",
"funcList": [],
"groupBy": [
"host"
],
"groupByTime": "",
"namespace": "metric",
"q": "M::`ssh`:(count(`ssh_check`)) BY `host`",
"type": "simple"
},
"uuid": "aada629a-672e-46f9-9503-8fd61065c382"
}
],
"rules": [
{
"conditionLogic": "and",
"conditions": [
{
"alias": "Result",
"operands": [
"90"
],
"operator": ">="
}
],
"status": "critical"
},
{
"conditionLogic": "and",
"conditions": [
{
"alias": "Result",
"operands": [
"0"
],
"operator": ">="
}
],
"status": "error"
}
]
},
"id": 1118,
"isLocked": 0,
"jsonScript": {
"atAccounts": [],
"atNoDataAccounts": [],
"channels": [],
"checkerOpt": {
"infoEvent": false,
"rules": [
{
"conditionLogic": "and",
"conditions": [
{
"alias": "Result",
"operands": [
"90"
],
"operator": ">="
}
],
"status": "critical"
},
{
"conditionLogic": "and",
"conditions": [
{
"alias": "Result",
"operands": [
"0"
],
"operator": ">="
}
],
"status": "error"
}
]
},
"disableCheckEndTime": false,
"every": "1m",
"groupBy": [
"host"
],
"interval": 300,
"message": ">Level:{{status}} \n>Host:{{host}} \n>Content:Host SSH Status {{ Result | to_fixed(2) }}% \n>Suggestion:Check Host SSH Service Status",
"name": "Host {{ host }} SSH Service Exception",
"noDataMessage": "",
"noDataTitle": "",
"recoverNeedPeriodCount": 2,
"targets": [
{
"alias": "Result",
"dql": "M::`ssh`:(count(`ssh_check`)) BY `host`",
"qtype": "dql"
}
],
"title": "Host {{ host }} SSH Service Exception",
"type": "simpleCheck"
},
"monitorUUID": "monitor_xxxx32",
"refKey": "",
"secret": "",
"status": 0,
"tagInfo": [
{
"id": "tag_xxxx32",
"name": "Local Test Combination Detection"
}
],
"type": "trigger",
"updateAt": 1710831784,
"updator": "wsak_xxxxx",
"uuid": "rul_xxxx32",
"workspaceUUID": "wksp_xxxx32"
},
"errorCode": "",
"message": "",
"success": true,
"traceId": "TRACE-FF2C1DA3-1EE2-4802-A857-D37BCFB0C562"
}