콘텐츠로 이동

생성



POST /api/v1/checker/add

개요

모니터를 생성합니다.

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
type string 모니터 유형, 기본값 trigger, trigger: 일반 모니터, aiMonitor: AI 의미론 모니터, smartMonitor: 지능형 모니터링
빈 값 허용: False
예시: smartMonitor
status integer 모니터 상태 필드, 0 활성 상태, 2 비활성 상태, 기본값 활성 상태, (2025-02-19 업데이트에서 추가)
빈 값 허용: False
허용 값: [0, 2]
extend json 추가 정보 (인시던트 관련 필드 및 프론트엔드 반영에 사용되는 일부 필드)
빈 값 허용: True
alertPolicyUUIDs array 알림 정책 UUID
빈 값 허용: False
dashboardUUID string 연결된 대시보드 id
빈 값 허용: False
tags array 필터링에 사용되는 태그 이름
빈 값 허용: False
예시: ['xx', 'yy']
secret string Webhook 주소 중간 부분의 고유 식별자 secret(일반적으로 임의의 uuid를 사용하여 워크스페이스 내에서 고유함을 보장)
빈 값 허용: 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 매개변수, 단위 s
예시: 3600
빈 값 허용: False
jsonScript.range_2 integer 고급 감지, 급변 감지의 range_2 매개변수, 단위 s, 특별 설명 (-1은 직전 기간 대비를 의미, 0은 periodBefore 필드 사용을 의미)
예시: 600
빈 값 허용: False
jsonScript.periodBefore integer 고급 감지, 급변 감지의 (어제/한 시간 전) 매개변수, 단위 s
예시: 600
빈 값 허용: False
jsonScript.recoverNeedPeriodCount integer 이상 발생 후 몇 개의 검사 주기가 지난 뒤 복구 이벤트를 생성할지 지정. 감지 빈도가 사용자 정의 customCrontab이면 이 필드는 시간 길이(단위 s)를 나타내고, 그렇지 않으면 감지 빈도 횟수를 나타냄
예시: 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 컨텍스트 창 Token 제한, 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의 이전 버전 기능은 호환성을 유지합니다.

데이터 설명.

jsonScript 매개변수 설명

1. 검사 유형 jsonScript.type 설명

키 설명
simpleCheck 임계값 감지
seniorMutationsCheck 급변 감지
seniorRangeCheck 구간 감지
seniorRangeV2Check 구간 감지 V2
outlierCheck 이상치 감지
loggingCheck 로그 감지
processCheck 프로세스 이상 감지
objectSurvivalCheck 인프라 생존 감지
objectSurvivalV2Check 인프라 생존 감지 V2, doris 워크스페이스만 지원
objectChangeCheck 인프라 변경 감지
apmCheck APM 메트릭 감지
rumCheck RUM 메트릭 감지
securityCheck 보안 점검 이상 감지
cloudDialCheck 신서틱 테스트 이상 탐지
networkCheck 네트워크 데이터 감지
OuterEventChecker 외부 이벤트 감지
smartHostCheck 지능형 모니터링, 호스트 지능형 감지
smartLogCheck 지능형 모니터링, 로그 지능형 감지
smartApmCheck 지능형 모니터링, 애플리케이션 지능형 감지
smartRumCheck 지능형 모니터링, 사용자 접속 지능형 감지
smartKubeCheck 지능형 모니터링, Kubernetes 지능형 감지
smartCloudBillingCheck 지능형 모니터링, 클라우드 청구 지능형 감지
combinedCheck 조합 모니터링
programmableCheck 프로그래밍 가능 모니터
aiMonitor AI 의미론 모니터, 독립적인 Rule.type=aiMonitor로 저장되며 Func 예약 작업에 의해 실행됨

2. 서비스가 종료된 검사 유형 jsonScript.type 설명

키 설명
seniorCheck 고급 검사, 서비스 종료
mutationsCheck 급변 검사, 서비스 종료, seniorMutationsCheck로 업데이트됨
waterLevelCheck 수위 검사, 서비스 종료
rangeCheck 구간 검사, 서비스 종료, seniorRangeCheck로 업데이트됨

3. 트리거 조건 비교 연산자 설명(checkerOpt.rules의 매개변수 설명)

매개변수명 type 필수 설명
conditions Array[Dict] 필수 조건
conditions[#].alias String 필수 감지 객체 별칭, 즉 위 targets[#].alias
conditions[#].operator String 필수 연산자. = , > , < 등
conditions[#].operands Array[Any] 필수 피연산자 배열. (between, in 등 연산자는 여러 피연산자가 필요)
conditionLogic string 필수 조건 간 로직. and, or
status string 필수 조건 충족 시 출력되는 event의 status. event의 status와 동일한 값 사용
direction string 【구간/수위/급변 매개변수】 감지 방향, 값: "up", "down", "both"
periodNum integer 【구간/수위/급변 매개변수】 최근 데이터 포인트 수만 감지
checkPercent integer 【구간 매개변수】 이상 비율 임계값, 값: 1 ~ 100
checkCount integer 【수위/급변 매개변수】 연속 이상 포인트 수
strength integer 【수위/급변 매개변수】 감지 강도, 값: 1=약, 2=중, 3=강
matchTimes integer 연속 트리거 구성을 활성화한(checkerOpt.openMatchTimes) 연속 트리거 구성 횟수 [1,10]
okConditions Array[Dict] 복구 조건
okConditions[#].alias String 감지 객체 별칭, 즉 위 targets[#].alias
okConditions[#].operator String 연산자. = , > , < 등
okConditions[#].operands Array[Any] 피연산자 배열. (between, in 등 연산자는 여러 피연산자가 필요)

4. 단순/로그/수위/급변/구간 검사 jsonScript.type in (simpleCheck, loggingCheck, waterLevelCheck, mutationsCheck, rangeCheck, securityCheck) 매개변수 정보

매개변수명 type 필수 설명
title string Y 장애 이벤트 제목 템플릿 출력
message string N 장애 이벤트 정보 템플릿 출력
recoverTitle string N 복구 이벤트 제목 템플릿 출력
recoverMessage string N 복구 이벤트 정보 템플릿 출력
noDataTitle string N 무데이터 이벤트 제목 템플릿 출력
noDataMessage string N 무데이터 이벤트 정보 템플릿 출력
noDataRecoverTitle string N 무데이터 복구 업로드 이벤트 제목 템플릿 출력
noDataRecoverMessage string N 무데이터 복구 업로드 이벤트 정보 템플릿 출력
openNotificationMessage boolean N 이벤트 알림 콘텐츠 활성화 여부
notificationMessage string N 이벤트 알림 콘텐츠
openNoDataNotificationMessage string N 데이터 단절 이벤트 알림 콘텐츠 활성화 여부
noDataNotificationMessage string N 데이터 단절 이벤트 알림 콘텐츠
name string Y 규칙 이름
type string Y 규칙 유형
every string Y 검사 빈도, 단위 (1m/1h/1d)
customCrontab string N 사용자 정의 검사 빈도의 crontab
delaySeconds integer N 데이터 대기 창, 단위 초, 0, 60, 120, 180, 300, 600, 900, 1800 지원, 기본값 0
interval integer Y 데이터 시간 범위의 시차, 즉 time_range의 시차, 단위: 초
recoverNeedPeriodCount integer Y 지정된 검사 주기 횟수를 초과한 후 복구 이벤트 생성, 감지 빈도가 사용자 정의 customCrontab이면 이 필드는 시간 길이(단위 s)를 나타내고, 그렇지 않으면 감지 빈도 횟수를 나타냄
noDataInterval integer N 얼마 동안 데이터가 없으면 무데이터 이벤트 생성
noDataAction string N 무데이터 처리 작업
targets array Y 단순 검사의 검사 대상 목록
targets[*].dql string Y DQL 쿼리문
targets[*].alias string Y 별칭
targets[*].monitorCheckerId string Y 조합 모니터링, 모니터 ID (rul_xxxxx)
checkerOpt json N 검사 구성, 선택 사항
checkerOpt.rules array Y 검사 규칙 목록
checkerOpt.openMatchTimes boolean N 연속 트리거 판정 활성화 여부, 기본값 비활성화 false
checkerOpt.openOkConditions boolean N 복구 조건 구성 활성화, 기본값 비활성화 false
checkerOpt.disableLargeScaleEventProtect boolean N 대규모 이벤트 보호 비활성화 여부, 기본값 false

일반 simpleCheck의 jsonScript.targets는 실제 실행 대상이며, 대상 alias는 고유해야 하고 검사 조건의 참조와 일치해야 합니다. 편집 또는 반영에 필요한 여러 쿼리 노드는 extend.querylist에 배치해야 합니다. combinedCheck는 조합 모니터링의 기존 다중 대상 의미에 따라 처리됩니다.


5. jsonScript.noDataAction 매개변수 정보

매개변수명 설명
none 작업 없음([무데이터 관련 처리 비활성화]와 동일)
checkAs0 쿼리 결과를 0으로 간주
noDataEvent 복구 이벤트(noData) 트리거
fatalEvent 치명적 이벤트(fatal) 트리거
criticalEvent 긴급 이벤트(crtical) 트리거
errorEvent 중요 이벤트(error) 트리거
warningEvent 경고 이벤트(warning) 트리거
okEvent 복구 이벤트(ok) 트리거
noData 무데이터 이벤트 생성, 이 매개변수는 2024-04-10에 서비스가 종료되었으며, 기능 로직은 noDataEvent와 동일하므로 바로 noDataEvent로 교체할 수 있음
recover 복구 이벤트 트리거, 이 매개변수는 2024-04-10에 서비스가 종료되었으며, 기능 로직은 okEvent와 동일하므로 바로 okEvent로 교체할 수 있음

6. 고급 검사 jsonScript.type in (seniorCheck) 매개변수 정보

매개변수명 type 필수 설명
title string Y 장애 이벤트 제목 템플릿 출력
message string N 장애 이벤트 정보 템플릿 출력
recoverTitle string N 복구 이벤트 제목 템플릿 출력
recoverMessage string N 복구 이벤트 정보 템플릿 출력
noDataTitle string N 무데이터 이벤트 제목 템플릿 출력
noDataMessage string N 무데이터 이벤트 정보 템플릿 출력
noDataRecoverTitle string N 무데이터 복구 업로드 이벤트 제목 템플릿 출력
noDataRecoverMessage string N 무데이터 복구 업로드 이벤트 정보 템플릿 출력
type string Y 규칙 유형
every string Y 검사 빈도, 단위 (1m/1h/1d)
customCrontab string N 사용자 정의 검사 빈도의 crontab
delaySeconds integer N 데이터 대기 창, 단위 초, 0, 60, 120, 180, 300, 600, 900, 1800 지원, 기본값 0
checkFuncs array Y 고급 검사 함수 목록, 요소가 정확히 하나만 있어야 함에 유의
checkFuncs[#].funcId string Y 함수 ID, 【외부 함수】목록 인터페이스를 통해 funcTags=monitorType|custom의 사용자 정의 검사 함수 목록을 가져올 수 있음
checkFuncs[#].kwargs json N 해당 고급 함수에 필요한 매개변수 데이터

7. 급변 검사 seniorMutationsCheck 매개변수 설명

매개변수명 type 필수 설명
jsonScript.range integer N 감지 메트릭의 Result 시간 구간 1
jsonScript.range_2 integer N 감지 메트릭의 Result 시간 구간 2, 특별 설명: (-1은 직전 기간 대비를 의미, 0은 periodBefore 필드 사용을 의미)
jsonScript.periodBefore integer N jsonScript.range_2가 0일 때, 이 필드는 (어제/한 시간 전)을 나타냄
jsonScript.checkerOpt.diffMode string N 급변 감지의 차이 모드 (차이: value, 차이 비율: percent)
jsonScript.checkerOpt.threshold.status boolean N 급변 감지의 트리거 전제 조건 설정, 활성화/비활성화
jsonScript.checkerOpt.threshold.operator string N 급변 감지의 트리거 전제 조건 설정, 연산자
jsonScript.checkerOpt.threshold.value float N 급변 감지의 트리거 전제 조건 설정, 감지 값

8. 조합 모니터링 관련 필드 매개변수 설명

매개변수명 type 필수 설명
jsonScript.checkerOpt.combineExpr string Y 조합 방식, 예: A && B
jsonScript.checkerOpt.ignoreNodata boolean N 무데이터 결과 무시 여부 (true는 무시가 필요함을 의미)

9. 외부 이벤트 감지 jsonScript.type in (OuterEventChecker) 관련 필드 매개변수 설명

매개변수명 type 필수 설명
secret string N 이벤트가 속한 모니터를 식별하는 데 사용되며 전역적으로 고유함. 생성 시 생략하면 Studio가 생성하며 Import는 이전 값을 재사용하지 않음.
jsonScript.subUri string Y Webhook 주소 접미사, 생성 시 필수, 고유하지 않아도 됨.
jsonScript.isChangeEvent boolean N 변경 이벤트로 처리할지 여부, 기본값 false, 기존 규칙에 이 필드가 없어도 false로 처리.

AI 의미론 모니터 jsonScript.type=aiMonitor 매개변수 설명

AI 의미론 모니터는 독립적인 Rule.type=aiMonitor 유형으로, checker의 생성, 수정, 시작/중지, 삭제 인터페이스와 지능형 모니터의 권한 및 수명 주기 로직을 재사용합니다. 태그는 독립적인 AiCheckerRefTagObject 연결 유형을 사용합니다. Studio가 이를 위해 Func 예약 작업을 생성/수정하며 고정적으로 guance__api.ai_monitor를 호출합니다.

매개변수명 type 필수 설명
jsonScript.title string Y 모니터 이름, 기존 checker 요청 필드를 사용하며 Func checker_opt.name으로 전달됨
jsonScript.every string Y 검사 빈도, 기존 s/m/h 주기 형식을 지원하며 30분 이상을 권장
jsonScript.customCrontab string N 사용자 정의 Cron 표현식, 기존 checker 검증을 사용
jsonScript.checkerOpt.userPrompt string Y AI 사용자 프롬프트, 앞뒤 공백 제거 후 비어 있을 수 없으며 최대 20000자
jsonScript.checkerOpt.systemPrompt string N AI 시스템 프롬프트, 앞뒤 공백 제거 후 비어 있을 수 없으며 최대 20000자
jsonScript.checkerOpt.category string N AI 모니터링 카테고리 메타데이터
jsonScript.checkerOpt.infoEvent boolean N 정보 이벤트 생성 여부, 기본값 false
jsonScript.checkerOpt.mentions array N DQL 참조 목록, 기본값 [], 직렬화 후 최대 20000자, 각 항목의 type은 dql로 고정되며 비어 있지 않은 namespace, datasource가 필수, 로그 선택 시 index 입력
jsonScript.checkerOpt.model string N 모델 식별자, 기본값은 Func가 기본 모델을 사용
jsonScript.checkerOpt.contextWindowLimit integer N 컨텍스트 창 상한, 0보다 커야 함
jsonScript.checkerOpt.maxChatRounds integer N 최대 대화 라운드 수, 1보다 크거나 같아야 함
jsonScript.checkerOpt.maxDQLQueries integer N 최대 DQL 쿼리 수, 0보다 크거나 같아야 함
jsonScript.checkerOpt.creditSoftBudget number N AI 소프트 크레딧, 0보다 커야 함

Func 입력 매개변수의 checker_opt.id는 Studio가 Rule UUID로 채웁니다. workspace_agent_api_key는 현재 사이트 접두사가 붙은 워크스페이스 AI 공통 시스템 AK를 사용합니다. 워크스페이스 Token 교체 시 workspace_token만 업데이트되며 이 내장 AK는 교체되지 않습니다. 데이터 지연은 일반 모니터의 delaySeconds가 아닌 Func의 CUSTOM_DB_DATA_DELAY를 사용합니다.


10. disableCheckEndTime 필드 설명

Guance에서 업로드된 데이터에 대한 처리 로직에는 추가 쓰기, 업데이트 덮어쓰기 두 가지 모드가 있습니다. 이 두 가지 데이터 특성에 따라 모니터링은 감지를 차별화해야 합니다. 이 차이는 모니터, 지능형 모니터링, 지능형 점검 등 모든 모듈에 적용됩니다. 덮어쓰기 업데이트 메커니즘을 사용하는 모든 데이터 유형으로 모니터 감지를 구성할 때, 모니터 실행 delay 1분으로 인해 업데이트 모드 데이터가 고정된 시간 범위를 벗어나는 현상을 방지하기 위해 이러한 모니터 유형의 감지 구간은 종료 시간을 지정하지 않습니다. 관련 모니터 유형: 임계값 감지, 급변 감지, 구간 감지, 이상치 감지, 프로세스 이상 감지, 인프라 생존 감지, RUM 메트릭 감지(일부 메트릭, 아래 표 참조)

데이터 유형 Namespace 쓰기 모드
메트릭 M 추가
이벤트 E 추가
미복구 이벤트 UE 덮어쓰기
인프라-객체 O 덮어쓰기
인프라-사용자 정의 객체 CO 덮어쓰기
인프라-객체 히스토리 OH 추가
인프라-사용자 정의 객체 히스토리 COH 추가
로그 / 신서틱 모니터링 / CI 시각화 L 추가
애플리케이션 성능 모니터링(APM)-트레이스 T 추가
APM-프로파일 P 추가
실제 사용자 모니터링(RUM)-세션 R::session 덮어쓰기
RUM-뷰 R::view 덮어쓰기
RUM-리소스 R::resource 추가
RUM-긴 작업 R::long_task 추가
RUM-액션 R::action 추가
RUM-오류 R::error 추가
보안 점검 S

쓰기 모드가 덮어쓰기인 모든 데이터 유형은 disableCheckEndTime을 true로 지정해야 합니다.


11. 구간 감지 V2 버전 관련 매개변수 필드 설명

매개변수명 type 필수 설명
jsonScript.checkerOpt.confidenceInterval integer Y 신뢰 구간 범위, 값 1-100%

12. 모니터 작업 권한 구성 매개변수 설명

매개변수명 type 설명
openPermissionSet boolean 사용자 정의 권한 구성 활성화 여부, 기본값 false
permissionSet array 작업 권한 구성

permissionSet, openPermissionSet 필드 설명(2024-06-26 업데이트에서 추가된 필드): openPermissionSet을 활성화하면 워크스페이스 소유자와 permissionSet 구성에 포함된 역할, 팀, 구성원만 편집/활성화/비활성화/삭제를 수행할 수 있습니다. openPermissionSet을 비활성화하면(기본값) 삭제/활성화/비활성화/편집 권한은 기존 인터페이스의 편집/활성화/비활성화/삭제 권한을 따릅니다.

permissionSet 필드는 역할 UUID(wsAdmin, general, readOnly, role_xxxxx), 팀 UUID(group_yyyy), 구성원 UUID(acnt_xxx)를 구성할 수 있습니다. permissionSet 필드 예시:

  ["wsAdmin", "general", "group_yyyy", "acnt_xxxx"]


13. 인시던트 연결 구성 설명

매개변수명 type 설명
extend.isNeedCreateIssue boolean 인시던트 연결 여부, 기본값 연결 안 함
extend.issueDfStatus array 5가지 유형 선택 가능(fatal, critical, error, warning, nodata), issueDfStatus가 존재할 때: 모니터가 생성한 이벤트의 df_status가 issueDfStatus에 포함된 경우에만 Issue를 생성하며, issueDfStatus가 없으면 모두 Issue를 생성
extend.issueLevelUUID string Issue 등급 UUID
extend.manager array Issue 생성 시 담당자 정보(이메일/워크스페이스 구성원/팀), 예시: ["xxx@guance.com","acnt_yyyy", "group_"]
extend.needRecoverIssue boolean 이벤트 복구 시 issue를 동기적으로 종료할지 여부, 기본값 false
jsonScript.channels string isNeedCreateIssue가 true일 때 이 필드는 필수. issue 채널 정보, 예시: ["chan_xxx", "chan_yyy"]

14. DQL 반영 모드 queryType 설명

extend.querylist가 전달되지 않은 경우 queryType은 자동 주입을 제어하는 외부 선택 필드로, simple과 dql만 지원하며 미전달 시 기본값은 dql입니다. simple을 전달하면 Studio는 로컬 DQL 파서를 사용하여 jsonScript.targets에서 단순 모드 필드를 구문 분석하고 주입합니다. 구문 분석 또는 변환에 실패하면 자동으로 DQL 텍스트 모드로 대체됩니다. extend.querylist를 명시적으로 전달하면 호출자 구조를 그대로 유지하고 queryType의 주입 의미는 무시됩니다.


요청 예시

curl 'https://openapi.guance.com/api/v1/checker/add' \
-H 'DF-API-KEY: <DF-API-KEY>' \
-H 'Content-Type: application/json;charset=UTF-8' \
--data-raw '{"queryType":"simple","extend":{"funcName":"","isNeedCreateIssue":false,"issueLevelUUID":"","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"}]},"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","noDataMessage":"","noDataTitle":"","recoverNeedPeriodCount":2,"targets":[{"alias":"Result","dql":"M::`ssh`:(count(`ssh_check`)) BY `host`","qtype":"dql"}],"title":"Host {{ host }} SSH Service Exception-Add Alert Policy","type":"simpleCheck"},"alertPolicyUUIDs":["altpl_xxxx32","altpl_xxxx32"]}' \
--compressed

응답

{
    "code": 200,
    "content": {
        "alertPolicyUUIDs": [
            "altpl_xxxx32",
            "altpl_xxxx32"
        ],
        "createAt": 1710831393,
        "createdWay": "manual",
        "creator": "wsak_xxxx",
        "crontabInfo": {
            "crontab": "*/1 * * * *",
            "id": "cron-2n8ZyrMWKXB8"
        },
        "declaration": {
            "b": [
                "asfawfgajfasfafgafwba",
                "asfgahjfaf"
            ],
            "business": "aaa",
            "organization": "64fe7b4062f74d0007b46676"
        },
        "deleteAt": -1,
        "extend": {
            "funcName": "",
            "isNeedCreateIssue": false,
            "issueLevelUUID": "",
            "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": null,
        "isLocked": false,
        "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-Add Alert Policy",
            "noDataMessage": "",
            "noDataTitle": "",
            "recoverNeedPeriodCount": 2,
            "targets": [
                {
                    "alias": "Result",
                    "dql": "M::`ssh`:(count(`ssh_check`)) BY `host`",
                    "qtype": "dql"
                }
            ],
            "title": "Host {{ host }} SSH Service Exception-Add Alert Policy",
            "type": "simpleCheck"
        },
        "monitorName": "default",
        "monitorUUID": "monitor_xxxx32",
        "refKey": "",
        "secret": "",
        "status": 0,
        "tagInfo": [],
        "type": "trigger",
        "updateAt": null,
        "updator": null,
        "uuid": "rul_xxxx32",
        "workspaceUUID": "wksp_xxxx32"
    },
    "errorCode": "",
    "message": "",
    "success": true,
    "traceId": "TRACE-014A6CF1-E9D8-4EA7-9527-D3C39CC3A94A"
}

문서 평가

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