리소스별 모니터링 규칙
규칙은 리소스의 측정값을 임계값과 비교합니다. 아래의 예시 값, 권장값과 기본값을 구분하여 적용합니다. 기본값이나 권장값은 시스템의 처리 한도가 아닙니다. 대부분은 Alert severity를 Low, Medium 또는 High로 구성할 수 있으며, 고정 High라고 표시한 규칙은 구성할 수 없습니다.
수치 비교의 >, >=, <, <=는 경계 포함 여부가 다릅니다. 평가 결과의 심각도를 알림 채널에 연결하는 전송 매칭은 이 수치 비교와 별개입니다.
데이터 연결 에이전트
다음 Agent 규칙은 데이터 연결 에이전트와 매니저를 감시합니다. 모두 구성 가능한 단일 조건입니다.
| 규칙 | 비교하는 값과 연산자 | 예시 및 권장값 |
|---|---|---|
| Agent last heartbeat time | bootstrapper의 마지막 heartbeat 이후 시간 > 임계값 | 10분 권장 |
| Agent manager last heartbeat time | manager의 마지막 heartbeat 이후 시간 > 임계값 | 예시 10분 |
| Agent manager version stale time | manager가 이전 버전을 사용한 기간 > 임계값 | 10일 권장 |
| Agent version stale time | agent가 이전 버전을 사용한 기간 > 임계값 | 10일 권장 |
| High CPU utilization | CPU 사용률 > 임계값 | 80% 권장 |
| JVM heap usage is close to the limit | 사용 JVM heap / 가용 heap 비율 > 임계값 | 70% 권장 |
| Low disk space | 가용 디스크 공간 < 임계값 | 10GB 권장 |
| Time until earliest keystore certificate expires | 가장 먼저 만료할 keystore 인증서의 남은 시간 < 임계값 | 예시 10일. Medium 30일 미만, High 10일 미만 권장 |
| Time until earliest truststore certificate expires | 가장 먼저 만료할 truststore 인증서의 남은 시간 < 임계값 | 예시 10일. Medium 30일 미만, High 10일 미만 권장 |
| Queue size | 에이전트에 대기한 실행 작업 수 > 임계값 | 70개 권장 |
스케줄
두 규칙 모두 구성 가능한 단일 조건입니다.
| 규칙 | 발동 조건 | 기본값 또는 예시 |
|---|---|---|
| Consecutive schedule failures | 연속 실패 횟수 >= 임계값. 빌드 취소로 끝난 실행은 세지 않습니다. | 기본 Medium 1회, High 3회 |
| Schedule duration | 진행 중인 스케줄 시간 >= 임계값 | 예시 2시간 |
연속 실패 기준은 스케줄의 빈도와 안정성에 맞춰 조정합니다. 실행 시간 규칙은 중요한 스케줄의 지연을 빠르게 확인하는 데 사용하며 스케줄마다 시간이 달라 개별 스케줄 범위로 구성하는 경우가 많습니다.
OSv2 객체 유형과 링크 유형
사용자 원인의 실패는 잘못된 스키마, 잘못된 행이나 권한 부족 등 구성 및 입력 문제입니다. changelog와 merge changes의 해당 규칙은 이런 실패만 감시하며, 보통 자동 재시도로 해결하는 일시적 인프라 오류는 포함하지 않습니다.
| 규칙 | 발동 조건과 대상 | 구성 및 기본값 |
|---|---|---|
| Changelog jobs failing | 활성 또는 대체 파이프라인의 연속 사용자 원인 changelog 실패 >= 임계값 | 구성 가능. 기본 Medium 1회, High 3회 |
| Merge changes job failing | 활성 또는 대체 파이프라인의 연속 사용자 원인 merge changes 실패 >= 임계값 | 구성 가능. 기본 Medium 1회, High 3회 |
| Sync jobs failing | 활성 또는 대체 파이프라인의 foreground sync 작업이 최종 실패 | 고정 High. 재시도 불가 또는 복구 불가 오류 누적 등으로 더 이상 재시도하지 않는 경우 |
| Scroll job failing on pipeline | 기반 소스에서 객체 데이터베이스로 데이터를 보내는 활성/대체 파이프라인 scroll 작업의 연속 실패 >= 임계값 | 구성 가능. 기본 Low 1회, Medium 3회, High 7회 |
| Sync propagation delay | 기반 데이터셋의 트랜잭션 동기화에 걸린 시간 >= 임계값 | 구성 가능. 예시 1일 |
| Liveness: Time since last successful checkpoint | 객체나 링크를 지원하는 스트림의 마지막 성공 체크포인트 이후 시간 >= 임계값 | 구성 가능. 기본 High 2분. 스트림 미실행과 체크포인트 실패를 모두 감지 |
| Invalid stream records detected | 입력 형식 위반으로 scroll 작업이 무시한 행 >= 1 | 고정 High |
| Invalid direct write records detected | 유효성 검사 실패로 거부한 직접 쓰기 레코드 >= 1 | 고정 High |
여기서 체크포인트는 스트림 처리의 복구 지점이며 보안 작업 사유를 입력하는 Checkpoint와 다릅니다.
파생 스트림
다음은 스트리밍 변환으로 만든 파생 스트림의 규칙입니다. 모두 구성 가능한 단일 조건입니다.
| 규칙 | 발동 조건 | 값과 시간 범위 |
|---|---|---|
| Last checkpoint duration | 마지막 체크포인트 완료 시간 > 임계값 | 예시 7분 |
| Liveness: Time since last successful checkpoint | 마지막 성공 체크포인트 이후 시간 >= 임계값 | 기본 5분. 스트림 미실행과 체크포인트 실패를 모두 포함 |
| Consecutive checkpoint failures | 연속 체크포인트 실패 >= 임계값 | 기본 High 5회 |
| Checkpoint trigger failure rate | 지정 창의 체크포인트 트리거 실패 횟수 > 임계값 | 예시 5분 동안 0회 초과 |
| Total lag | 처리하지 않은 상위 레코드 수 > 임계값 | 예시 1,000개 |
| Total lag V2 | 처리하지 않은 스트림 입력 레코드 수가 창 전체에서 >= 임계값 | 고정 5분 창, 기본 High 1,000개 |
| Sustained lag | 미처리 레코드 수가 지정 창 전체에서 >= 임계값 | 예시 1,000개. 창은 2분부터 1시간, 기본 5분 |
| Checkpoint size | 최근 체크포인트 크기 > 임계값 | 바이트 단위, 예시 100바이트 |
| Total throughput | 체크포인트당 처리한 레코드 수 < 임계값 | 예시 100개 |
| Total throughput V2 (less than) | 체크포인트당 처리 레코드 수가 5분 창 전체에서 < 임계값 | 예시 100개 |
| Total throughput V2 (greater than) | 체크포인트당 처리 레코드 수가 5분 창 전체에서 > 임계값 | 예시 100개 |
| Job Manager CPU usage | Job Manager CPU 사용률 > 임계값 | 예시 80% |
| Job Manager memory usage | Job Manager 메모리 사용률 > 임계값 | 예시 80% |
| Task Manager CPU usage | Task Manager CPU 사용률이 10분 창 전체에서 >= 임계값 | 예시 80% |
| Task Manager memory usage | Task Manager 메모리 사용률이 10분 창 전체에서 >= 임계값 | 예시 80% |
Checkpoint trigger failure rate의 설정은 백분율이 아니라 창 안의 실패 횟수입니다. Total lag와 Total throughput 경보는 변환이 오래 걸리거나 스트리밍 인프라에 문제가 있음을 나타낼 수 있습니다.
수집 스트림
원시 스트림 입력을 감시하는 규칙입니다. 파생 스트림의 체크포인트당 처리량과 아래의 초당 처리량을 구분합니다. 모두 구성 가능한 단일 조건입니다.
| 규칙 | 발동 조건 | 값과 시간 범위 |
|---|---|---|
| Records ingested over selected window | 선택한 창 동안 raw stream의 live view에 수집한 레코드 수 <= 임계값 | 예시 100개. 창은 5분, 30분, 1시간, 4시간 또는 1일 |
| Total throughput (less than or equal to) | 초당 처리 레코드 수가 5분 창 전체에서 <= 임계값 | 예시 100개/초 |
| Total throughput (greater than or equal to) | 초당 처리 레코드 수가 5분 창 전체에서 >= 임계값 | 예시 100개/초 |
| High source staleness | 원천 데이터의 오래된 정도 > 임계값 | 예시 20초. 지연 샘플링을 켰고 Data Connection 작업이 원천 timestamp를 제공할 때만 사용 가능 |
실시간 배포
Single 범위만 지원합니다. Evaluation window가 있는 규칙은 그 창 전체에서 조건을 유지해야 발동합니다. 잠깐 임계값을 넘었다가 창이 끝나기 전에 회복하면 발동하지 않습니다.
replica의 scaling deficit은 ideal replica count - target replica count입니다. ideal은 부하를 기준으로 필요한 수이며, target은 replica 한도와 예약 재정의를 적용한 자동 확장 목표입니다. 현재 실행 중인 replica 수와의 차이를 뜻하지 않습니다.
| 규칙 | 발동 조건 | 예시 구성 |
|---|---|---|
| Live deployment heartbeat | 마지막 heartbeat 이후 시간 >= 임계값 | 1분 |
| Replica over-provisioning | scaling deficit이 평가 창 전체에서 < 임계값 | 0 미만, 30분 |
| Replica under-provisioning | scaling deficit이 평가 창 전체에서 > 임계값 | 0 초과, 30분 |
| High job queue | 대기 작업 수가 평가 창 전체에서 >= 임계값 | 30개, 5분. 대기열은 30초마다 샘플링 |
| CPU usage | 어떤 replica의 어떤 컨테이너라도 요청한 CPU 대비 사용률이 창 전체에서 >= 임계값 | 80%, 2분 |
| Container out of memory | 컨테이너의 누적 재시작 수 > 임계값이며 최근 종료 원인이 OOM인 상태를 창 전체에 유지 | 1회 초과, 2분 |
| Unresponsive replicas | 응답하지 않는 replica 비율이 창 전체에서 >= 임계값 | 50%, 10분 |
과다 할당은 target이 ideal보다 많은 음수 deficit입니다. 반복되는 경우 최소 replica 수를 낮추는 설정을 검토합니다. 이 규칙의 평가 창은 scale-down delay보다 길게 두어 이미 자동 축소 중인 상황을 경보로 잡지 않도록 합니다.
과소 할당은 ideal이 target보다 많은 양수 deficit입니다. 반복되면 최대 replica 수를 늘릴 필요가 있는지 검토합니다.
OOM 규칙의 재시작 수는 replica 수명 동안 누적합니다. 임계값을 넘은 뒤에는 replica가 교체되거나 같은 컨테이너가 다른 원인으로 다시 시작할 때까지 경보 조건이 유지될 수 있습니다. 단순히 현재 메모리 사용량만 보는 규칙은 아닙니다.
응답하지 않는 replica는 요청에 답하지 못하거나 readiness probe 실패처럼 준비 상태를 보고하지 못하는 경우입니다. 이런 replica에는 트래픽을 보내지 않습니다.
시계열 동기화
두 규칙 모두 구성 가능한 단일 조건입니다.
| 규칙 | 발동 조건 | 값과 범위 |
|---|---|---|
| Points written by the time series sync over last 5 or 30 minutes | 최근 창에 기록한 포인트 수 <= 임계값 | 예시 100개, 5분 또는 30분 |
| Time series stream liveness: Time since last successful checkpoint | 스트리밍 시계열 동기화의 마지막 성공 체크포인트 이후 시간 >= 임계값 | 기본 High 2분 |
데이터셋
Time since job last succeeded는 마지막 작업 성공 이후 시간이 임계값 이상이면 발동합니다. 예시 값은 1일이며, 일 단위 갱신에는 1일을 권장합니다. 실제 기대 갱신 빈도에 맞춰 설정합니다.
작업은 성공했지만 트랜잭션을 중단했거나 새 데이터가 추가되지 않았어도 작업 성공으로 판정합니다. Time since last updated 상태 검사처럼 실제 데이터 갱신만을 요구하는 규칙과는 다릅니다.
지리 시계열 관측
Geotemporal observations sent over last 5 or 30 minutes는 5분 또는 30분 동안 전송한 관측 수가 임계값 이하일 때 발동합니다. 구성 가능한 단일 조건이며 예시는 100개입니다.
자동화
일반 자동화와 시계열 스트리밍 자동화 모두에 적용합니다.
| 규칙 | 발동 조건 | 구성과 예시 |
|---|---|---|
| Automation has no new evaluations | 마지막 평가 이후 시간 >= 임계값 | 구성 가능, 예시 1시간. 조건이 발동하지 않았다는 이유만으로 경보를 내지 않음 |
| Automation has no new triggers | 마지막 트리거 이후 시간 >= 임계값 | 구성 가능, 예시 1일 |
| Automation has been disabled by the system | 한도나 순환 때문에 시스템이 비활성화 | 고정 High |
| Automation had repeated execution failures in a window | 지정 창의 자동화 실행 실패 수 > 임계값 | 구성 가능, 예시 1시간 동안 0회 초과 |
| Automation had repeated evaluation failures in a window | 지정 창의 조건 평가 실패 수 > 임계값 | 구성 가능, 예시 1시간 동안 0회 초과 |
| Automation had a high number of effect execution failures in a window | 지정 창의 하위 액션/알림 등 효과 실패 수 > 임계값 | 구성 가능, 예시 1시간 동안 0회 초과 |
평가가 이뤄지지 않은 경우, 평가했지만 발동하지 않은 경우, 실행이 실패한 경우와 효과만 실패한 경우를 구분합니다. 반복 실행 실패 규칙은 이미 시스템이 중지한 자동화보다 계속 실행되면서 실패하는 대상을 찾는 데 사용합니다.
함수
함수 실패 유형에 따라 전체 실패와 사용자 표시 오류를 구분합니다. 모든 규칙의 임계값은 구성할 수 있습니다.
| 규칙 | 조건과 포함하는 실패 | 예시 |
|---|---|---|
| Function duration p95 | 최근 데이터의 이동 창에서 P95 실행 시간 > 임계값. 단일 조건 | 10초 |
| Number of function failures in window | 모든 실패 수 > 임계값. 단일 조건 | 1시간 동안 0회 초과 |
| Number of user-facing function failures in window | 함수 코드가 던진 사용자 표시 오류 수 > 임계값. 단일 조건 | 1시간 동안 0회 초과 |
| Number of non-user-facing function failures in window | 사용자 표시 오류를 제외한 실패 수 > 임계값. 단일 조건 | 1시간 동안 0회 초과 |
| Function failure rate in window | 전체 실패 비율과 전체 실행 수가 각각 임계값을 초과. AND 복합 조건 | 5분 동안 실패율 10% 초과 및 실행 수 10회 초과 |
| Non-user-facing function failure rate in window | 사용자 표시 오류를 제외한 실패 비율과 전체 실행 수가 각각 임계값을 초과. AND 복합 조건 | 5분 동안 해당 실패율 10% 초과 및 전체 실행 수 10회 초과 |
실패율 설정은 0부터 100까지의 백분율입니다. 최소 실행 수 조건은 적은 표본만으로 경보를 내는 것을 막습니다. 비사용자 표시 실패율에서도 전체 실행 수를 사용하며, 제외하는 범위는 실패 분자에 적용됩니다.
복합 규칙은 두 조건이 모두 해당 심각도에 도달해야 합니다. 서로 다른 수준에 도달하면 공통으로 충족한 낮은 수준에서 발동합니다.
액션
액션 실패 유형을 기준으로 세 규칙을 제공합니다. 모두 구성 가능한 단일 조건입니다.
| 규칙 | 발동 조건 | 예시 |
|---|---|---|
| Action duration p95 | 최근 데이터의 이동 창에서 P95 실행 시간 > 임계값 | 10초 |
| Number of action failures in window | 사용자 표시 및 비사용자 표시를 포함한 모든 실패 수 > 임계값 | 1시간 동안 0회 초과 |
| Number of non-user-facing action failures in window | 함수 기반 액션의 코드가 던져 사용자에게 표시한 함수 오류만 제외한 실패 수 > 임계값 | 1시간 동안 0회 초과 |
마지막 규칙의 제외 대상을 모든 사용자 원인 오류로 넓혀 해석하지 않습니다. 함수 코드가 던진 사용자 표시 함수 오류를 제외하는 계약입니다.