Skip to content

feat: 관계 그래프 기반 알람 영향 분석 + flooding 억제 #85

@e7217

Description

@e7217

배경

현재 EDG Core에는 알람 처리 모듈이 없다 (vibration 센서 예제에서 alarm 태그 발행은 가능하지만 Core 차원 처리 없음). 산업 운영 현장에서 가장 큰 고통은 alarm flooding — 한 라인이 죽으면 산하 센서 50개가 동시에 알람을 쏟아내 운영자가 핵심 원인을 찾지 못함.

#84(온톨로지 1단계)에서 깔리는 관계 그래프 traversal을 활용하면 영향 범위를 즉시 계산할 수 있다.

범위

  1. 알람 이벤트 표면 도입

    • platform.alarm.raised subject — 알람 발생 시 발행되는 표준 이벤트 (source asset, severity, timestamp, reason)
    • 어댑터·룰·내부 조건 등 어디서든 raise 가능한 단순한 표면
  2. 영향 범위 계산 (feat: 온톨로지 활용 1단계 — 자동 컨텍스트 태깅 + 트리 질의 API #84 의존)

    • 알람 발생 시 source asset의 descendants + connectedTo 자산을 traversal로 계산
    • platform.alarm.impact.computed subject로 영향받는 자산 목록 발행
  3. 그룹화 / Flooding 억제

    • 짧은 윈도우(예: 5초) 내에 동일 부모 자산 산하에서 발생한 다중 알람을 1건 그룹 이벤트로 집계
    • platform.alarm.grouped subject 발행 — 운영 UI는 이것을 1차로 본다

범위 외 (후속 이슈)

  • 외부 알림(슬랙·이메일·SMS)
  • 알람 룰 정의 DSL (F번 룰 엔진과 통합)
  • 알람 영구 저장소 (메트릭/이벤트 백엔드는 후속)
  • 알람 확인/소거 워크플로우

의존성

핵심 설계 결정 (Plan에서 상세)

  • 알람 상태 저장 방식 (인메모리 vs SQLite)
  • 그룹화 윈도우 길이 결정 기준
  • impact 계산을 hot path에서 할지 비동기로 할지

계획 문서

상세 계획은 plan 파일로 별도 작성 예정.

Metadata

Metadata

Assignees

No one assigned

    Labels

    designArchitecture and design discussionsenhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions