콘텐츠로 이동

수정



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

문서 평가

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