콘텐츠로 이동

수정



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

문서 평가

이 페이지가 도움이 되었나요?