korean-docs
추가 기능
Alerts
개요

Alerts 개요

Wave Alerts는 특정 조건이 충족되면 자동으로 알림을 보내 Kubernetes 클러스터를 사전에 모니터링합니다. 대시보드를 일일이 확인하거나 복잡한 모니터링 파이프라인을 구축할 필요 없이, Alerts는 기존 커뮤니케이션 도구와 매끄럽게 연동되는 유연한 이벤트 기반 알림 시스템을 제공합니다.

Alerts란?

Alerts는 클러스터 이벤트를 모니터링하고 설정된 채널로 실시간 알림을 보내는 종합 알림 시스템입니다. 두 가지 핵심 구성 요소로 이루어져 있습니다.

  1. Alert 채널: 알림을 어디로 보낼지 정의합니다 (Slack, HTTP webhook 등)
  2. Alert 규칙: 무엇을 모니터링하고 언제 알림을 보낼지 정의합니다

이렇게 분리하면 다음이 가능합니다.

  • 여러 Alert 규칙에서 채널 재사용
  • 팀이나 심각도(severity)별로 다른 알림 대상 설정
  • 모든 Alert 실행에 대한 감사 추적(audit trail) 유지

Alerts를 사용하는 이유

문제 사전 감지

사용자 신고로 문제를 알게 되는 대신, Alerts는 다음과 같은 상황에서 즉시 알려줍니다.

  • 워크로드 CPU 또는 메모리 사용량이 임계값을 초과할 때
  • Deployment가 시작되거나 중지될 때
  • Autopilot 로그가 일정 시간 이상 수신되지 않을 때
  • 팀에서 정의한 사용자 지정 조건이 트리거될 때

유연한 알림 라우팅

올바른 채널로 올바른 담당자에게 알림을 전달합니다.

  • HTTP webhook을 통해 프로덕션 환경의 심각한 알림을 PagerDuty로 전송
  • 개발 클러스터 알림을 Slack 채널로 라우팅
  • 커스텀 연동을 통해 주간 리포트를 이메일로 전달
  • HTTP 요청을 받는 모든 시스템과 연동

커스터마이즈 가능한 알림 로직

다음 정보를 활용해 JavaScript 표현식으로 알림 조건을 정의합니다.

  • 실시간 워크로드 지표 (CPU, 메모리 사용률)
  • 배포 라이프사이클 이벤트 (스케줄링 단계, 롤아웃 상태)
  • 추세 분석을 위한 과거 데이터 배열
  • 사용자 지정 평가 기간과 임계값

주요 기능

다양한 채널 유형

Wave는 기본적으로 세 가지 알림 채널 유형을 지원합니다.

채널 유형사용 사례인증 방식
HTTP Webhook범용 webhook, PagerDuty, 커스텀 연동헤더, 커스텀 메서드 (POST/PUT/PATCH/DELETE)
Slack Webhook간단한 Slack 알림Webhook URL
Slack Web API고급 Slack 기능 (스레드, 반응)Bot 토큰 + 채널 ID

모든 채널은 엔터프라이즈 네트워크 환경을 위한 HTTP 프록시 설정을 선택적으로 지원합니다.

이벤트 기반 아키텍처

Alerts는 다음 이벤트 유형을 모니터링합니다.

워크로드 지표 이벤트

  • 시간 윈도우 기준 CPU 및 메모리 사용률 집계
  • 배열 분석을 위한 max(), avg() 함수 지원
  • 설정 가능한 평가 기간 (예: "CPU가 80%를 5분 이상 초과하면 알림")

배포 스케줄링 이벤트

  • START/END 라이프사이클 전환
  • 스케줄링 단계 모니터링
  • 배포 수 집계

Autopilot 이벤트

  • 로그 누락 감지
  • 로그 공백 기간 추적
  • 워크로드별 모니터링

유연한 타겟팅

각 Alert가 모니터링할 리소스를 제어합니다.

  • None: 삭제하지 않고 Alert를 비활성화
  • All: 특정 유형의 모든 리소스를 모니터링 (예: 클러스터 전체 모든 Deployment)
  • Specific: namespace와 이름으로 개별 리소스를 지정

JavaScript 규칙 표현식

JavaScript 표현식으로 알림 조건을 작성합니다.

// Alert when CPU exceeds 80% for 5+ minutes
${evaluation_period_minutes} >= 5 && ${max(cpu_utilization_arr)} >= 80
 
// Alert on deployment lifecycle events
${phase} == "START" || ${phase} == "END"
 
// Alert when Autopilot logs missing for 3+ minutes
${missing_duration_minutes} >= 3

메시지 템플릿

변수 보간(interpolation)으로 알림 내용을 커스터마이즈합니다.

⚠️ ${alert_title}
Workload: ${namespace}/${workload_name}
CPU Usage: ${max(cpu_utilization_arr)}%
Memory Usage: ${avg(memory_utilization_arr)}%
Time: ${alert_time}

Alert 로그와 감사 추적

모든 Alert 실행은 다음 정보와 함께 기록됩니다.

  • 타임스탬프와 Alert 세부 정보
  • 채널 전달 상태
  • 알림 엔드포인트로부터의 응답
  • 오류 메시지와 디버깅 정보
  • 30일 보관 기간

Alerts와 Wave의 관계

Alerts는 다른 Wave 기능을 보완합니다.

기능Alerts와의 관계
InsightsInsights로 문제를 발견하고, 문제가 발생하면 Alerts로 알립니다
AutopilotAutopilot 동작(로그 누락, 스케일링 이벤트)에 대해 알립니다
Smart Sizing워크로드가 권고값에서 크게 벗어나면 알립니다
PV Lifecycle스토리지 이벤트(forecast로 예측된 용량 고갈)에 대해 알립니다

연동 예시: Memory Leak Detection(Insight)이 누수 패턴을 보이는 워크로드를 식별합니다. 누수 증가율이 20%를 초과하면 팀에 알리도록 Alert를 구성하면, OOM 크래시가 발생하기 전에 미리 재시작할 수 있습니다.

일반적인 활용 사례

프로덕션 인시던트 대응

  • Alert: 프로덕션 배포에서 CPU가 90%를 3분 이상 초과
  • 채널: HTTP webhook을 통한 PagerDuty
  • 결과: 온콜 엔지니어에게 즉시 페이지 전송

개발팀 알림

  • Alert: staging namespace에서 배포 START/END 이벤트
  • 채널: Slack 채널 #deployments-staging
  • 결과: 팀이 배포 활동을 파악 가능

용량 계획

  • Alert: 모든 배포에서 평균 메모리 사용률이 80% 초과
  • 채널: 인프라 팀 리더에게 Slack DM
  • 결과: 클러스터 용량 추가에 대한 조기 경고

SLA 모니터링

  • Alert: Autopilot 로그가 5분 이상 누락
  • 채널: 커스텀 대시보드로 HTTP webhook
  • 결과: 자동화된 SLA 위반 추적

다음 단계

  • 시작하기 - 첫 번째 Alert 채널과 규칙 설정하기
  • 동작 방식 - Alert 평가와 전달에 대한 기술적 심층 분석