수정¶
POST /api/v1/checker/{rule_uuid}/modify
개요¶
rule_uuid를 기준으로 지정된 모니터 정보를 수정합니다
경로 매개변수¶
| 파라미터명 | 유형 | 필수 | 설명 |
|---|---|---|---|
| rule_uuid | string | Y | 검사 항목 ID |
Body 요청 매개변수¶
| 파라미터명 | 유형 | 필수 | 설명 |
|---|---|---|---|
| configVersion | integer | V2 수정에 필수인 현재 구성 버전, 만료되면 409를 반환. 이전 버전 OpenAPI에서는 이 필드를 요구하지 않음 $minValue: 1 |
|
| generationId | string | Front AI가 새로 생성하거나 재생성한 후보 자격 증명, 생성 인터페이스 응답 헤더에서 제공 |
|
| 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 | 복구 이벤트 제목 템플릿 출력 예시: 监视器: {{monitor_name}} 检查器:{{monitor_checker_name}} 触发值:{{M1}} 빈 값 허용: False 빈 문자열 허용: True |
|
| jsonScript.recoverMessage | string | 복구 이벤트 정보 템플릿 출력 예시: status: {{status}}, title: {{title}} 빈 값 허용: False 빈 문자열 허용: True |
|
| jsonScript.noDataTitle | string | 데이터 없음 이벤트 제목 템플릿 출력 예시: 监视器: {{monitor_name}} 检查器:{{monitor_checker_name}} 触发值:{{M1}} 빈 값 허용: False 빈 문자열 허용: True |
|
| jsonScript.noDataMessage | string | 데이터 없음 이벤트 정보 템플릿 출력 예시: status: {{status}}, title: {{title}} 빈 값 허용: False 빈 문자열 허용: True |
|
| jsonScript.openNotificationMessage | boolean | 이벤트 알림 내용 활성화 여부, 기본값은 비활성화(이벤트 내용을 알림 내용으로 사용) 예시: False 빈 값 허용: False |
|
| jsonScript.notificationMessage | string | 이벤트 알림 내용 예시: 监视器: {{monitor_name}} 检查器:{{monitor_checker_name}} 触发值:{{M1}} 빈 값 허용: False 빈 문자열 허용: True |
|
| jsonScript.openNoDataNotificationMessage | boolean | 데이터 단절 이벤트 알림 내용 활성화 여부, 기본값은 비활성화(데이터 단절 이벤트 내용을 알림 내용으로 사용) 예시: False 빈 값 허용: False |
|
| jsonScript.noDataNotificationMessage | string | 데이터 단절 이벤트 알림 내용 예시: status: {{status}}, title: {{title}} 빈 값 허용: False 빈 문자열 허용: True |
|
| jsonScript.noDataRecoverTitle | string | 데이터 없음 복구 업로드 이벤트 제목 템플릿 출력 예시: 监视器: {{monitor_name}} 检查器:{{monitor_checker_name}} 触发值:{{M1}} 빈 값 허용: False 빈 문자열 허용: True |
|
| jsonScript.noDataRecoverMessage | string | 데이터 없음 복구 업로드 이벤트 정보 템플릿 출력 예시: 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 | 이상 발생 후 몇 번의 점검 주기가 지나면 복구 이벤트를 생성할지 지정. 감지 주기가 사용자 정의 customCrontab이면 이 필드는 시간 길이를 나타내며 단위는 초, 그렇지 않으면 감지 주기 횟수를 나타냄 예시: 60 빈 값 허용: False |
|
| jsonScript.noDataInterval | integer | 지정된 시간 동안 데이터가 없으면 데이터 없음 이벤트 생성 예시: 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.yamlConfig | string | V2 전체 소스 YAML 텍스트, 최대 256KiB. JSON 객체가 아니며 Markdown 펜스 없음 |
|
| jsonScript.checkerOpt.disableLargeScaleEventProtect | boolean | 대규모 이벤트 보호 비활성화 여부, 기본값은 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 이벤트를 생성할지 여부, 기본값은 false 예시: True |
|
| jsonScript.checkerOpt.infoEventCondition | json | 정보 이벤트 생성 조건, 임계값 모니터에서만 지원. 빈 객체는 조건 없이 생성을 의미 예시: {'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.checkerOpt.category | string | AI 모니터링 카테고리 메타데이터 빈 값 허용: False |
|
| jsonScript.checkerOpt.userPrompt | string | AI 사용자 프롬프트, 전달 시 비어 있을 수 없으며 최대 20000자 빈 값 허용: False 빈 문자열 허용: True 최대 길이: 20000 |
|
| jsonScript.checkerOpt.systemPrompt | string | AI 시스템 프롬프트, 전달 시 비어 있을 수 없으며 최대 20000자 빈 값 허용: False 빈 문자열 허용: True 최대 길이: 20000 |
|
| jsonScript.checkerOpt.mentions | array | DQL 참조 목록. 각 항목은 type=dql, namespace, datasource를 포함해야 하며 index는 선택 사항으로 로그를 선택할 때 입력. 직렬화 후 최대 20000자 빈 값 허용: False |
|
| jsonScript.checkerOpt.mentions[*] | None | ||
| jsonScript.checkerOpt.mentions[*].type | string | Y | 데이터 소스 유형 선택 가능한 값: ['dql'] |
| jsonScript.checkerOpt.mentions[*].namespace | string | Y | DQL 네임스페이스 빈 문자열 허용: False |
| jsonScript.checkerOpt.mentions[*].index | string | DQL 인덱스, 로그를 선택할 때 입력 빈 문자열 허용: False |
|
| jsonScript.checkerOpt.mentions[*].datasource | string | Y | DQL 데이터 소스 빈 문자열 허용: False |
| jsonScript.checkerOpt.model | string | 이번 감지에 사용하는 모델 빈 값 허용: False |
|
| jsonScript.checkerOpt.contextWindowLimit | integer | 컨텍스트 창 토큰 제한, 0보다 커야 함 빈 값 허용: False $minValue: 1 |
|
| jsonScript.checkerOpt.maxChatRounds | integer | 최대 대화 라운드, 1 이상이어야 함 빈 값 허용: False $minValue: 1 |
|
| jsonScript.checkerOpt.maxDQLQueries | integer | 최대 DQL 조회 횟수, 0 이상이어야 함 빈 값 허용: False $minValue: 0 |
|
| jsonScript.checkerOpt.creditSoftBudget | number | 단일 감지 Credit 소프트 예산, 0보다 커야 함 빈 값 허용: False |
|
| 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를 변경 이벤트로 처리할지 여부, 기본값은 false. 기존 규칙에서 해당 필드가 누락된 경우 false로 처리 예시: False 빈 값 허용: False |
|
| jsonScript.disableCheckEndTime | boolean | 종료 시간 제한 비활성화 여부 예시: True 빈 값 허용: False |
|
| jsonScript.eventChartEnable | boolean | 이벤트 차트 활성화 여부, 기본값은 비활성화(참고: 주 스토리지 엔진 logging이 doris인 경우에만 적용됨) 예시: False 빈 값 허용: False |
|
| jsonScript.eventCharts | array | 이벤트 차트 목록 예시: True 빈 값 허용: False |
|
| jsonScript.eventCharts[*] | None | ||
| jsonScript.eventCharts[*].dql | string | 이벤트 차트의 조회문 예시: M:: cpu:(avg(load5s)) BY host 빈 값 허용: False |
|
| openPermissionSet | boolean | 사용자 정의 권한 구성 활성화(기본값 false: 비활성화). 활성화 후 이 규칙의 작업 권한은 permissionSet에 따름 빈 값 허용: False |
|
| permissionSet | array | 작업 권한 구성, 구성 가능(역할(소유자 제외), 멤버 uuid, 팀 uuid) 예시: ['wsAdmin', 'acnt_xxxx', 'group_yyyy'] 빈 값 허용: False |
매개변수 추가 설명¶
지능형 모니터링 V2는 외부 type=smartMonitor, jsonScript.type=smartMonitorV2Check 및 checkerOpt.yamlConfig를 사용합니다. 고정적으로 10분마다 실행되며 조회는 YAML에서만 가져옵니다. 수정 시 DQL, 기존 임계값 구성 및 기존 알고리즘 공개 매개변수만 허용됩니다. 규칙 집합, 알고리즘 유형, 차원, 시간 및 템플릿은 수정할 수 없습니다. extend.smartMonitor는 출처, 프롬프트 및 서버 측 구성 버전을 저장합니다. Front는 이전 버전의 생성/가져오기/편집을 거부하며, 기존 인스턴스는 여전히 삭제 및 활성화/비활성화가 가능합니다. OpenAPI 이전 버전 기능은 호환성을 유지합니다.
요청 예시¶
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"
}