알림 규칙 평가

알림 규칙 평가 (Alert rule evaluation)

알림 규칙이 언제 fire되는지를 정하는 기준은 세 가지 설정을 기반으로 해요. Evaluation group(평가 간격)은 규칙을 얼마나 자주 평가할지, Pending period는 조건이 충족된 후 fire를 시작하기까지 기다리는 시간, Keep firing for는 조건이 더 이상 충족되지 않아도 계속 fire를 유지하는 시간이에요. 이 설정들은 알림 인스턴스가 수명 주기를 어떻게 진행하는지에 영향을 줍니다.

출처: 문서

본문

알림 규칙이 fire되는 기준은 세 가지 설정에 기반합니다.

  • Evaluation group: 알림 규칙을 얼마나 자주 평가하는지
  • Pending period: 조건이 충족되어 fire를 시작하기까지의 시간
  • Keep firing for: 조건이 더 이상 충족되지 않아도 fire를 계속하는 시간

알림 수명 주기 (Alerting lifecycle)

각 알림 규칙은 하나 이상의 알림 인스턴스를 생성할 수 있습니다. 알림 인스턴스는 평가 결과에 따라 다음 상태 중 하나가 될 수 있습니다.

상태 설명
Normal 알림 조건(임계값 위반, 데이터 없음, 오류)이 충족되지 않은 상태.
Pending 조건(임계값 위반, 데이터 없음, 오류)이 충족되었지만 pending period가 아직 경과하지 않은 상태.
Alerting pending period 경과 후 임계값이 위반된 상태.
Recovering 임계값이 더 이상 위반되지 않았지만 keep firing for 기간이 아직 경과하지 않은 firing 알림 상태.
No Data pending period 경과 후 쿼리가 데이터를 반환하지 않거나 모든 값이 null인 상태. No Data 상태 동작을 커스터마이즈할 수 있으며 기본은 별도 알림 트리거.
Error pending period 경과 후 알림 규칙 평가 중 오류·타임아웃이 발생한 상태. Error 상태 동작을 커스터마이즈할 수 있으며 기본은 별도 알림 트리거.

알림 규칙이 변경되면(주석, 평가 간격, 기타 내부 필드 업데이트 제외) 알림 인스턴스는 Normal 상태로 리셋되고 다음 평가에서 그에 맞게 업데이트됩니다.

참고: No DataError 상태는 Grafana 관리 알림 규칙에서만 지원됩니다.

알림 라우팅 (Notification routing)

알림 인스턴스는 두 시나리오에서 알림으로 라우팅됩니다.

  • Alerting 상태로 전환될 때
  • Alerting 또는 Recovering 상태에서 Normal 상태로 전환되어 Resolved로 표시될 때

평가 그룹 (Evaluation group)

모든 알림 규칙과 레코딩 규칙은 평가 그룹에 할당됩니다. 각 평가 그룹은 규칙을 얼마나 자주 확인할지 정하는 **평가 간격(evaluation interval)**을 포함합니다. 예를 들어 10s, 30s, 1m, 10m 등으로 평가할 수 있습니다. 규칙은 동시에 또는 순차적으로 평가될 수 있습니다. 자세한 내용은 How rules are evaluated within a group 참고.

보류 기간 (Pending period)

일시적 문제로 인한 불필요한 알림을 방지하려면 Pending period를 설정할 수 있습니다. 알림 조건이 충족되면 인스턴스는 Pending 상태가 되고, 설정된 보류 기간 동안 조건이 충족되는 한 이 상태를 유지합니다. 보류 기간이 경과하면 마지막 평가에 해당하는 상태로 전환됩니다. 이로써 조건 위반이 안정적일 때만 Alerting 상태로 전환해 알림으로 라우팅됩니다.

  • Normal → Pending → Alerting

보류 기간을 0으로 설정하면 Pending 상태를 건너뛰고 즉시 Alerting, No Data, Error 상태로 전환됩니다.

계속 fire 유지 (Keep firing for)

조건이 flapping(진동)할 때 발생하는 반복적인 fire-resolve-fire 알림을 피하려면 Keep firing for 기간을 설정할 수 있습니다. Alerting 상태에서 조건이 더 이상 충족되지 않으면 인스턴스는 Recovering 상태로 들어갑니다.

  • Alerting → Recovering → Normal (Resolved)
  • Keep firing for 기간이 경과하면 Normal 상태로 전환되고 Resolved로 표시됩니다.
  • 조건이 다시 충족되면 Alerting 상태로 돌아가며 새 알림은 전송되지 않습니다.

Keep firing for 기간을 0으로 설정하면 Recovering 상태를 완전히 건너뜁니다.

평가 예시

기억할 점:

  • 하나의 알림 규칙이 쿼리가 생성하는 각 시리즈·차원마다 여러 알림 인스턴스를 생성할 수 있으며, 같은 규칙의 인스턴스라도 상태가 다를 수 있습니다.
  • Alerting 및 Normal(Resolved) 상태의 알림 인스턴스만 알림으로 라우팅됩니다.

평가 간격이 30초마다이고 보류 기간이 90초인 알림 규칙을 생각해보세요.

시간 조건 인스턴스 상태 Pending 카운터
00:30 (첫 평가) 충족 안 됨 Normal -
01:00 (두 번째) 위반 Pending 0s
01:30 (세 번째) 위반 Pending 30s
02:00 (네 번째) 위반 Pending 60s
02:30 (다섯 번째) 위반 Alerting 📩 90s

keep firing for 기간이 0초이면 인스턴스는 Alerting에서 즉시 Normal로 전환되고 Resolved로 표시됩니다.

시간 조건 인스턴스 상태 Pending 카운터
03:00 (여섯 번째) 충족 안 됨 Normal Resolved 📩 120s
03:30 (일곱 번째) 충족 안 됨 Normal 150s

더 알아보기 (Learn more)