Rule Engine
Rule Engine은 필터 → 보강 → 변환 → 액션 → 흐름 노드를 조합해 텔레메트리·속성 변경 이벤트를 자동으로 처리하는 파이프라인입니다. 노드는 아래 5개 카테고리로 분류됩니다.
필터
- 스크립트 필터
- 키 필터
- 장치 타입 필터
- 스위치(다중 분기)
- 메시지 타입 분기
- 중복 제거
- 지오펜스
보강
- 발신자 속성 추가
- 발신자 최신 텔레메트리 추가
- 상위 자산 속성 추가
변환
- 스크립트 변환
- 단위 변환
- 수식 계산
액션
- 속성 저장
- 텔레메트리 저장
- REST API 호출
- 알람 생성
- 알람 해제
- 이메일 발송
- Slack 발송
- 로그
- 지연
흐름
- 룰 체인 호출
- 출력
트리거
Rule Engine은 두 종류의 이벤트로 실행됩니다.
POST_TELEMETRY— 장치가 텔레메트리를 전송했을 때ATTRIBUTES_UPDATE— 속성이 변경되었을 때 (set_attributes)
라우팅
Device Profile에 rule_chain_id를 지정하면 해당 장치는 그 체인으로 라우팅됩니다. 지정하지 않으면
테넌트의 root rule chain으로 폴백합니다. 테넌트 생성 시 root rule chain이 자동으로 구성됩니다.
노드 핸들러 패턴
모든 노드는 아래 인터페이스를 구현합니다.
# rule_engine/nodes/base.py
class BaseRuleNode(ABC):
@abstractmethod
async def process(self, msg: RuleMessage) -> RuleNodeResult:
"""메시지를 처리하고 다음 노드로 라우팅 결과를 반환한다."""
...
note
LLM 기반 이상감지/예측 노드(anomaly_detect, prediction)는 아직 구현되어 있지 않습니다. 진행 상황은
로드맵 페이지에서 확인하세요.