Skip to content

feat(rules,alerting): 평가 매니저와 발송 연결 — 알림이 실제로 나간다 - #12

Merged
eightynine01 merged 1 commit into
mainfrom
feat/rule-manager
Aug 12, 2026
Merged

feat(rules,alerting): 평가 매니저와 발송 연결 — 알림이 실제로 나간다#12
eightynine01 merged 1 commit into
mainfrom
feat/rule-manager

Conversation

@eightynine01

Copy link
Copy Markdown
Contributor

알림 스펙(1a)의 마지막 조각입니다. 룰 파일에서 webhook 까지 한 줄로 흐릅니다.

매니저가 하는 일

그룹을 주기로 평가하고 변화분만 내보냅니다.

  • pending 은 보내지 않습니다 — 아직 사람에게 알릴 단계가 아닙니다.
  • 직전 firing 집합과 비교해 새로 뜬 것과 풀린 것만 냅니다. 매 평가마다 같은 알림을 넘기면 반복 억제 판단이 발송기 쪽으로만 몰려 흐려집니다.
  • 풀린 알림은 resolved 로 한 번 보냅니다.
  • 발송 실패는 평가를 멈추지 않습니다. 수신 측 장애가 관측까지 세우면 정작 복구에 필요한 데이터가 끊깁니다.

internal/alerting — 또 하나의 이음매

storage 가 tsdb 와 promql 을 잇는 것과 같은 자리입니다. rules 는 전송 방식을 모르고 notify 는 룰을 모릅니다. 둘 다 상대를 모르면 누군가는 알아야 하고, 그게 이 패키지입니다.

end-to-end 검증

조각을 따로 검증한 뒤 남는 위험은 이음매뿐이라, 실제 경로를 통째로 돌립니다:

룰 파일(YAML) → LoadDir → tsdb 데이터 → 평가 → httptest webhook

alertname·severity·원본 라벨(node,gpu)·annotation·value 가 전부 페이로드에 실려 도착하는지, 그리고 재평가 시 다시 보내지 않는지 확인합니다.

1a 현황

조각 상태
PromQL 엔진
저장 연결
룰 평가·상태머신
룰 파일 리더
발송(재시도·억제·드롭)
평가 매니저
/api/v1/rules·/alerts 노출 apiserver 이관 후

남은 것은 API 노출과 cmd/observatory 조립입니다.

매니저가 그룹을 주기로 평가하고 **변화분만** 내보낸다.

- pending 은 보내지 않는다 — 아직 사람에게 알릴 단계가 아니다.
- 직전 firing 집합과 비교해 새로 뜬 것과 풀린 것만 낸다. 매 평가마다 같은
  알림을 넘기면 반복 억제 판단이 발송기 쪽으로만 몰려 흐려진다.
- 풀린 알림은 resolved 로 한 번 보낸다.
- **발송 실패는 평가를 멈추지 않는다.** 수신 측 장애가 관측까지 세우면
  정작 복구에 필요한 데이터가 끊긴다.

internal/alerting 은 rules 와 notify 를 잇는다 — storage 가 tsdb 와 promql 을
잇는 것과 같은 자리다. rules 는 전송 방식을 모르고 notify 는 룰을 모른다.

end-to-end 테스트: 룰 파일 → 로드 → 평가 → webhook. 조각을 따로 검증한 뒤
남는 위험은 이음매뿐이고, 이 경로가 곧 제품의 알림 기능이다.
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants