미복구 이벤트 조회¶
조회 전에 이벤트 관련 필드 설명의 df_monitor_checker_event_ref, df_fault_id, df_status, df_fault_status 필드 설명을 확인하세요.
1. 조회 진입점¶
OpenAPI 미복구 이벤트 목록(POST /api/v1/events/abnormal/list)도 사용할 수 있습니다. 이 API는 동일한 df_monitor_checker_event_ref 기준으로 최신 이벤트 상태가 ok가 아닌 이벤트를 나열합니다. 아래의 직접 작성 DQL은 df_fault_status=fault 기준으로 필터링하므로, 필요한 상태 기준에 따라 선택하세요.
2. 조회 구문¶
아래 요청 본문은 JSON을 사용합니다. timeRange를 실제 조회 시간 범위로 바꾸세요. 예시의 시작/종료 시간은 모두 밀리초 단위입니다. disable_sampling=true는 샘플링을 비활성화함을 의미합니다.
방법 1: having 방식 조회(Doris 엔진 적용)로 결과를 직접 얻을 수 있음¶
조회 구조¶
{
"queries": [
{
"qtype": "dql",
"query": {
"disableMultipleField": false,
"q": "E::`monitor`:(`__docid`, `df_title`,`df_monitor_checker_event_ref`, `df_fault_id`, `df_status`, `df_fault_status`,`df_fault_start_time`, `df_event_id`) { df_monitor_checker_event_ref = exists() } by `df_monitor_checker_event_ref` having df_fault_status = 'fault' sorder by create_time desc",
"timeRange": [
1724320359294,
1724323959294
],
"align_time": true,
"disable_sampling": true,
"slimit": 100,
"tz": "Asia/Shanghai"
}
}
]
}
여기서 slimit=100은 최대 100개 그룹을 가져옴을 의미합니다.
방법 2: having 방식이 아닌 조회(비 Doris 엔진)는 필터링 필요¶
조회 구조¶
{
"queries": [
{
"qtype": "dql",
"query": {
"disableMultipleField": false,
"q": "E::`monitor`:(`__docid`, `df_title`,`df_monitor_checker_event_ref`, `df_fault_id`, `df_status`, `df_fault_status`,`df_fault_start_time`, `df_event_id`, `create_time`) { df_monitor_checker_event_ref = exists() } by `df_monitor_checker_event_ref` sorder by create_time desc",
"timeRange": [
1724320359294,
1724323959294
],
"align_time": true,
"disable_sampling": true,
"slimit": 1000,
"tz": "Asia/Shanghai"
}
}
]
}
여기서 slimit=1000은 최대 1000개 트리거 객체 그룹을 가져온 뒤 아래 방법으로 필터링함을 의미합니다.
DQL 조회 결과 필터링¶
조회 결과의 df_fault_status 상태를 필터링하여 df_fault_status=fault인 이벤트를 추출합니다. 이 데이터가 곧 미복구 이벤트 목록입니다.
최종 출력¶
time 필드를 기준으로 데이터를 내림차순 정렬하여 최종 미복구 이벤트 목록을 생성합니다.
3. 현재 워크스페이스 이벤트의 스토리지 엔진 유형 확인 방법¶
API를 통한 워크스페이스 저장 정보 조회¶
API 응답의 datastore에는 현재 워크스페이스의 모든 기본 데이터 스토리지 엔진 유형이 저장되어 있습니다(외부 인덱스 제외). datastore에서 keyevent 값이 doris이면 이벤트 데이터가 doris 스토리지 엔진임을 나타냅니다.
다음은 응답 예시의 일부입니다.
{
"code": 200,
"content": {
"id": 1,
"uuid": "wksp_xxxxx",
"name": "【Doris】工作空间名",
"versionType": "pay",
"datastore": {
"backup_log": "doris",
"custom_object": "doris",
"keyevent": "doris",
"logging": "doris",
"metric": "guancedb",
"network": "doris",
"object": "doris",
"object_history": "doris",
"profiling": "doris",
"rum": "doris",
"security": "doris",
"tracing": "doris"
}
},
"errorCode": "",
"message": "",
"success": true,
"traceId": "2956247345653191101"
}