kafka-alert

메인 인덱스 | bob-yamong | GitHub

이 문서는 kafka-alert 레포를 repo 구조 기준으로 다시 정리한 노트입니다. 현재 소스만으로 제 직접 구현 범위를 단정하지는 않겠지만, 이 레포는 단순 Kafka consumer보다 “토픽별 콜백을 디렉터리 구조로 조립하는 알림 처리기”에 더 가깝습니다.

한 줄 소개

kafka-alert는 Kafka 메시지를 토픽별 콜백과 공통 콜백으로 분기 처리하는 Python 기반 알림/후처리 서비스입니다.

기술 스택

  • Python
  • Kafka
  • async callback 실행
  • Docker Compose
  • Jenkins

코드 기준으로 확인한 구조

  • main.pyKAFKA_BROKERS를 읽고, callback 패키지에서 로드한 콜백 목록을 토픽별로 EventManager에 등록합니다.
  • callback/__init__.pycallback/<topic>/ 디렉터리를 순회하며 Python 파일을 로드하고, 각 모듈의 callback, Z_INDEX, ALERT_DISABLE를 읽어 정렬합니다.
  • all 폴더는 모든 토픽에 공통으로 붙는 콜백 집합으로 예약돼 있습니다.
  • 실행 순서는 토픽별 콜백을 먼저 조립한 뒤 all 콜백을 뒤에 붙이는 구조입니다.
  • 즉 이 레포의 핵심은 “메시지 수신” 자체보다 “콜백을 어떻게 운영 중에 추가/비활성화/정렬할 것인가”에 있습니다.
  • README도 새로운 처리 로직을 추가하는 방법, all 예약 규칙, Z_INDEX 기반 순서 조정, ALERT_DISABLE 기반 비활성화를 중심으로 설명합니다.

주요 파일과 흐름

  • main.py: Kafka 브로커 연결, 콜백 로딩, EventManager 시작
  • callback/__init__.py: 디렉터리 스캔, 콜백 import, 정렬
  • callback/all/, callback/<topic>/: 공통 처리와 토픽별 처리 분기
  • utils/queue_eventmanager.py: Kafka와 실제로 붙는 이벤트 매니저
  • docker-compose.yml, Jenkinsfile: 운영 환경으로 붙이기 위한 배포 자산

포트폴리오 메모

이 레포는 범용 스트림 처리기보다는 “운영 중 토픽별 알림 로직을 파일 단위로 추가하고 끌 수 있게 만든 후처리기”로 설명하는 편이 정확합니다. 디렉터리 구조 자체가 처리 규칙이 되는 방식이라서, kafka-sink-connect.md처럼 적재 파이프라인을 설명하는 레포와는 역할이 다릅니다.